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

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

hadoop idea 框架 hadoop框架包含什么组件_mapreduce

1.HDFS

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

hadoop idea 框架 hadoop框架包含什么组件_HDFS_02

  • 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 idea 框架 hadoop框架包含什么组件_mapreduce_03

2.mapreduce

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

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

原理图:

hadoop idea 框架 hadoop框架包含什么组件_海量数据_04


shuffle图:

hadoop idea 框架 hadoop框架包含什么组件_海量数据_05

3.Yarn

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

  • ResourceManager:
-处理客户端的请求
 -监控NodeManger
 -启动或监控ApplicationMaster
 -资源的分配与调度
  • NodeManager:
-管理单个节点的资源
  -处理来自ResourceManager的命令
  -处理来自AppalicationMaster的命令
  • ApplicationMaster"
-负责数据的切分
  -为应用程序申请资源并分配给内部任务
  -任务的监控与容错
  • Container:
Container是YARN中资源的抽象,它封装了某个节点上的多维度资源,
  如内存、CPU、磁盘、网络等