Spark Streaming第一次运行不丢失数据
kafka参数 auto.offset.reset 参数设置为earliest 从最初始偏移量开始消费数据
Spark Streaming精准一次消费
- 手动维护偏移量
- 处理完业务数据后,再进行提交偏移量操作。在某些极端情况下会出现重复消费的问题。如果对精确性要求很高,可以使用事务来保证精准一次消费。
Spark Streaming 控制每秒消费数据的速度
通过spark.streaming.kafka.maxPerPartition 参数来设置 Spark Streaming 从kafka分区每秒拉取的条数
Spark Streaming 背压机制
spark.streaming.backpressure.enabled 参数设置为true,开启背压机制后Spark Streaming会根据延迟动态的去消费数据,上限由spark.streaming.kafka.maxPerPartition 参数控制,所以这两个参数一般会一起使用。
Spark Streaming 的一个stage耗时
Spark Streaming stage耗时由最慢的task决定,所以数据倾斜时某个task运行慢会导致整个Spark Streaming都运行很慢
Spark Streaming 优雅关闭
把spark.streaming.stopGracefullyOnShutdown 参数设置为true,Spark会在JVM关闭