上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Spark---Master启动及Submit任务提交

guduadmin14小时前

一、Spark Master启动

1、Spark资源任务调度对象关系图

Spark---Master启动及Submit任务提交,第1张

2、集群启动过程

Spark集群启动之后,首先调用$SPARK_HOME/sbin/start-all.sh,start-all.sh脚本中调用了“start-master.sh”脚本和“start-slaves.sh”脚本,在start-master.sh脚本中可以看到启动Master角色的主类:“org.apache.spark.deploy.master.Master”。在对应的start-slaves.sh脚本中又调用了start-slave.sh脚本,在star-slave.sh脚本中可以看到启动Worker角色的主类:“org.apache.spark.deploy.worker.Worker”。

  • Master&Worker启动

    Spark框架的设计思想是每台节点上都会启动对应的Netty通信环境,叫做RpcEnv通信环境。每个角色启动之前首先向NettyRpcEnv环境中注册对应的Endpoint,然后启动。角色包括:Master,Worker,Driver,Executor等。下图是启动start-all集群后,Master角色启动过程,Master角色的启动会调用“org.apache.spark.deploy.master.Master”主类,执行流程如下:

    Spark---Master启动及Submit任务提交,第2张

    二、Spark Submit任务提交

    • SparkSubmit任务提交

      Spark submit提交任务时,调用$SPARK_HOME/bin/spark-submit spark-submit脚本中调用了“org.apache.spark.deploy.SparkSubmit”类。执行此类时,首先运行main方法进行参数设置,然后向Master申请启动Driver。代码流程如下图示:

      Spark---Master启动及Submit任务提交,第3张

      • 启动DriverWrapper类

        当提交任务之后,客户端向Master申请启动Driver,这里首先会启动一个DriverWrapper类来对用户提交的application进行包装运行,DriverWrapper类的启动过程如下:

        Spark---Master启动及Submit任务提交,第4张

        • 注册Driver Endpoint,向Master注册Application

          当执行用户的代码时,在new SparkContext时,会注册真正的Driver 角色,这个角色名称为“CoarseGrainedScheduler”,Driver角色注册之后,注册“AppClient”角色,由当前这个角色向Master注册Application。代码流程如下:

          Spark---Master启动及Submit任务提交,第5张

网友评论

搜索
最新文章
热门文章
热门标签