hadoop各组件及其作用

Hadoop是一个适合海量数据分布式存储和计算的一个平台。目前主要由三大组件组成:
HDFS 、mapreduce、Yarn。

  • HDFS:是一个分布式存储框架,适合海量数据的存储
  • mapreduce : 是一个分布式计算框架。适合海量数据的计算
  • Yarn:是一个资源调度平台,负责给计算框架分配资源

hadoop各组件及其作用_第1张图片

1.HDFS

主从结构,由namenode和datanode组成。其中namenode最多可以有两个,但同时只能有一个。datanode理论上可以有无限个,极限大概是4000台。

hadoop各组件及其作用_第2张图片

  • namenode负责:

     -接受用户操作请求,是用户操作的入口
     -维护文件系统的目录结构,称为命名空间
    
  • datanode负责:

     实际存储数据
    

文件块block:最基本的存储单位,2.0以后默认大小为128M

  • SecondaryNameNode

      fsimage:元数据镜像文件,存储某一时间段Namenode内存元数据信息
      edits:用户操作日志文件
      负责 将fsimage与edits文件合并,防止namenode故障及缓解namenode压力
    

什么时候checkpoint:
1.fs.checkpoint.period 指定两次checkpoint的最大时间间隔,默认3600秒
2.fs.checkpoint.size 规定edits文件的最大值,一旦超过这个值则强制checkpoint,默认64M

hadoop各组件及其作用_第3张图片

2.mapreduce

依赖磁盘IO的批处理计算模型。
主从结构 主节点只有一个,为MRAppMaster,从节点为具体的task组成。

由两个阶段组成:map和reduce阶段。
map阶段是一个独立的程序,有很多的节点同时运行,每个节点处理一部分数据。reduce阶段是一个独立的程序,有很多节点同时运行,每个节点处理一部分数据。

原理图:
hadoop各组件及其作用_第4张图片
shuffle图:
hadoop各组件及其作用_第5张图片

3.Yarn

主从结构,主节点最多可以有两个,为ResourceManager;从节点为ResourceManager

  • ResourceManager:

     -处理客户端的请求
     -监控NodeManger
     -启动或监控ApplicationMaster
     -资源的分配与调度
    
  • NodeManager:

      -管理单个节点的资源
      -处理来自ResourceManager的命令
      -处理来自AppalicationMaster的命令
    
  • ApplicationMaster"

      -负责数据的切分
      -为应用程序申请资源并分配给内部任务
      -任务的监控与容错
    
  • Container:

      Container是YARN中资源的抽象,它封装了某个节点上的多维度资源,
      如内存、CPU、磁盘、网络等
    

你可能感兴趣的:(Hadoop)