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

时间:2015-09-30 18:37:22

标签: scala apache-spark apache-kafka spark-streaming apache-spark-1.4

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

[请告诉我这些问题是否已在其他帖子中得到解答 - 我无法找到]:

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

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

提前致谢

1 个答案:

答案 0 :(得分:6)

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

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