2016-11-12 125 views
3

什麼是通過Spark Streaming處理數據的長期存儲(很多寫入,很少讀取)的更好選擇:Parquet,HBase或Cassandra?或者是其他東西?什麼是取捨?存儲傳入流數據的最佳方式是什麼?

+0

我會建議都因爲它具有數據庫功能和中alll數據庫它擁有最快寫入卡桑德拉。 –

+0

請檢查我的答案。希望這會有所幫助! –

回答

1

以我的經驗,我們已經使用HBase的數據存儲作爲火花流數據(我們也有相同的情況下許多寫入和讀取數),因爲我們正在使用Hadoop,HBase的與Hadoop本地集成和效果還不錯..

  • 上面我們已經tostore消息的高點擊率從安慰過來使用。

  • HBase非常適合做基於範圍的掃描。 Casandra以可用性和許多其他事物而聞名...

  • 但是,我也可以在許多項目中觀察到一個大趨勢,他們只是通過火花流與火花將rawdata存儲在分區結構中的hdfs(parquet + avro)中與火花數據幀(SaveMode.Append)並且它們被處理RAWDATA

分區結構的例中HDFS: completion ofbusinessdate/environment/businesssubtype/message type等.... 在這種情況下沒有必要爲要HBase的或任何其它數據存儲

但上述方法中的一個常見問題是當您通過流式傳輸時,您需要repartion(1)或coleleseFileUtils.copymerge以滿足對單個分區文件的塊大小要求。除此之外,還可以。

這裏有一些東西叫做CAP規範根據哪個決定可以採取。 enter image description here

  1. 一致性(所有節點看到在同一時間相同的數據)。

  2. 可用性(每個請求收到關於它是否成功或失敗的響應)。

  3. 分區公差(系統繼續 儘管任意分割操作,由於網絡故障)

卡桑德拉支持AP。

Hbase支持CP。

請看詳細分析,給出here

+0

我的回答有用嗎?請隨時提問。謝謝! –

相關問題