spark streaming消費kafka maven依賴選擇

當我們的spark streaming程序需要消費kafka數據,我們需要根據自己的spark版本和kafka broker版本選擇合適的maven依賴

  spark-streaming-kafka-0-8 spark-streaming-kafka-0-10
支持的kafka版本 0.8+ 0.10+
依賴包使用的spark版本 2.0-及2.0+ 2.0+
消費方式 直連及基於消費者 直連
偏移存儲方式 直連自己處理,基於消費者存zk 存kafka topic裏
兼容性 與0.8+的kafka都兼容 與0.10-的kafka版本不兼容

注意:0.8+表示0.8版本及0.8以上的版本,-同理

首先,我們來看kafka的版本

如果kafka是在apache下的kafka,比如kafka_2.11-2.0.0,2.11表示scala版本,2.00表示kafka的版本

如果是cdh下載parcel包裝的kafka,可參照如下表格

比如3.0.0-1.3.0.0.p0.40,則對應的kafka版本是0.11.0,3.1.1-1.3.1.1.p0.2對應的kafka版本是1.01,

也可到kafka下看jar包的版本便可知kafka版本

接下來我們看spark的版本,如果使用cdh默認的spark,則spark版本默認1.6,如果升級過,則爲升級後的版本,

2.0,2.1.....

該選擇maven依賴了,去maven倉庫搜索

可以看到有三種依賴,第一種和第二種是代碼是一樣的,區別是第一種支持spark早期版本,第二種支持spark1.6以後版本,這兩種kafka版本都爲0.8.21,故只討論第二種。

以下爲第一種的

先看0-8的

再看0-10的,kakfa版本爲0.10.1

version表示spark版本,scala表示scala版本,date列是日期

可根據自己的spark版本和kafka版本選擇適合自己的依賴,spark版本沒那麼強關聯,注意有的在低版本的開發者api,到高版本成了包私有的,比如KafkaCluster(在0-8爲開發者api,在spark-streaming-kakfa爲包私有),Logging(在1.6爲開發者api,1.6以後爲包私有)

這兩種推薦使用0-10,無需自己管理偏移,直接調api將偏移存到kafka的topic裏。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章