火花流和卡夫卡,增加了从卡夫卡发出火花的消息数量

时间:2017-03-11 13:38:05

标签: apache-kafka spark-streaming

我有一个每秒产生60,000条消息的应用程序。 我向Kafka发送消息,我希望通过其他应用程序中的spark streaming接收这些消息, 但Spark收到的消息率约为40,000。我想增加Spark每个时间间隔收到的消息数量,我该怎么做?

2 个答案:

答案 0 :(得分:0)

在kafka中,并行度由主题的分区数决定。

您需要增加主题中的分区数。

您需要设置运行spark streaming的执行程序的数量,以尽可能地匹配kafka中的分区数。

这将为您提供最佳性能。

答案 1 :(得分:0)

尝试增加 spark.streaming.kafka.maxRatePerPartition 。 您可以尝试使用此公式(spark.streaming.kafka.maxRatePerPartition)*(您的分区)= 60000 。 但是建议您将spark.streaming.kafka.maxRatePerPartition保持更高一些,以防传入消息出现峰值。