Kafka NetworkClient 原理

Kafka NetworkClient 原理 Kafka的所有消息,都是通过NetworkClient发送消息。无论是Kafka的生产者,还是Kakfa的消费者,都会包含NetworkClient,才能将请求发送出去。 客户使用Networ……

Kafka 协议格式

Kafka 协议格式 Kafka通常作为一个集群存在,集群内部会有着很多的通信,包括客户端与服务端的通信,服务端内部的通信。这些通信都有着固定的协议格式,通过了解这些协议格式,可以使我们对Kafka的原理有着更好……

Spark Rpc 服务端原理

Spark Rpc 服务端原理 Spark Rpc 服务端涉及到多个组件,根据发送消息和接收消息的流程,逐一介绍这些组件。可以参见流程图 {% post_link spark-rpc-flow %} Rpc Server 启动 Spark Rpc的服务端需要运行在NettyRpcEnv环境下,NettyRpcEnv提供……

Spark Streaming Kafka 原理

Spark Streaming Kafka 原理 Kafka作为一个消息队列,具有很高的吞吐量,和Spark Streaming结合起来,可以实现高速实时的流处理。Spark Streaming在以前的版本支持两种方式读取Kafka,一种是通过……

Spark Streaming 运行原理

Spark Streaming 的运行原理 先来看看spark streaming的一个例子,引用自官网 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import org.apache.spark._ import org.apache.spark.streaming._ import org.apache.spark.streaming.StreamingContext._ // not necessary since Spark 1.3 // Create a local StreamingContext with two working thread and batch interval of 1 second. // The master requires 2 cores to prevent from a starvation scenario. val conf = new……

Spark Streaming WAL 原理

Spark Streaming WAL 原理 WAL表示预写日志,经常在数据库中会使用到,在宕机后也能根据WAL恢复数据。Spark Streaming为了提高服务的容错性,也引入了WAL。它会将WAL存到可靠的文件系统 hdfs 里。Spark Streaming……

Spark Streaming 数据源读取

Spark Streaming 数据源读取 Spark Streaming 支持多种数据源,数据源的读取涉及到多个组件,流程如下图所示 数据源的读取都是由Receiver负责。Receiver会启动后台线程,持续的拉取数据,发送给ReceiverSupervi……

Spark SortShuffleWriter 原理

Spark SortShuffleWriter 原理 前言 在数据量大的情况,需要聚合或者排序的情形下,Spark 采用SortShuffleWriter完成 map 端的 shuffle 操作。SortShuffleWriter 根据是否需要聚合操作,分为两种不同的实现。 对……

Spark Shuffle 聚合原理

Spark 聚合原理 spark在触发shuffle的时候,在一些场景下会涉及到聚合操作。聚合操作起到了一个优化整体计算效率的作用。 聚合算法简介 Aggregator类表示Spark的聚合算法。 聚合只能用于数据源是……

Spark UnsafeShuffleWriter 原理

前言 当分区的数目超过了一定大小,不满足 BypassMergeSortShuffleWriter 时候,Spark 会采用 UnsafeShuffleWriter 算法。同样 UnsafeShuffleWriter 也只适用于不需要聚合操作,也不需要排序的场景。 首先将数据序列化,保存在MemoryBlock中 计算数据的分区位置 记录数据的分……