随笔分类 -  Spark

摘要:依据Spark 1.4版在哪里会用到它ExternalSorter是Spark的sort形式的shuffle实现的关键。SortShuffleWriter使用它,把RDD分区中的数据写入文件。 override def write(records: Iterator[Product2[K, V]]... 阅读全文
posted @ 2015-09-17 16:06 devos 阅读(2451) 评论(0) 推荐(0) 编辑
摘要:依据Spark1.4版Spark中的shuffle大概是这么个过程:map端把map输出写成本地文件,reduce端去读取这些文件,然后执行reduce操作。那么,问题来了:reducer是怎么知道它的输入在哪呢?首先,mapper在写完文件之后,肯定能提供与它的输出相关的信息。这个信息,在Spar... 阅读全文
posted @ 2015-09-13 08:54 devos 阅读(955) 评论(0) 推荐(0) 编辑
摘要:Spark中的shuffle是在干嘛?Shuffle在Spark中即是把父RDD中的KV对按照Key重新分区,从而得到一个新的RDD。也就是说原本同属于父RDD同一个分区的数据需要进入到子RDD的不同的分区。但这只是shuffle的过程,却不是shuffle的原因。为何需要shuffle呢?Shuf... 阅读全文
posted @ 2015-09-11 12:58 devos 阅读(7649) 评论(0) 推荐(0) 编辑
摘要:RDD, Resilient Distributed Dataset,弹性分布式数据集, 是Spark的核心概念。对于RDD的原理性的知识,可以参阅Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory C... 阅读全文
posted @ 2015-09-06 11:27 devos 阅读(2779) 评论(0) 推荐(0) 编辑
摘要:依据Spark 1.4版序列化和反序列化前边提到,TorrentBroadcast的关键就在于特殊的序列化和反序列化设置。1.1版的TorrentBroadcast实现了自己的readObject和writeObject方法,但是1.4.1版的TorrentBroadcast没有实现自己的readO... 阅读全文
posted @ 2015-08-19 09:07 devos 阅读(1022) 评论(0) 推荐(0) 编辑
摘要:依据Spark 1.4.1源码SparkContext的broadcast方法注释可以用SparkContext将一个变量广播到所有的executor上,使得所有executor都能获取这个变量代表的数据。SparkContext对于broadcast方法的注释为:/** * Broadcast a... 阅读全文
posted @ 2015-08-16 11:33 devos 阅读(2038) 评论(0) 推荐(0) 编辑