题记
本文资料来源于拉钩大数据开发高薪训练营。
Hadoop 由四部分组成
- Hadoop HDFS:(hadoop distribute File System)一个高可靠、高吞吐量的分布式文件存储系统。
- Hadoop MapReduce:分布式离线计算框架
- Hadoop Yarn:任务调度和集群资源管理的框架
- Hadoop common:⽀持其他模块的⼯具模块(Configuration、RPC、序列化机制、⽇志操作)
HDFS
HDFS如名所示,Hadoop的分布式文件系统,但是已经可以说是整个大数据环境下的文件存储系统。
Hadoop存储文件采用分治的思想,即将一个大文件分成许多的块分别备份存储,默认的存储块大小是128mb。
总的来说,存储一个文件的过程分三步:数据切割、制作副本、分散存储
HDFS有三个后台线程:
图中涉及几个角色,这里一一介绍:
- NameNode(nn):存储⽂件的元数据,⽐如⽂件名、⽂件⽬录结构、⽂件属性(⽣成时间、副本
数、⽂件权限),以及每个⽂件的块列表和块所在的DataNode等。 - SecondaryNameNode(2nn):辅助NameNode更好的⼯作,⽤来监控HDFS状态的辅助后台程
序,每隔⼀段时间获取HDFS元数据快照。 - DataNode(dn):在本地⽂件系统存储⽂件块数据,以及块数据的校验。
MapReduce
Hadoop的分布式离线计算框架
MapReduce = Map + Reduce
如上等价公式所示,MapReduce分工明确。Map阶段并行地计算分片上的数据,再将结果发送给进行Reduce的节点,进行结果汇总输出的阶段。
Yarn
任务调度和集群资源管理框架
Yarn中有如下⼏个主要⻆⾊,同样,既是⻆⾊名、也是进程名,也指代所在计算机节点名称。
- ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资
源分配与调度; - NodeManager(nm):单个节点上的资源管理、处理来⾃ResourceManager的命令、处理来⾃
ApplicationMaster的命令; - ApplicationMaster(am):为应⽤程序申请资源,并分配给内部任务、负责任务的监控与容错。
申请资源是一个动态的过程,并不是在任务开始的时候申请资源便不再改变。 - Container:对任务运⾏环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运
⾏相关的信息。
ResourceManager是⽼⼤,NodeManager是⼩弟,ApplicationMaster是应用的抽象集合。