SparkStreamingj集成Kafka的幾個重要參數

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),在後臺留言諮詢。 技術債不能欠,健康債更不能欠, 求道之路,與君同行。

輸入圖片說明

相關文章
相關標籤/搜索