当前位置: 首页 > news >正文

hadoop的三大结构及其各自的作用

Hadoop 主要有三大核心组件,分别是 HDFS(Hadoop Distributed File System)、MapReduce 和 YARN,以下是它们各自的作用:
HDFS(Hadoop Distributed File System)
存储数据:HDFS 是一个分布式文件系统,用于存储海量的数据。它采用主从(Master - Slave)架构,由一个 NameNode 和多个 DataNode 组成。NameNode 管理文件系统的命名空间,维护着整个文件系统的目录树结构、文件和目录的元数据(例如文件的权限、修改时间、块位置信息等),就像图书馆的目录索引一样。

数据冗余备份:HDFS 提供了数据冗余备份机制,以防止数据丢失。默认情况下,每个数据块会在多个不同的 DataNode 上进行备份(通常备份系数为 3)。这样,当某个 DataNode 出现故障时,数据不会丢失,可以从其他备份的数据块中恢复。这种冗余策略确保了数据的高可用性和容错性,适合处理大规模数据存储场景,如数据仓库、日志存储等。

MapReduce
数据处理:MapReduce 是一种编程模型,用于大规模数据集(大于 1TB)的并行处理。它主要包含两个阶段:Map 阶段和 Reduce 阶段。在 Map 阶段,数据被分割成多个小的数据集,这些小数据集可以在集群中的不同节点上并行处理。例如,对于一个存储了网站访问日志的数据集,Map 阶段可以对每条日志记录进行处理,提取出诸如访问时间、访问 IP、访问页面等信息。每个 Map 任务处理一个数据分片,并且产生一系列的键值对(Key - Value)作为中间结果。这些中间结果会被传输到 Reduce 阶段进行汇总和处理。Reduce 阶段则根据相同的键(Key)对中间结果进行合并和进一步处理。例如,在统计网站每个页面的访问次数时,Reduce 阶段可以将相同页面的访问次数相加,得到最终的统计结果。
资源分配与任务调度:MapReduce 框架负责合理分配计算资源,使得多个 Map 任务和 Reduce 任务能够在集群的各个节点上高效地运行。它根据任务的优先级、数据本地性等因素来调度任务。数据本地性是指尽量将计算任务分配到存储数据的节点上,这样可以减少数据传输的开销,提高处理效率。通过这种方式,MapReduce 能够充分利用集群的计算资源,实现对大规模数据的高效处理,适用于数据挖掘、机器学习、日志分析等各种数据密集型应用场景。
YARN(Yet Another Resource Negotiator)
资源管理与调度:YARN 是 Hadoop 的资源管理系统,它负责集群中各种资源(如 CPU、内存等)的分配和管理。YARN 将资源管理从具体的数据处理框架(如 MapReduce)中分离出来,使得多个不同类型的计算框架可以共享集群资源。它主要由 ResourceManager、NodeManager 和 ApplicationMaster 组成。ResourceManager 是整个集群资源的管理者,负责接收和处理客户端的资源请求,为应用程序分配资源。NodeManager 运行在集群中的每个节点上,负责管理本节点的资源,如监控资源使用情况、启动和停止容器(Container)等。容器是 YARN 中资源分配的基本单位,它封装了一定量的 CPU、内存等资源,用于运行应用程序的任务。
应用程序管理:YARN 为应用程序提供了运行环境和资源保障。当一个应用程序提交到 YARN 集群时,YARN 会为该应用程序分配一个 ApplicationMaster。ApplicationMaster 负责与 ResourceManager 协商资源,根据应用程序的需求向 NodeManager 申请容器来运行任务。它还负责监控任务的运行状态,当任务失败时可以重新申请资源和重启任务。这种架构使得不同的应用程序可以在同一个集群中互不干扰地运行,提高了集群资源的利用率和灵活性,支持多种类型的大数据应用,如批处理、交互式查询、流处理等。
 

相关文章:

  • 面试经验杂谈
  • uniapp中uni-easyinput 使用@input 不改变绑定的值
  • Python(21)Python日期时间完全指南:从基础到实战注意事项
  • c加加重点学习之day03
  • 自动驾驶安全模型研究
  • Excel提取图片并自动上传到文件服务器(OOS),获取文件链接
  • 零基础玩转AI数学建模:从理论到实战
  • 【MATLAB代码例程】AOA与TOA结合的高精度平面地位,适用于四个基站的情况,附完整的代码
  • Spring MVC 初体验~~
  • lottie深入玩法
  • 云端免费训练 AI 大模型推荐(适用于个人学习)
  • 4.黑马学习笔记-SpringMVC(P43-P47)
  • 自然语言处理入门7——注意力机制
  • poj1067 取石子游戏 威佐夫博弈
  • [苍穹外卖 | 项目日记] 第三天
  • Server - 优雅的配置服务器 Bash 环境(.bashrc)
  • 【20】Strongswan sa ——IKE_SA set_state|process_message|
  • AI时代的泛安全新范式:Kaamel安全智能体解决方案
  • 使用VHDL语言实现TXT文件的读写操作
  • QT中栅格模式探索
  • 冲线!“天工”夺得全球首个人形机器人半马冠军
  • 信心从何而来|当消博会展商遇上关税战
  • 如此城市|漫步瑞金医院展览,艺术可以成为一种“社会雕塑”
  • 哈马斯:愿就达成一项“全面”协议进行谈判
  • 美国佛罗里达州立大学发生枪击事件
  • 提升青春期+亲子含量:社区商业综合体这样用好“二次元”