Spark + Kafka集成 - 将Kafka分区映射到RDD分区

jit*_*npt 5 scala apache-kafka apache-spark spark-streaming apache-spark-1.4

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

[如果这些问题已在其他帖子中得到解答,请告诉我 - 我找不到任何问题]:

(i)在Spark Streaming中,默认情况下RDD中的分区数是否等于工作者数?

(ii)在Spark-Kafka集成的直接方法中,创建的RDD分区数等于Kafka分区的数量.假设每个RDD分区i都映射到j每个批处理中的同一个工作节点是否正确DStream?即,是否仅基于分区的索引将分区映射到工作节点?例如,可以将分区2分配给一个批次中的worker 1,将另一个分区分配给worker 3吗?

提前致谢

Cod*_*ger 6

i)默认并行性是核心数(或8为mesos),但分区数量取决于输入流实现

ii)否,分区索引到工作节点的映射不是确定性的.如果您在与spark执行程序相同的节点上运行kafka,则运行任务的首选位置将位于该分区的kafka leader的节点上.但即使这样,也可以在另一个节点上安排任务.