在Spark 0.6和0.7时,Shuffle的结果都需要先存储到内存中(有可能要写入磁盘),因此对于大数据量的情况下,发生GC和OOM的概率非常大。因此在Spark 0.8的时候,Shuffle的每个record都会直接写入磁盘。一直到1.2.0,Shuffle的数据是一定会写入本地文件系统的,那么对于性能要求非常苛刻的用户,如何获得更好的性能呢?...
分类:
其他好文 时间:
2015-01-11 16:18:22
阅读次数:
149
通过Hash Based Shuffle和Sort Based Shuffle的源码,可以得出使用Spark Pluggable框架开发一个第三方的Shuffle Service是比较容易的;这个容易是指功能实现方面。但是这个实现必须要考虑超大规模数据场景下的性能问题,资源消耗问题。...
分类:
其他好文 时间:
2015-01-08 08:19:06
阅读次数:
273
在Spark 1.2.0中,Spark Core的一个重要的升级就是将默认的Hash Based Shuffle换成了Sort Based Shuffle,即spark.shuffle.manager 从hash换成了sort,对应的实现类分别是org.apache.spark.shuffle.hash.HashShuffleManager和org.apache.spark.shuffle.sort.SortShuffleManager。
那么Sort BasedShuffle“取代”Hash BasedS...
分类:
其他好文 时间:
2015-01-05 08:17:15
阅读次数:
210
由于天然符合互联网中很多场景的需求,图计算正受到越来越多的青睐。Spark GraphX 是作为 Spark 技术堆栈中的一员,担负起了 Spark 在图计算领域中的重任。网络上已经有很多图计算和 Spark GraphX 的概念介绍,此处就不再赘述。 本文将一篇很好的 Spark GraphX 入门文章中代码块整合为一个完整的可执行类,并加上必要注释以及执行结果,以方便有兴趣的朋友快速从 API 角度了解 Spark GraphX。...
分类:
其他好文 时间:
2014-12-20 20:57:21
阅读次数:
224
前两篇文章写了Shuffle Read的一些实现细节。但是要想彻底理清楚这里边的实现逻辑,还是需要更多篇幅的;本篇开始,将按照Job的执行顺序,来讲解Shuffle。即,结果数据(ShuffleMapTask的结果和ResultTask的结果)是如何产生的;结果是如何处理的;结果是如何读取的。...
分类:
其他好文 时间:
2014-12-07 21:48:53
阅读次数:
224
本文主要关注ShuffledRDD的Shuffle Read是如何从其他的node上读取数据的。
上文讲到了获取如何获取的策略都在org.apache.spark.storage.BlockFetcherIterator.BasicBlockFetcherIterator#splitLocalRemoteBlocks中。可以见注释。...
分类:
其他好文 时间:
2014-11-30 18:47:14
阅读次数:
138
本文就spark-cassandra-connector的一些实现细节进行探讨,主要集中于如何快速将大量的数据从cassandra中读取到本地内存或磁盘。
分类:
Web程序 时间:
2014-11-17 22:33:25
阅读次数:
492
结束historyserver的命令如下所示:第四步:验证Hadoop分布式集群首先在hdfs文件系统上创建两个目录,创建过程如下所示:Hdfs中的/data/wordcount用来存放Hadoop自带的WordCount例子的数据文件,程序运行的结果输出到/output/wordcount目录中,透过Web控制可以发现我们成功创建..
分类:
其他好文 时间:
2014-11-03 16:35:08
阅读次数:
127
结束historyserver的命令如下所示:
第四步:验证Hadoop分布式集群
首先在hdfs文件系统上创建两个目录,创建过程如下所示:
Hdfs中的/data/wordcount用来存放Hadoop自带的WordCount例子的数据文件,程序运行的结果输出到/output/wordcount目录中,透过Web控制可以发现我们成功创建了两个文件夹:
...
分类:
其他好文 时间:
2014-11-03 16:31:40
阅读次数:
142
“决胜云计算大数据时代”Spark亚太研究院100期公益大讲堂【第18期互动问答分享】Q1:Master和Driver的是同一个东西吗?两者不是同一个东西,在Standalone模式下Master是用于集群资源管理和调度的,而Driver适用于指挥Worker上的Executor通过多线的方式处理任务的;Master位于..
分类:
其他好文 时间:
2014-10-31 15:58:01
阅读次数:
219