我有一个每秒生成60000条消息的应用程序。我向kafka发送消息,我想在其他应用程序中通过spark流接收这些消息,但spark接收的消息速率约为40000。我想增加spark每间隔接收的消息数,我该怎么做?
2hh7jdfx1#
尝试增加spark.streaming.kafka.maxrateperpartition。你可以试试这个公式(spark.streaming.kafka.maxrateperpartition)*(你的分区)=60000。但建议保持spark.streaming.kafka.maxrateperpartition稍高一点,以防传入消息出现峰值。
dldeef672#
在Kafka中,平行度是由主题的分区数决定的。您需要增加主题中的分区数。您需要设置运行spark流的执行器的数量,以尽可能匹配kafka中的分区数量。这将为您提供最佳性能。
2条答案
按热度按时间2hh7jdfx1#
尝试增加spark.streaming.kafka.maxrateperpartition。你可以试试这个公式(spark.streaming.kafka.maxrateperpartition)*(你的分区)=60000。但建议保持spark.streaming.kafka.maxrateperpartition稍高一点,以防传入消息出现峰值。
dldeef672#
在Kafka中,平行度是由主题的分区数决定的。
您需要增加主题中的分区数。
您需要设置运行spark流的执行器的数量,以尽可能匹配kafka中的分区数量。
这将为您提供最佳性能。