设置sparkstreaming每个batch处理消息数量

来源:互联网 发布:格子 玻尔兹曼 软件 编辑:程序博客网 时间:2024/06/05 07:52

场景:kafka中积累了大量未处理的数据,启动sparkstreaming处理数据时,可以指定起始处理的offset位置,

但是untiloffset默认是所有数据的最大offset(会调用OffsetRequestkafka服务器请求)。

 

 

在数据量巨大的情况下,可能会带来内存方面的问题。同时首个batch的处理时间会非常的长,万一期间再次出现问题,又需要重头开始处理。所以理想的情况下是指定每个batch处理的数据数量。

 

设置方法是修改spark.streaming.kafka.maxRatePerPartition的值secsPerBatch

这样每个batch处理的数量就为 batchDuration * secsPerBatch

 

batchDurationJavaStreamingContext中指定的1s

JavaStreamingContextjssc = new JavaStreamingContext(sparkConf, Durations.seconds(1));

0 0