Spark中Worker和Master的作用是什么
更新:HHH   时间:2023-1-7


本篇内容介绍了“Spark中Worker和Master的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Worker和Master是Spark独立集群里用到的类。如果是yarn环境部署,是不需要这两个类的。

Master是Spark独立集群的控制者,Worker是工作者,一个Spark独立集群需要启动一个Master和多个Worker。Spark提供了Master选举功能,保障Master挂掉的时候能选出另一个Master,做一个切换的动作,这块原理和ZooKeeper类似,这里知道概念就可以了。

Master的功能一是管理Worker的注册和注销、状态变更等,维护集群的元数据;而是管理Driver的提交运行。

当spark程序运行driver时,会通过StandaloneScheduleBackend来调度分区任务的执行,这时候在StandaloneScheduleBackend里面会有一个StandaloneAppClient负责与Master通信,发送RegisterApplication消息给Master,Master将等待运行的app信息记录下来,等待schedule方法的调度,RegisterApplication里包含了要执行的Driver的信息(Driver就是我们的spark程序的main方法要做的事)。

Master在进度调度(schedule方法)的时候,然后选择一个Worker作为Driver的执行者,这时会发送LaunchDriver消息给Worker,Worker收到后在本地启动Driver。

Master和Worker是机器层面的概念,和Executor、Driver是两码事,这点要注意的。ScheduleBackend是处理Driver和Executor之间的消息通信的。

CoarseGrainedSchedulerBackend是Driver的SchedulerBackend,是公共部分。独立集群的StandaloneSchedulerBackend其实就是继承了CoarseGrainedSchedulerBackend,共用了与Executor交互的公共代码,比如LaunchTask消息的处理等。

在Executor上运行的是CoarseGrainedExecutorBackend,CoarseGrainedExecutorBackend负责接收Driver发送的消息,回复Driver等。

CoarseGrainedSchedulerBackend发送LaunchTask消息给Executor的CoarseGrainedExecutorBackend,CoarseGrainedExecutorBackend收到LaunchTask后调用Executor的launchTask方法来执行Task。

“Spark中Worker和Master的作用是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注天达云网站,小编将为大家输出更多高质量的实用文章!

返回云计算教程...