本期内容:
1 MapReduce架构解密
2 MapReduce运行集群研究
3通过Java编程操作MapReduce实战
2.0 Hadoop从开始就已经必须运行在纱线上面了,1.0时根本不关心纱线。
现在是先生,也是讲故事的,而且已经是基础入门阶段。零基础已经过去了。
明天开始- 20个左右的MapReduce代码的集合讲解
一:基于纱线的MapReduce架构
1。先生代码程序是基于实现Mapper和减速器两大阶段构成的,其中映射器是把一个计算任务分解成很多
小任务进行并行计算,减速器是进行最后的统计的工作的;
2。Hadoop 2。x开始是基于纱运行的。
纱是管理集群的所有资源的(如内存和CPU), ResourceManager,每个节点上安排了一上JVM进程,NodeManager,接收要求用容器方式来包裹这些资源,当RM接收到作业请求时,
3。当ResourceManager接收到客户提交的请求的程序的时候会根据集群资源的状况在某个NodeManager所在的节点上命令NodeManager启动该程序的第一个容器,该容器就是程序的ApplicationMaster,负责程序的任务调度的执行过程,ApplicationManager转过来向ResourceManager注册自己,注册之后会向ReourceManager申请具体的容器计算资源。
4。如何街道一个程序中的ApplicationMaster需要多少个容器呢?
,应用程序在启动时会运行程序的主方法,该方法中会有数据的输入和相关的配置,通过这些内容就可以知道需要多少容器;
(容器是一个单位的计算机资源,根据客户端请求的计算,集群会解析计算工作,计算结果包含需要的包含资源)
应用程序要运行主方法,知道分析程序有多少个分片,多少个分片对应容器,再考量其他资源,如洗牌等再分配一些资源。
5。MapReduce运行在纱线上的总结
主从结构
主节点,只有一个:ResourceManager
控制节点,每个工作都有一个MRAppMaster
从节点,有很多个:YarnChild
ResourceManager负责:
接收客户提交的计算任务
把工作分给MRAppMaster执行
监控MRAppMaster的执行情况
MRAppMaster负责:
负责一个工作执行的任务调度
把工作分给YarnChild执行
监控YarnChild的执行情况
YarnChild负责:
执行MRAppMaster分配的计算任务
RM生产环境中是要做HA的
6。Hadoop MapReduce中的MRAppMaster,相当于火花中的司机,Hadoop MapReduce中的YarnChildren相当于火花中的CoarseGrainedExecutorBackend;
(Hadoop相对于火花资源的损耗相当多)