Spark + Kafka 集成——Kafka分区到RDD分区的映射

Spark + Kafka integration - mapping of Kafka partitions to RDD partitions

我有几个与 Spark Streaming 相关的基本问题

[请让我知道这些问题是否已在其他帖子中得到解答 - 我找不到]:

(i)在Spark Streaming中,一个RDD的partition数量默认等于worker数量吗?

(ii) 在Direct Approach for Spark-Kafka 集成中,创建的RDD 分区数等于Kafka 分区数。 假设每个 RDD 分区 i 将在 DStream 的每个批次中映射到同一个工作节点 j 是否正确?即,分区到工作节点的映射是否仅基于分区的索引?比如partition 2可以一批分配给worker 1,另一批分配给worker 3吗?

提前致谢

i) 默认并行度是内核数(对于 mesos 是 8 个),但分区数取决于输入流实现

ii) 不,分区索引到工作节点的映射是不确定的。如果您 运行ning kafka 与您的 spark 执行程序在相同的节点上,则 运行 任务的首选位置将在该分区的 kafka 领导节点上。但即便如此,任务也可能被安排在另一个节点上。