介绍
hadoop主要有以下几部分组成:
- HDFS
- YARN
- MapReduce
- Hadoop Common
HDFS
Hadoop分布式文件系统,用于 存储数据
相当于操作系统中的文件系统,可以 创建、删除、移动、重命名 文件 等。
包含:
- NameNode
- DataNode
- Secondary NameNode
NameNode(nn)
存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
DataNode(dn)
存储文件块数据,以及块数据的校验和。
Secondary NameNode(2nn)
用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
YARN
负责资源的调度
在 hadoop2.x中增加
包含:
- ResourceManager
- NodeManager
- ApplicationMaster
- Container
ResourceManager(RM)
- 处理客户端请求
- 监控NodeManager
- 启动或监控ApplicationMaster
- 资源的分配与调度,管理CPU、内存、磁盘
NodeManager(NM)
- 管理单个节点上的资源
- 处理来自ResourceManager的命令
- 处理来自ApplicationMaster的命令
ApplicationMaster(AM)
- 负责数据的切分
- 为应用程序申请资源并分配给内部的任务
- 任务的监控与容错
Container
Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
MapReduce
分布式计算框架
MapReduce将计算过程分为两个阶段:
- Map阶段:并行处理输入数据
- Reduce阶段:对Map结果进行汇总
Hadoop Common
基础模块,为Hadoop提供各种功能,如:配置文件和日志操作等。