摘要:
通过上一节内容,DriverEndpoint最终生成多个可执行的TaskDescription对象,并向各个ExecutorEndpoint发送LaunchTask指令,本节内容将关注ExecutorEndpoint如何处理LaunchTask指令,处理完成后如何回馈给DriverEndpoint, 阅读全文
摘要:
在前面的章节Client的加载中,Spark的DriverRunner已开始执行用户任务类(比如:org.apache.spark.examples.SparkPi),下面我们开始针对于用户任务类(或者任务代码)进行分析 一、整体预览 基于上篇图做了扩展,增加任务执行的相关交互 Code:指的用户编 阅读全文
摘要:
在前面的内容,我们针对于RpcEndpoint启动以及RpcEndpoint消息处理机制进行了详细的介绍,在我们的大脑里,基本上可以构建Spark各节点的模样。接下来的章节将会从Spark如何从业务代码分解为Spark的任务,并最终调度这些任务进行详细的介绍。 前面针对于Client启动过程以及Dr 阅读全文
摘要:
承接上一节内容,Client向Master发起RequestSubmitDriver请求,Master将DriverInfo添加待调度列表中(waitingDrivers),下面针对于Driver进一步梳理 一、Master对Driver资源分配 大致流程如下: waitingDrivers与ali 阅读全文
摘要:
Client作为Endpoint的具体实例,下面我们介绍一下Client启动以及OnStart指令后的额外工作 一、脚本概览 下面是一个举例: /opt/jdk1.7.0_79/bin/java -cp /opt/spark-2.1.0/conf/:/opt/spark-2.1.0/jars/*:/ 阅读全文
摘要:
Worker作为Endpoint的具体实例,下面我们介绍一下Worker启动以及OnStart指令后的额外工作 一、脚本概览 下面是一个举例: /opt/jdk1.7.0_79/bin/java -cp /opt/spark-2.1.0/conf/:/opt/spark-2.1.0/jars/*:/ 阅读全文
摘要:
Master作为Endpoint的具体实例,下面我们介绍一下Master启动以及OnStart指令后的相关工作 一、脚本概览 下面是一个举例: /opt/jdk1.7.0_79/bin/java -cp /opt/spark-2.1.0/conf/:/opt/spark-2.1.0/jars/*:/ 阅读全文
摘要:
Spark作为分布式计算框架,多个节点的设计与相互通信模式是其重要的组成部分。 一、组件概览 对源码分析,对于设计思路理解如下: RpcEndpoint:RPC端点 ,Spark针对于每个节点(Client/Master/Worker)都称之一个Rpc端点 ,且都实现RpcEndpoint接口,内部 阅读全文
摘要:
从脚本说起 在看源码之前,我们一般会看相关脚本了解其初始化信息以及Bootstrap类,Spark也不例外,而Spark我们启动三端使用的脚本如下: %SPARK_HOME%/sbin/start-master.sh %SPARK_HOME%/sbin/start-slaves.sh %SPARK_ 阅读全文
摘要:
Spark作为当前主流的分布式计算框架,其高效性、通用性、易用性使其得到广泛的关注,本系列博客不会介绍其原理、安装与使用相关知识,将会从源码角度进行深度分析,理解其背后的设计精髓,以便后续在Spark使用以及设计类似产品提供相关经验,下面开始进入正题。 本系列博客将从集群各端点的设计原理、通信方式、 阅读全文