摘要:
基于Kafka 0.9.0版ReplicaManager需要做什么Replicated LogsKafka的partition可以看成是一个replicated log, 每个replica就是这个replicated log其中的一个log。多个replica是为了容忍机器故障,因此同一个part... 阅读全文
摘要:
依据Spark 1.4版在哪里会用到它ExternalSorter是Spark的sort形式的shuffle实现的关键。SortShuffleWriter使用它,把RDD分区中的数据写入文件。 override def write(records: Iterator[Product2[K, V]]... 阅读全文
摘要:
依据Spark1.4版Spark中的shuffle大概是这么个过程:map端把map输出写成本地文件,reduce端去读取这些文件,然后执行reduce操作。那么,问题来了:reducer是怎么知道它的输入在哪呢?首先,mapper在写完文件之后,肯定能提供与它的输出相关的信息。这个信息,在Spar... 阅读全文
摘要:
Spark中的shuffle是在干嘛?Shuffle在Spark中即是把父RDD中的KV对按照Key重新分区,从而得到一个新的RDD。也就是说原本同属于父RDD同一个分区的数据需要进入到子RDD的不同的分区。但这只是shuffle的过程,却不是shuffle的原因。为何需要shuffle呢?Shuf... 阅读全文
摘要:
RDD, Resilient Distributed Dataset,弹性分布式数据集, 是Spark的核心概念。对于RDD的原理性的知识,可以参阅Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory C... 阅读全文
摘要:
依据Spark 1.4版序列化和反序列化前边提到,TorrentBroadcast的关键就在于特殊的序列化和反序列化设置。1.1版的TorrentBroadcast实现了自己的readObject和writeObject方法,但是1.4.1版的TorrentBroadcast没有实现自己的readO... 阅读全文
摘要:
依据Spark 1.4.1源码SparkContext的broadcast方法注释可以用SparkContext将一个变量广播到所有的executor上,使得所有executor都能获取这个变量代表的数据。SparkContext对于broadcast方法的注释为:/** * Broadcast a... 阅读全文
摘要:
Scala 禁止case class inheritancecase class Person(name: String, age: Int)case class FootballPlayer(name: String, age: Int, number: Int) extends Person(n... 阅读全文
摘要:
本想通过了解一下Akka-actor工程中主要的类的概念,来看下Akka内部运作的机制。无奈里边的类的确太多,注释中对每个类的功能也没有足够的解释。所以还是通过debug的方式,找个入手点,看一下互相之间调用的关系。最初的选择是看一下ActorSystem的实始化过程,但发现难度挺大,因为这个初始化... 阅读全文
摘要:
动机MotivationThe way we consume services from the internet today includes many instances of streaming data, both down- loading from a service as well a... 阅读全文