1. 程式人生 > >spark streaming基礎知識1

spark streaming基礎知識1

ati 發送 數據 沒有 手動 rdd drive 入隊 定期

1.怎麽理解spark streaming中的dstream?

它是spark streaming的基礎數據結構,代表著(time,RDD)序列,有兩種生成方式,一種是
基於流數據創建(kafka,socket...),一種是基於已有的dstream進行轉換產生.
在spark streaming作業運行的時候,Dstream會根據它的duration,定期生成RDD.
而且會進一步根據rdd生成作業,排入隊列,調度器觸發執行.

由此可以理解,為什麽說spark streaming是微批處理的.它提前生成好一批一批的作業,

調度執行.並不是真正的實時的流.

2.kafkaUitls.createstream和createDirectStream有什麽不同?

directStream:返回的Rdd的partition的數量與topic/partitions的數量一致,不需要寫代碼來控制並發取數據的邏輯.
directStream返回的key,value就是原始的發送到kafka中的key,value,key就是消息本身的key,value就是消息.
Directstream直接派生自inputStream,而kafkastream派生自receiverinputstream,同上面的理解,

directstream是運行在driver端的,而且支持後壓的特性.
而createstream是運行在worker端的.

directstream沒有更新zookeeper上的offset,需要自己手動更新.

spark streaming基礎知識1