如何将Spark与Kafka并行化

时间:2018-09-03 16:12:29

标签: apache-spark

Kafka生产者无论如何都会返回Java Future(或者您可以使用回调),在我的Spark工作中,我想确保事物发送正确并且运行迅速。

使用:

rdd.foreach { msg =>
 kafkaProducer.send(msg).get() //wait for the future to complete
}

一点也不好。

我正在考虑使用

rdd.repartition(20).foreachPartition { iterator =>
 iterator.foreach { msg =>
 kafkaProducer.send(msg).get()
 }
}

我的问题是,foreachPartition是否可以并行运行?从我编写的一个简单测试中很难看出,因为foreachPartition的内容似乎是从同一线程运行的。但是我不知道这是否取决于我的测试设置...

0 个答案:

没有答案