【Spark2.0源码学习】-4.Master启动】的更多相关文章

      Spark作为当前主流的分布式计算框架,其高效性.通用性.易用性使其得到广泛的关注,本系列博客不会介绍其原理.安装与使用相关知识,将会从源码角度进行深度分析,理解其背后的设计精髓,以便后续在Spark使用以及设计类似产品提供相关经验,下面开始进入正题.        本系列博客将从集群各端点的设计原理.通信方式.启动流程,以及用户任务提交后,任务的集群加载.分解.调度的方式两个方面进行解读.   首先,从脚本开始             详见<[Spark2.0源码学习]-2.一切从…
[Spark2.0源码学习]-1.概述 [Spark2.0源码学习]-2.一切从脚本说起 [Spark2.0源码学习]-3.Endpoint模型介绍 [Spark2.0源码学习]-4.Master启动 [Spark2.0源码学习]-5.Worker启动 [Spark2.0源码学习]-6.Client启动 [Spark2.0源码学习]-7.Driver与DriverRunner [Spark2.0源码学习]-8.SparkContext与Application介绍 [Spark2.0源码学习]-9…
     Master作为Endpoint的具体实例,下面我们介绍一下Master启动以及OnStart指令后的相关工作   一.脚本概览      下面是一个举例: /opt/jdk1..0_79/bin/java -cp /opt/spark-/conf/:/opt/spark-/jars/*:/opt/hadoop-2.6.4/etc/hadoop/ -Xmx1g -XX:MaxPermSize=256m org.apache.spark.deploy.master.Master --ho…
Client作为Endpoint的具体实例,下面我们介绍一下Client启动以及OnStart指令后的额外工作 一.脚本概览      下面是一个举例: /opt/jdk1..0_79/bin/java -cp /opt/spark-/conf/:/opt/spark-/jars/*:/opt/hadoop-2.6.4/etc/hadoop/ -Xmx1g -XX:MaxPermSize=256m org.apache.spark.deploy.SparkSubmit --master spar…
     Worker作为Endpoint的具体实例,下面我们介绍一下Worker启动以及OnStart指令后的额外工作   一.脚本概览      下面是一个举例: /opt/jdk1..0_79/bin/java -cp /opt/spark-/conf/:/opt/spark-/jars/*:/opt/hadoop-2.6.4/etc/hadoop/ -Xmx1g -XX:MaxPermSize=256m org.apache.spark.deploy.worker.Worker --we…
从脚本说起      在看源码之前,我们一般会看相关脚本了解其初始化信息以及Bootstrap类,Spark也不例外,而Spark我们启动三端使用的脚本如下: %SPARK_HOME%/sbin/start-master.sh %SPARK_HOME%/sbin/start-slaves.sh %SPARK_HOME%/sbin/start-all.sh %SPARK_HOME%/bin/spark-submit        三端启动脚本中对于公共处理部分进行抽取为独立的脚本,如下:    …
     Spark作为分布式计算框架,多个节点的设计与相互通信模式是其重要的组成部分.   一.组件概览      对源码分析,对于设计思路理解如下:            RpcEndpoint:RPC端点 ,Spark针对于每个节点(Client/Master/Worker)都称之一个Rpc端点 ,且都实现RpcEndpoint接口,内部根据不同端点的需求设计不同的消息和不同的业务处理,如果需要发送/询问则调用Dispacher RpcEnv:RPC上下文环境,每个Rpc端点运行时依赖的上…
ThinkPHP5框架的启动流程图如下: ThinkPHP5的启动流程按照文件分为三步: 1.请求入口(public/index.php) 2.框架启动(thinkphp/start.php) 3.应用启动(thinkphp/library/App.php)   ThinkPHP框架默认是单入口框架,默认的入口文件为public/index.php,所有请求全部经过入口文件index.php来进行访问. index.php代码如下: // 定义应用目录 define('APP_PATH', __…
     承接上一节内容,Client向Master发起RequestSubmitDriver请求,Master将DriverInfo添加待调度列表中(waitingDrivers),下面针对于Driver进一步梳理   一.Master对Driver资源分配      大致流程如下:            waitingDrivers与aliveWorkers进行资源匹配, 在waitingDrivers循环内,轮询所有aliveWorker 如果aliveWorker满足当前waitingD…
         在前面的内容,我们针对于RpcEndpoint启动以及RpcEndpoint消息处理机制进行了详细的介绍,在我们的大脑里,基本上可以构建Spark各节点的模样.接下来的章节将会从Spark如何从业务代码分解为Spark的任务,并最终调度这些任务进行详细的介绍.        前面针对于Client启动过程以及Driver进行了详细的描述,下面我们根据用户代码中的SparkContext这个API类进行解读,该类Spark用户代码执行的基础,后续我们会陆续介绍,下面针对于Spar…