1)hadoop的1.x、2.x版本
如下图,1.x的hadoop,资源调度和任务调度耦合在一起,无法扩展——自然就无法与spark结合。
而2.x的hadoop,把资源调度和任务调度做了解耦——图中红色的RM和绿色的NM,是做资源管理的;白色的MR Task和MR AppMaster是做计算的;粉色的Container是用来降低耦合性的。
图片.png
2)spark on yarn
如下图,是纯spark下的情况,此时master和worker和资源相关,Driver和Executor和计算相关。
图片.png
资源管理选yarn,微批计算用spark,两者结合棒棒哒:
图片.png
3)spark的组件
如下图,关于 master、worker、executor和driver的关系(总之就是spark那一套) 可参见此文:
https://blog.csdn.net/hongmofang10/article/details/84587262
图片.png
讲到底,我认为可将Master类比为yarn的ResourceManager,把Slave类比为yarn的NodeManager。
只是,yarn更专业,所以spark on yarn很流行。
4)yarn的组件
另外,我在查阅资料的时候,发现了以下这个画得非常好的图——他清晰地阐明了RM、NM、AM和Container的关系(总之就是yarn那一套):
图片.png
(上图所在文章之地址:https://blog.csdn.net/qq_35995514/article/details/105440654)