YARN?
YARN是Hadoop核心组件之一,用于提供分布式资源调度服务,而且专注于资源调度
简单地说,就是:以分布式技术完成资源的合理分配,让MapReduce能高效完成计算任务
YARN架构组成
YARN架构是由四个模块组成,分别是:
a)ResourceManager(资源管理器):
用于接收用户的计算请求任务,并负责集群的资源分配;
b)NodeManager(节点管理器):
单个服务器的资源调度者,负责调度单个服务器资源并提供给程序使用;
c)ApplicationMaster(任务管理器):
单个任务运行的管理者;
d)Client Application:客户端提交的应用程序。
YARN架构中,有两大核心模块:ResourceManager和NodeManage
YARN提交MR的流程
1)我们向Yarn提交应用程序,包括ApplicationMaster、我们的MapReduce程序,
以及MapReduce程序启动命令;
2)ResourceManager进程和NodeManager进程通信,根据集群资源,
为用户程序分配第一个容器,并将ApplicationMaster分发到这个容器上面,
并在容器里面启动ApplicationMaster;
3)ApplicationMaster启动后,立即向ResourceManager进程注册,并为自己的应用程序申请容器资源;
4)ApplicationMaster申请到需要的容器后,立即和相应的NodeManager进程通信,
将用户MapReduce程序分发到NodeManager进程所在服务器,
并在容器中运行,运行的就是Map或者Reduce任务;
5)Map或者Reduce任务在运行时,和ApplicationMaster通信,汇报自己的运行状态。
如果运行结束,ApplicationMaster向ResourceManager进程注销并释放所有的容器资源。
到这里,MapReduce程序已执行完成!
YARN的三大调度器
(1)先进先出调度器: FIFO Scheduler
(2)公平调度器: Fair Scheduler
(3)容量调度器: Capacity Scheduler
ZooKeeper?
分布式协调服务的开源框架,简要地说,就是管理大数据生态圈的各类"动物"。
特性:
1)全局数据一致
2)可靠性
3)顺序性
4)数据更新原子性
5)实时性
Watch监听机制
get /节点名 watch
选举机制