sparkstreaming集成kafka时的maven的pom依赖:apache
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming-kafka-0-8_2.11</artifactId> <version>0.8.2.1/version> </dependency>
使用SparkStreaming集成kafka时有几个比较重要的参数:微信
(1)spark.streaming.stopGracefullyOnShutdown (true / false)默认faslemaven
确保在kill任务时,可以处理完最后一批数据,再关闭程序,不会发生强制kill致使数据处理中断,没处理完的数据丢失大数据
(2)spark.streaming.backpressure.enabled (true / false) 默认falsespa
开启后spark自动根据系统负载选择最优消费速率线程
(3)spark.streaming.backpressure.initialRate (整数) 默认直接读取全部code
在(2)开启的状况下,限制第一次批处理应该消费的数据,由于程序冷启动 队列里面有大量积压,防止第一次所有读取,形成系统阻塞队列
(4)spark.streaming.kafka.maxRatePerPartition (整数) 默认直接读取全部图片
限制每秒每一个消费线程读取每一个kafka分区最大的数据量get
注意:
只有(4)激活的时候,每次消费的最大数据量,就是设置的数据量,若是不足这个数,就有多少读多少,若是超过这个数字,就读取这个数字的设置的值
只有(2)+(4)激活的时候,每次消费读取的数量最大会等于(4)设置的值,最小是spark根据系统负载自动推断的值,消费的数据量会在这两个范围以内变化根据系统状况,但第一次启动会有多少读多少数据。此后按(2)+(4)设置规则运行
(2)+(3)+(4)同时激活的时候,跟上一个消费状况基本同样,但第一次消费会获得限制,由于咱们设置第一次消费的频率了。
除此以外,还应该考虑程序容错性,这个跟checkpoint有关系散仙在前面的文章已经描述过具体请参考:http://qindongliang.iteye.com/
有什么问题能够扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。 技术债不能欠,健康债更不能欠, 求道之路,与君同行。