Spark基于RDD近乎完美的实现了分布式内存的抽象,且能够基于位置感知性调度、自动容错、负载均衡和高度的可扩展性,Spark中允许用户在执行多个查询时显式的将工作集缓存起来以供后续查询重用,这极大的提高了查询的速度。
分类:
其他好文 时间:
2015-12-16 12:52:34
阅读次数:
134
SparkContext是用户程序和Spark交互的接口,它会负责连接到Spark集群,并且根据系统默认配置和用户设置来申请计算资源,完成RDD的创建等工作。
分类:
其他好文 时间:
2015-12-16 12:52:30
阅读次数:
143
对于Spark中的join操作,如果每个partition仅仅和特定的partition进行join那么就是窄依赖;对于需要parentRDD所有partition进行join的操作,即需要shuffle,此时就是宽依赖。
分类:
其他好文 时间:
2015-12-16 12:51:48
阅读次数:
171
可以从两个方面来理解RDD之间的依赖关系,一方面是RDD的parentRDD(s)是什么,另一方面是依赖于parentRDD(s)哪些Partions(s);根据依赖于parentRDD(s)哪些Partions(s)的不同情况,Spark讲Dependency分为宽依赖和窄依赖两种。
分类:
其他好文 时间:
2015-12-16 12:50:52
阅读次数:
144
Spark一体化多元化的解决方案极大的减少了开发和维护的人力成本和部署平台的物力成本,并在性能方面有极大的优势,特别适合于迭代计算,例如机器学习和和图计算;同时Spark对Scala和Python交互式shell的支持也极大的方便了通过shell直接来使用Spark集群来验证解决问题的方法,..
分类:
其他好文 时间:
2015-12-16 12:50:23
阅读次数:
128
在Spark的Stage内部的每个Partition都会被分配一个计算任务Task,这些Task是并行执行的;Stage之间的依赖关系变成了一个大粒度的DAG,Stage只有在它没有parentStage或者parentStage都已经执行完成后才可以执行,也就是说DAG中的Stage是从前往后顺序执行的。
分类:
其他好文 时间:
2015-12-16 12:50:22
阅读次数:
139
RDD在创建子RDD的时候,会通过Dependency来定义他们之间的关系,通过Dependency,子RDD可以获得parentRDD(s)和parentRDD(s)的Partition(s).
分类:
其他好文 时间:
2015-12-16 12:49:54
阅读次数:
169
RDD的saveAsTextFile方法会首先生成一个MapPartitionsRDD,该RDD通过雕工PairRDDFunctions的saveAsHadoopDataset方法向HDFS等输出RDD数据的内容,并在在最后调用SparkContext的runJob来真正的向Spark集群提交计算任务。
分类:
其他好文 时间:
2015-12-16 12:49:12
阅读次数:
126
park中的Task分为ShuffleMapTask和ResultTask两种类型,在Spark中DAG的最后一个Stage内部的任务都是ResultTask,其余所有的Stage(s)的内部都是ShuffleMapTask,生成的Task会被Driver发送到已经启动的Executor中执行具体的计算任务,执行的实现是在TaskRunner.run方法中完成的。
分类:
其他好文 时间:
2015-12-16 12:48:54
阅读次数:
158
在Spark的reduceByKey操作时会触发Shuffle的过程,在Shuffle之前,会有本地的聚合过程产生MapPartitionsRDD,接着具体Shuffle会产生ShuffledRDD,之后做全局的聚合生成结果MapPartitionsRDD
分类:
其他好文 时间:
2015-12-16 12:48:44
阅读次数:
157