Yarn基础介绍
Ps:在博文开始前,需要说明的是该篇文章有部分的内容和图片摘自网上一些博主的博客,若有冒犯请知会我删除该部分内容,也感谢这些博主的博客给我在学习yarn组件时给予的莫大帮助。
一、Yarn的发展史
1) MRv1
引入JobTracker、TaskTracker的概念:
A:JobTracker:一个管理者,接受来自TaskTracker的心跳,负责资源管理和job的调度。
B:TaskTracker:像是一个中层的管理者,接受来自JobTracker的请求,也会反馈来自任务的实现情况。
从图中可看到,MRv1实现了一个相对简单的集群管理器来执行MapReduce处理,但是这种架构存在着不足,查阅资料得到,当节点数量大于4000时,就会具有较大的不可预测性以及风险使得JobTracker挂掉,那么就会导致整个集群瘫痪。为了解决这样的问题,就产生了Yarn。
2) MRv2 -- Yarn
为了解决这样的问题,将JobTracker中的资源管理和作业控制功能分开,分别由组件ResourceManager 和ApplicationMaster实现,其中,ResourceManager负责所有应用程序的资源分配,而ApplicationMaster仅负责管理一个应用程序,进而诞生了全新的通用资源管理框架Yarn。
二、 Yarn的结构以及工作机制
在看下图之前,我们先熟悉几个概念: