Spark开发-Standalone模式

来源:互联网 发布:数据真实性 英文 编辑:程序博客网 时间:2024/04/29 21:45

Standalone模式
在Spark Standalone模式中,spark集群有Master节点和worker节点组成,用户程序通过与master节点交互,申请所需的资源,Worker节点负责具体executor的启动运行。
以WordCount为例,Standalone模式下的应用程序的启动命令如下
./bin/run-example org.apache.spark.examples.JavaWordCount spark://192.168.18.140:7077

内部实现原理
如图,Standalone模式使用SparkDeploySchedulerBackend配合TaskSchedulerImp1工作,而SparkDeploySchedulerBackend本身拓展自CoarseGrainedSchedulerBackend.
CoarseGrainedSchedulerBackend是一个基于Akka Actor实现的粗粒度的资源调度类,在整个Spark作业运行期间,CoarseGrainedSchedulerBackend会监听并持有注册给它的executor资源,并且在接受executor注册、状态更新、相应Scheduler请求等各种时刻,根据现有Executor资源发起任务调度流程。
Executor本身是可以通过各种途径启动的,在Spark Standalone模式中,SparkDeploySchedulerBackend通过client类向Spark Master发送请求,在独立部署的spark集群中启动CoarseGrainedExecutorBackend,根据所需的CPU资源的数量,一个或多个CoarseGrainedExecutorBackend在Spark Worker节点上启动并注册给CoarseGrainedSchedulerBackend的Driver Actor
完成所需Actor的启动后,任务调度就在CoarseGrainedSchedulerBackend和CoarseGrainedExecutorBackend的Actor之间直接完成
这里写图片描述