回到dagScheduler.runJob,submit提交作业返回waiter,waiter.awaitResult阻塞线程,判断Job是否执行成功def runJob[T, U: ClassTag]( rdd: RDD[T], func: (TaskContext, Iter...
分类:
Web程序 时间:
2015-07-26 22:32:54
阅读次数:
200
RDD的操作可以分为Transformations和Actions,Transformations是lazy的不立即执行,Action则会触发作业的提交和执行。例如本例中的foreachdef foreach(f: T => Unit) { sc.runJob(this, (iter: Itera....
分类:
Web程序 时间:
2015-07-26 10:58:09
阅读次数:
139
先说业务,在flatMap阶段,当前指标会在redis去验证数据是否是新用户,如果是新用户,那么进行统计,统计会将该新用户add至我们的redis容器中。。。这个业务其实很简单。。。但坑自己的是,flatMap后的RDD,会被两个不同的action使用。。。然后。。。我发现第二个action中永远是...
分类:
其他好文 时间:
2015-07-24 20:11:25
阅读次数:
190
Scala中隐式转换内幕操作规则揭秘、最佳实践及其在Spark中的应用,具体来说就是通过类的伴生对象实现隐式转换,而不用Import操作,在spark的RDD对象中用得很多例子:在spark中,RDD就是通过RDD类的伴生对象实现隐式转换objectRDD{implicitdefrddToPairR...
分类:
其他好文 时间:
2015-07-23 08:12:25
阅读次数:
156
引入上一篇文章《DAGScheduler源码浅析》中,介绍了handleJobSubmitted函数,它作为生成finalStage的重要函数存在,这一篇文章中,我将就DAGScheduler生成Stage过程继续学习,同时介绍Stage的相关源码。Stage生成Stage的调度是由DAGScheduler完成的。由RDD的有向无环图DAG切分出了Stage的有向无环图DAG。Stage的DAG通过...
分类:
其他好文 时间:
2015-07-15 22:46:51
阅读次数:
191
DAGSchedulerDAGScheduler的主要任务是基于Stage构建DAG,决定每个任务的最佳位置
记录哪个RDD或者Stage输出被物化
面向stage的调度层,为job生成以stage组成的DAG,提交TaskSet给TaskScheduler执行
重新提交shuffle输出丢失的stage
每一个Stage内,都是独立的tasks,他们共同执行同一个compu...
分类:
其他好文 时间:
2015-07-15 19:25:54
阅读次数:
1476
1背景介绍现今分布式计算框架像MapReduce和Dryad都提供了高层次的原语,使用户不用操心任务分发和错误容忍,非常容易地编写出并行计算程序。然而这些框架都缺乏对分布式内存的抽象和支持,使其在某些应用场景下不够高效和强大。RDD(Resilient Distributed Datasets弹性分...
分类:
其他好文 时间:
2015-07-15 12:43:05
阅读次数:
164
引入一般来说,分布式数据集的容错性有两种方式:数据检查点和记录数据的更新。
面向大规模数据分析,数据检查点操作成本很高,需要通过数据中心的网络连接在机器之间复制庞大的数据集,而网络带宽往往比内存带宽低得多,同时还需要消耗更多的存储资源。
因此,Spark选择记录更新的方式。但是,如果更新粒度太细太多,那么记录更新成本也不低。因此,RDD只支持粗粒度转换,即只记录单个块上执行的单个操作,然后将创建...
分类:
其他好文 时间:
2015-07-14 20:31:04
阅读次数:
113
RDD渊源弹性分布式数据集(RDD),它是MapReduce模型一种简单的扩展和延伸,RDD为了实现迭代、交互性和流查询等功能,需要保证RDD具备在并行计算阶段之间能够高效地数据共享的功能特性。RDD运用高效的数据共享概念和类似于MapReduce的操作方式,使得所有的计算工作可以有效地执行,并可以在当前特定的系统中获得关键性的优化。RDD是一种有容错机制的特殊集合,可以分布在集群的节点上,以函数式...
分类:
其他好文 时间:
2015-07-14 20:29:36
阅读次数:
111
详细内容参照Spark官网:http://spark.apache.org/
Spark相关项目:
Spark SQL 、Spark Streaming 、Machine Learning 、GraphX
1、Spark SQL :用Spark编写的混合SQL查询,能在分布式数据集中查询结构化数据,使得复杂分析算法的查询更容易。
2、Spark Streaming :Spark Strea...
分类:
其他好文 时间:
2015-07-14 11:35:22
阅读次数:
257