RDD用法与实例(十一)Spark中master、worker、executor和driver的关系,通过broadcast形成共享和直接生成全局变量的区别

Spark中master、worker、executor和driver的关系

参考来源1

master是大哥,worker是工人小弟们。master大哥有一个副手老二叫driver,手上管着一批货物executor(memory cpu等资源),老二会问大哥咋分给小弟们呢,大哥说哎,就这么分,张三比较菜(worker)搬两箱(executor),李四能者多劳(worker)搬五箱(executor)。

但是重点不是搬货物完了就行,货箱里的材料还需要不断返工和沟通来完成成品制作。就需要小弟们不断沟通,不断请示大哥。

假设这次做工,是做衣服。需要有织布、印染、打版、裁剪等等工序。而大家都需要看到同一张服装设计图。但是工厂很穷,不能给每个人都印一张设计图。于是老板决定让大家共享设计图,在幕布上投射出这张设计图,一起看。(不要纠结为什么幕布就比印刷设计图便宜,例子举的不好)

这个共享的过程就叫broadcast。通过广播让所有worker执行task时能够共享同一个变量,从而提升io效率。

如果大哥觉得自己很豪不在乎印刷设计图的钱,每个人都发一张,这样每个worker在执行任务时都有自己的这样一个变量副本。

RDD用法与实例(十一)Spark中master、worker、executor和driver的关系,通过broadcast形成共享和直接生成全局变量的区别
理解不深,等后续学透还有待修改