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

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

1. HDFS(Hadoop Distributed File System)

结构

  • NameNode:是HDFS的主节点,负责管理文件系统的元数据(如文件和目录的结构、文件块的存储位置等)。它维护着文件系统树以及文件树中所有文件和文件夹的元数据。

  • DataNode:是HDFS的从节点,负责存储实际的数据块。数据会被分割成固定大小的块(默认是128MB),然后分散存储在不同的DataNode上。

  • Secondary NameNode:辅助NameNode,帮助NameNode进行元数据的检查点操作,定期合并fsimage(文件系统镜像)和editlog(编辑日志),减轻NameNode的压力。

作用

  • 高容错性:通过在多个DataNode上存储数据的多个副本(默认是3副本),HDFS能够自动保存多个副本,当某个节点出现故障时,可以从其他副本中恢复数据。

  • 高吞吐量:适合大规模数据集的处理,能够以较高的吞吐量来访问数据。它通过分布式存储,将数据分散到多个节点上,从而提高数据的读写效率。

  • 适合大数据存储:能够存储海量的数据,支持大规模数据的存储和处理。

  • 高可靠性:通过NameNode对元数据的管理和DataNode对数据块的存储,保证了数据的完整性和可靠性。

2. MapReduce

结构

  • JobTracker:在早期版本的Hadoop中,负责调度和管理MapReduce作业。它会将作业分解为多个任务,并分配给TaskTracker去执行。

  • TaskTracker:负责执行具体的Map和Reduce任务,并将任务的执行情况汇报给JobTracker。

  • 在Hadoop 2.x及以后版本中,MapReduce的资源管理职责被转移到了YARN框架中,由YARN的ResourceManager和NodeManager来管理资源分配和任务调度。

作用

  • 分布式计算:MapReduce是一种分布式计算模型,能够将大规模数据的处理任务分解为多个小任务,并在多个节点上并行执行,从而提高计算效率。

  • 易于编程:提供了简单的编程模型,用户只需要编写Map函数和Reduce函数,就可以实现大规模数据的处理。Map函数负责处理输入的键值对,生成中间结果;Reduce函数负责对中间结果进行归并,生成最终结果。

  • 高效处理大规模数据:适合处理海量数据,能够高效地对大规模数据进行批处理。通过分布式计算,将数据分散到多个节点上进行处理,大大提高了数据处理的速度。

  • 容错性:具有良好的容错机制,当某个节点出现故障时,会自动重新分配任务到其他正常节点上执行,保证作业的正常完成。

3. YARN(Yet Another Resource Negotiator)

结构

  • ResourceManager:是YARN的主节点,负责整个集群的资源管理和调度。它会接收应用程序的资源请求,并根据资源分配策略将资源分配给各个应用程序。

  • NodeManager:是YARN的从节点,运行在每个节点上,负责管理单个节点上的资源(如CPU、内存等),并接收ResourceManager的指令来启动或停止应用程序的容器(Container)。

  • ApplicationMaster:是每个应用程序的管理组件,负责协调应用程序的运行,向ResourceManager申请资源,并与NodeManager通信以启动和管理应用程序的容器。

作用

  • 资源管理:负责管理集群中的资源(如CPU、内存等),并根据应用程序的需求合理分配资源。通过ResourceManager和NodeManager的协同工作,能够有效地管理集群资源,提高资源利用率。

  • 任务调度:根据资源分配策略和应用程序的优先级,合理地调度任务。它能够动态地分配资源,使得多个应用程序可以同时运行,提高集群的利用率和吞吐量。

  • 多框架支持:除了支持MapReduce框架外,还支持其他计算框架(如Spark、Flink等)。不同的计算框架可以通过YARN来申请资源,从而实现多种计算框架在同一集群上的运行,提高了集群的通用性和灵活性。

  • 高可用性:通过ResourceManager的高可用性配置,可以避免单点故障,保证集群的稳定运行。当主ResourceManager出现故障时,备用ResourceManager可以接管集群的管理,保证集群的正常运行。

http://www.xdnf.cn/news/7417.html

相关文章:

  • yarn的定义
  • 「数据可视化 D3系列」入门第九章:交互式操作详解
  • 自动驾驶与机器人算法学习
  • 【区块链通用服务平台及组件】京北方分布式身份管理平台 | FISCO BCOS 应用案例
  • java八股之并发编程
  • 医院数据中心智能化数据上报与调数机制设计
  • 仿腾讯会议项目开发——界面关闭功能实现
  • Flink介绍——实时计算核心论文之Kafka论文详解
  • java输出、输入语句
  • Vue3 Composition API与十大组件开发案例详解
  • 杂记-LeetCode中部分题思路详解与笔记-HOT100篇-其四
  • 【datawhaleAI春训营第一期笔记】AI+航空安全
  • Tensorflow实现用接口调用模型训练和停止训练功能
  • Mac mini 安装mysql数据库以及出现的一些问题的解决方案
  • 【前端HTML生成二维码——MQ】
  • uni-app 安卓10以上上传原图解决方案
  • 基于FPGA的AES加解密系统verilog实现,包含testbench和开发板硬件测试
  • 4.Rust+Axum Tower 中间件实战:从集成到自定义
  • 【Leetcode 每日一题】2364. 统计坏数对的数目
  • 再读bert(Bidirectional Encoder Representations from Transformers)
  • 学习设计模式《二》——外观模式
  • 京东物流基于Flink StarRocks的湖仓建设实践
  • UI 在教育产品涉及的领域
  • 如何评价2025 mathorcup妈妈杯数学建模竞赛?完整建模过程+完整代码论文全解全析来了
  • 2025年MathorCup数学应用挑战赛D题问题一求解与整体思路分析
  • Android 12.0 framework实现对系统语言切换的功能实现
  • 硬盘变废为宝!西部数据携微软等启动稀土回收 效率可达90%
  • SQL预编译——预编译真的能完美防御SQL注入吗
  • 关于hadoop和yarn的问题
  • 基于Flask的AI工具聚合平台技术解析