我有几个与Spark Streaming相关的基本问题
[请告诉我这些问题是否已在其他帖子中得到解答 - 我无法找到]:
(i)在Spark Streaming中,默认情况下RDD中的分区数是否等于工作人员数?
(ii)在用于Spark-Kafka集成的Direct Approach中,创建的RDD分区数等于Kafka分区的数量。
假设每个RDD分区i
将映射到j
的每批中的同一个工作节点DStream
,这是正确的吗?即,是否仅基于分区的索引将分区映射到工作节点?例如,可以将分区2分配给一个批处理中的worker 1,将另一个分区2分配给worker 3吗?
提前致谢
答案 0 :(得分:6)
i)默认并行性是核心数(或8对于mesos),但分区数量取决于输入流实现
ii)不,分区索引到工作节点的映射不是确定性的。如果您在与spark执行程序相同的节点上运行kafka,则运行任务的首选位置将位于该分区的kafka leader的节点上。但即使这样,也可以在另一个节点上安排任务。