- 博客(9)
- 收藏
- 关注

原创 Spark源码解读(3)——从集群启动到Job提交
1,Master启动Master启动过程主要做了两件事:1)启动一个守护线程定时对Worker的TimeOut进行Check,默认TimeOut时间为60s checkForWorkerTimeOutTask = forwardMessageThread.scheduleAtFixedRate(new Runnable { override def run(): Un
2016-07-26 17:34:25
1779
1
原创 常见排序算法
不多说直接上代码,代码中实现了:快速排序、堆排序、直接插入排序、希尔排序package com.scalahome;/** * Created by Administrator on 2016/8/14. */public class SortDemo { public static void main(String[] args) { int[] array
2016-08-14 15:19:39
396
原创 Spark源码解读(8)——累加器
首先,看下以下代码:var value = 0sc.parallelize(1 to 10).foreach(i=>value += i)value这里value的结果仍然为0这个比较好解释:因为 i => value += i 这个Function在运算之前需要经历:序列化 --> broadcase --> 被Executor获取 --> 反序列化 --> 调用 等一系列过
2016-08-01 21:43:38
1073
原创 Spark源码解读(5)——存储子系统
val env = SparkEnv.createExecutorEnv( driverConf, executorId, hostname, port, cores, isLocal = false)
2016-07-29 11:42:38
955
原创 Spark源码解读(6)——Shuffle过程
Shuffle应该说是Spark Core中较为复杂的部分,本文主要从一个最简单的WordCount例子出发分析Spark的Shuffle过程:sc.parallelize(1 to 1000).map(i=>(i%5,1)).reduceByKey(_+_).collect()计算过程中会分成两个Stage如下图所示:每个Stage由多个Task组成,同一Stage的各Task并
2016-07-28 18:48:43
2358
原创 Spark源码解读(4)——RDD
1,RDD的转换共分为Transformation和Action两类Transformation和Action的区别在于:Action会触发作业的提交,而Transformation不会触发作业的提交如map()和collect() def map[U: ClassTag](f: T => U): RDD[U] = withScope { val cleanF = sc.cl
2016-07-27 13:01:12
1122
原创 Spark源码解读(2)——Worker启动过程
本文将讨论Spark以Standalone模式部署情况下,Worker的启动过程。上文已经对Master的启动过程进行了较为详细的分析,Worker的启动过程大部分的代码都是和Master复用的,对于这部分不再赘述。因此对Worker启动过程的分析从onStart()方法开始 override def onStart() { assert(!registered)
2016-07-20 18:05:19
741
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人