Hadoop组成:
Hadoop1.x:HDFS(数据存储)、MapReduce(计算+资源调度)
Hadoop2.x、Hadoop3.x:HDFS(数据存储)、MapReduce(计算)、Yarn(资源调度)
HDFS:Hadoop Distribute File System
1、NameNode:管理和存储所有真实数据的元数据(描述数据的数据),如文件名、文件目录结构、文件属性,以及每个文件的块列表和块所在的DataNode等
2、DataNode:在本地文件系统存储文件块数据,以及块数据的校验和。
按照块的大小将文件分块,以块为单位存储数据,默认的块大小是128M.
3、Secondary NameNode:每隔一段时间对NameNode元数据备份
Yarn:对于Yarn来说,资源调度一般指的是内存。
1、Resource Manager:管理和分配整个集群的资源(每个机器的资源)
1)、处理客户端的请求
2)、监控NodeManager
3)、启动或监控ApplicationMaster
当客户端提交一个job,Resource Manager会给当前作业启动一个ApplicationMaster,负责当前作业的执行过程
①负责数据的切分
②为应用程序申请资源并分配给内部的任务
application master --> Resource Master --> Node Manager
③任务的监控与容错
4)、资源的分配和调度
2、Node Manager:管理所在机器的资源
1)、处理来自Resource Manager的命令
2)、处理来自ApplicationMaster的命令
3、Container:对资源的抽象封装,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等
task和application master在运行的时候都需要用到资源,这时Container将它们用到的资源进行封装,避免资源的侵占。
MapReduce:将计算过程分为两个阶段:
Map(分):将数据分到多台机器进行计算
Reduce(合):将多台机器中运算的结果统一汇总