一、大数据基础
Hadoop、MapReduce、Hbase、Spark、Storm、Zookeeper
二、MapReduce和Yarn功能与架构
Yarn(集群资源管理)的组件
ResourceManager(RM):整个系统只有一个RM,它就只管调度方面的事情,并且为集群应用而优化,因而具有很好的性能。RM的一个核心是它的Scheduler。调度包含两个过程,一要搜集各节点的情况;二要根据某种调度策略,分配合适的节点。搜集节点情况是基于一个资源容器(resource container)的概念,该容器包括cpu,disk,network等(目前只用到cpu)
NodeManager(NM):NM是每个节点一个实例,管理每个节点,它触发应用容器(application container),监控节点的资源(cpu/disk等),并向RM报告资源的情况。
ApplicationMaster(AM):AM是每个应用一个实例,它是一个特定的框架接口库,一方面与RM中的Scheduler协商得到resource container,另一方面与NM一起执行和监控各子任务部件,从系统的角度,AM本身也一种container(下图中将它与container画得一样)。
Container:从逻辑上,container可认为是资源的分配容器,它包括hostname,cpu,memory等属性。AM发送ResourceRequest给RM,然后RM分配合适的Container给AM,AM再将此Container提交给它所在节点的NM,NM采用此资源容器运行任务。实际上,Container是一种使用资源的“授权”,AM得到此授权后,在NM的管理下,可以运行任何进程(包括非Java应用,这一点与1.0不同)。YARN可以激发活动的API包括:
在容器内运行进程的命令行
环境变量
本地资源,包括jar,链接库、文件等
安全凭证
Yarn
三、MapReduce客户端与RM的内部交互原理
1.客户端通知RM提交一个应用
2.RM生成一个唯一标识的应用ID,又叫JOb ID,同时将当前NM集群的资源描述信息反馈给客户端。
3.客户端根据RM的反馈信息,开始Job提交之前的初始化过程,包括调度队列、用户及优先级信息,以及RM创建和启动AM所需的信息(例如应用Jar文件、Job资源信息、安全Token或其他资源描述)。
4.客户端向RM查询、获取应用的执行进展报告
5.RM(实际是ASM)将应用执行进展报告发给MRClient
6.如有必要,客户端可直接通知RM(实际是ASM)终止
MapReduce客户端与RM的内部交互原理
【复现002】-20170723
四、Yarn 关键组件内部交互原理
1. RM调度资源并在合适的NM节点上启动对应的AM。AM向RM注册,包含二者之间的握手信息、AM侦听端口,及后续进行AM管理和监控的URL。
2. RM接收AM注册信息,并反馈响应给AM,包含集群资源信息。
3. AM向RM发起资源分配请求,包含需要使用的Container个数,同时附带归属于 本AM的Container信息。
4. AM向RM获取资源分配进度信息,并保持与 RM之间的心跳。
5. RM根据资源调度策略,分配容器资源给AM。
6. AM根据RM反馈信息,指示对应NM完成Container的拉起。一个NM上可以启动多个Container。
7. 在Container运行过程中,AM向NM获取Container的运行状态报告。
8. NM将Container的运行状态信息反馈给AM。
Yarn 关键组件内部交互原理
网友评论