本文概述: 1、YARN概述 2、YARN架构 3、YARN执行流程 4、YARN容错 5、YARN环境搭建 准备工作: 之前博主有发过Hadoop集群环境的搭建以及分布式环境的搭建,可以参考任意博客 http://blog.csdn.net/qq_32297447/article/details/79204625 http://blog.csdn.net/qq_32297447/article/details/79267327
YARN概述:集群资源管理(Yet Another Resource Negotiator)
是一个通用的资源管理系统,可为上层应用提供统一的资源管理和调度 它的引入为集群在利用率、资源统一和数据共享等方面带来了巨大好处 YARN架构 架构核心组件: ResourceManager NodeManager ApplicationMaster Container 容错
- ResourceManager容错
- NodeManager容错
- ApplicationMaster容错
master/slaves结构 :1个ResourceManager对应多个NodeManager构成 ApplicationMaster :每个应用程序一个,负责应用程序的管理 1)数据切分 2)为应用程序向RM申请资源(Container),分配内部任务 3)与NM通信以启动/停止任务,Task都是运行在Container中的 4)Task的容错 ResourceManager 在整个集群中处于工作状态的只有1个,负责集群资源的统一管理和调度 1)处理客户端发起的请求(启动/杀死应用程序) 2)启动/监控ApplicationMaster,AM挂了,RM将会在另外一个节点上启动该AM 3) RM要监控NM 4)整个系统的资源分配和调度 NodeManager :整个集群中有多个,负责自己节点的资源使用和管理 1)定时向RM汇报本节点上的资源使用情况和各个Container的运行情况 2)接收和处理来自RM的Container启动和停止的各种命令 3)处理来自AM的命令 4)本节点上的资源管理和任务管理 Container :对任务运行环境的封装,CPU、内存等这些资源以及环境变量、启停命令等等与任务相关的信息 YARN执行流程 1)用户向YARN(RM)提交作业 2)RM为该作业分配第一个Container 3)RM与对应的NM通信,要求在这个NM的这个Container上启动应用程序的ApplicationMaster 4)AM首先向RM注册,这样用户就可以通过RM来查询到作业的运行状况,然后AM将为各个任务申请资源 5)一旦AM申请到资源后,就要与对应的NM通信,要求NM启动任务 6)NM启动任务 YARN容错 RM:单点故障==> RM HA(切换)/RM Restart(重启) NM:挂了,RM将失败的任务会告诉AM,让AM来决定是否处理失败的任务 AM:挂了,由RM负责重启 有些task运行ok,但是整个作业还没运行完,会保存已经运行完成的task,重启后无需全部重新运行 YARN环境搭建 mapred-site.xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> yarn-site.xml <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> 启动YARN: sbin/start-yarn.sh 检测是否启动成功: 1)jps NodeManager ResourceManager 2)web 页面