使用SparkStreaming集成kafka时有几个比较重要的参数:
(1)spark.streaming.stopGracefullyOnShutdown (true / false)默认fasle
确保在kill任务时,能够处理完最后一批数据,再关闭程序,不会发生强制kill导致数据处理中断,没处理完的数据丢失
(2)spark.streaming.backpressure.enabled (true / false) 默认false
开启后spark自动根据系统负载选择最优消费速率
(3)spark.streaming.backpressure.initialRate (整数) 默认直接读取所有
在(2)开启的情况下,限制第一次批处理应该消费的数据,因为程序冷启动 队列里面有大量积压,防止第一次全部读取,造成系统阻塞
(4)spark.streaming.kafka.maxRatePerPartition (整数) 默认直接读取所有
限制每秒每个消费线程读取每个kafka分区最大的数据量
注意:
只有(4)激活的时候,每次消费的最大数据量,就是设置的数据量,如果不足这个数,就有多少读多少,如果超过这个数字,就读取这个数字的设置的值
只有(2)和(4)激活的时候,每次消费读取的数量最大会等于(4)设置的值,最小是spark根据系统负载自动推断的值,消费的数据量会在这两个范围之内变化根据系统情况,但第一次启动会有多少读多少数据。此后按(2)和(4)设置规则运行
(2)和(3)和(4)同时激活的时候,跟上一个消费情况基本一样,但第一次消费会得到限制,因为我们设置第一次消费的频率了。
相关文章
- 云小课|MRS数据分析-通过Spark Streaming作业消费Kafka数据
- 160728、Spark Streaming kafka 实现数据零丢失的几种方式
- java spark-streaming接收TCP/Kafka数据
- Spark streaming + Kafka 流式数据处理,结果存储至MongoDB、Solr、Neo4j(自用)
- spark streaming从kafka获取数据,计算处理后存储到redis
- Spark Streaming 读取Kafka数据写入ES
- Spark Streaming的接收KAFKA的数据
- spark streaming - kafka updateStateByKey 统计用户消费金额
- Spark之 Spark Streaming整合kafka(并演示reduceByKeyAndWindow、updateStateByKey算子使用)
- scala spark-streaming整合kafka (spark 2.3 kafka 0.10)