Spark
满岛菜鸟
励志成为大神的菜鸟
展开
-
Spark的Shuffle机制
文章目录1. 相关概念2. HashShuffle2.1 未优化的HashShuffle2.2 优化后的HashShuffle3. SortShuffle3.1 普通的SortShuffle3.2 BypassSortShuffle1. 相关概念在Spark程序中,Stage按照阶段的不同划分为ShuffleMapStage&ResultStage;按照Stage的不同,里面的Tas...原创 2020-02-09 20:03:54 · 490 阅读 · 0 评论 -
图解Spark的任务调度机制
文章目录1. 相关概念2. 任务调度2.1 Stage级别任务调度:2.2 Task级别的调度2.2.1 Task的调度策略:2.2.1.1 FIFO调度策略:2.2.1.2 Fair调度策略:2.2.2 本地化调度2.2.3 失败重试和黑名单由于在实际开发中都是使用yarn-cluster模式,所以本文也以该模式为分析的前提。1. 相关概念首先明确几个在任务调度方面的常用概念:(1)Jo...原创 2020-02-09 19:08:04 · 474 阅读 · 0 评论 -
图解Spark的Standalone运行模式
从实际开发的角度来看的话,standalone部署模式并不多。一般都是使用yarn运行模式,在开发测试的过程中使用local模式。和yarn运行模式一样,standalone也分为client和cluster两种部署模式:(1)standalone-cluster模式:(2)standalone-client模式:两者的主要区别就在于Driver的运行模式不同。...原创 2020-02-09 14:30:01 · 294 阅读 · 0 评论 -
图解Spark的yarn-client运行模式
在Spark的yarn-client运行模式下,程序在提交之后会先后创建三个进程,分别为:SparkSubmit,ExecutorLauncher和CoarseGrainedExecutorBackend。下面以图解的方式分析其具体的执行流程:下面是基于对源码的分析对上面的执行流程的具体解释:需要注意的是:ExecutorLauncher进程和ApplicationMaster进程虽然进程...原创 2020-02-09 14:17:01 · 852 阅读 · 0 评论 -
完全图解Spark的yarn-cluster运行模式
在yarn-cluster部署模式下,程序在提交运行之后会先后创建三个进程,分别为:SparkSubmit,ApplicationMaster和CoarseGrainedExecutorBackend。整体运行流程如下:接下来依照对源码的分析,图解各个进程的具体执行流程:(1)SparkSubmit:(2)ApplicationMaster:(3)CoarseGrainedExec...原创 2020-02-08 21:53:48 · 509 阅读 · 0 评论 -
图解Spark中CoarseGrainedExecutorBackend的执行流程
Spark在Yarn-Cluster部署模式下,程序在提交之后会依次创建三个进程:SparkSubmit,ApplicationMaster和CoarseGrainedExecutorBackend。本文主要在对源码进行分析之后以图解的方式展示CoarseGrainedExecutorBackend的执行流程。由上图的执行流程可以看出,CoarseGrainedExecutorBackend进...原创 2020-02-08 21:44:25 · 896 阅读 · 0 评论 -
图解Spark中ApplicationMaster的执行流程
在Yarn-Cluster部署模式下,程序在提交之后会依次启动三个进程:SparkSubmit,Application和CoarseGrainedExecutorBackend。在本文中主要分析ApplicationMaster的执行流程:从ApplicationMaster源码执行示意图中可得知,ApplicationMaster与Hadoop的YARN中的ApplicationMaster...原创 2020-02-08 20:23:19 · 1995 阅读 · 0 评论 -
图解Spark程序运行时SparkSubmit的执行流程
在Spark的yarn-cluster运行模式下,当使用spark-submit脚本提交程序之后,会依次创建三个进程,它们分别是:SparkSubmit,ApplicationMaster和CoarseGrainedExecutorBackend,在本文中我们先分析一下SparkSubmit的生命周期:需要注意的是,Client并不是一个进程;另外虽然调用了其run方法,但是并没有创建子线程,...原创 2020-02-07 23:18:09 · 596 阅读 · 1 评论 -
图解Spark中Worker的启动过程
main方法:(1)创建RpcEnv(2)获取masterAddress(3)创建Worker的EndpointonStart方法:(1)在启动之后,向Master以ask的方式进行注册(2)在接收到Master的响应信息之后,进行处理(3)每15秒以send的方式向Master发送心跳需要注意的是:在start-all.sh脚本执行的时候,也有可能是Worker先启动而Mast...原创 2020-02-07 21:24:49 · 446 阅读 · 0 评论 -
Spark源码分析-Master的onStart()方法是什么时候调用的?
一般我们都知道,Master的生命周期方法为:constructor->onstart->receive*->onStop;但是在Master的main方法中并没有对onStart的直接调用,那么onStart方法是什么时候被调用的呢?这其实与Spark的底层的Netty通信架构有关。在Master的main方法中: val rpcEnv: RpcEnv = RpcEnv....原创 2020-02-07 20:51:19 · 478 阅读 · 1 评论 -
Spark源码解析-Master的启动流程
文章目录1.main方法1.1 startRpcEnvAndEndpoint()1.1.1 create1.1.2 setupEndpoint()1.2 Constructor2. onStart()方法大致的整体启动流程如下:1.main方法在StandAlone模式下,Spark集群中存在两种重要的节点,分别是Master和Worker。那么作为集群管理器的Master到底是怎样启动的...原创 2020-02-07 20:03:43 · 442 阅读 · 0 评论 -
The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH
The specified datastore driver (“com.mysql.jdbc.Driver”) was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver已解决要执行的代码如下:object HiveRead { def mai...原创 2020-01-13 19:25:00 · 3891 阅读 · 0 评论