Yarn的基础架构
RM为整个yarn集群资源老大,NM为单个节点资源老大,AM为单个应用程序的资源老大,container容器,集群的资源抽象,最小单位;
Yarn工作机制
Job-->RM
在命令行上执行一个wc.jar,入口是main()方法,最后一行创建yarnrunner(集群模式),localrunner(本地模式)。然后向集群RM申请运行一个application,RM返回要提交的Job Application资源提交路径,主要放job.split(切片用来开启控制多少mapreduce),job.xml(参数配置), wc.jar(jar包即程序代码)。资源提交完毕,申请运行mrAppMaster,将在ResourceManager中将用户的请求初始化成一个Task任务,若存在多个任务,会放到一个调度队列中。空闲的NodeManager就会领取调度队列中的Task任务,领走任务之后首先会创建容器container,任何任务的执行都在容器中执行,容器中有cpu,网络资源,磁盘,内存等。启动一个MRAppmaster,启动以后会去集群资源上读取切片信息,向集群申请运行MapTask容器,开始启动MapTask运行代码。开启两个进程(yarnchild),运行结束后将数据按分区持久化到磁盘上。运行结束后通知MRAppmaster再次向ResourceManager申请运行ReduceTask程序,如两个分区就开启两个
ReduceTask。开启之前仍然先开启容器container,进程仍然是yarnchild。Reduce执行结束后,MR会向RM注销自己,释放资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)