- 博客(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
1790
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
402
原创 Spark源码解读(8)——累加器
首先,看下以下代码: var value = 0 sc.parallelize(1 to 10).foreach(i=>value += i) value这里value的结果仍然为0 这个比较好解释: 因为 i => value += i 这个Function在运算之前需要经历:序列化 --> broadcase --> 被Executor获取 --> 反序列化 --> 调用 等一系列过
2016-08-01 21:43:38
1078
原创 Spark源码解读(5)——存储子系统
val env = SparkEnv.createExecutorEnv( driverConf, executorId, hostname, port, cores, isLocal = false)
2016-07-29 11:42:38
962
原创 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
2366
原创 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
1130
原创 Spark源码解读(2)——Worker启动过程
本文将讨论Spark以Standalone模式部署情况下,Worker的启动过程。 上文已经对Master的启动过程进行了较为详细的分析,Worker的启动过程大部分的代码都是和Master复用的,对于这部分不再赘述。因此对Worker启动过程的分析从onStart()方法开始 override def onStart() { assert(!registered)
2016-07-20 18:05:19
746
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人