设置spark.streaming.kafka.maxRatePerPartition的原则
spark.streaming.kafka.maxRatePerPartition这个参数是控制吞吐量的,
一般和spark.streaming.backpressure.enabled=true一起使用。
那么应该怎么算这个值呢?
如例:若要10分钟的吞吐量控制在5000,0000,kafka分区是10个。
也就是说spark.streaming.kafka.maxRatePerPartition的值 * kafka分区数 * (10 *60)(每秒时间)
要差不多与50000000相当。
从未有公式:50000000/10/600s =8400
也就是我们该设置maxrRatePerPartition这个参数为8400,每秒拉取8400条数据。
spark.streaming.kafka.maxRatePerPartition控制spark streaming 对kafka中目标topic的每个分区每秒拉取的条数。
从上面的分析过程可以预见到,每个分区接收到的消息量<=batchDuration * spark.streaming.kafka.maxRatePerPartition.