2015-04-02 162 views
6

將SQL腳本作爲輸入接受轉換爲SQL的速度更快/更容易:Spark SQL作爲Hive高延遲查詢或Phoenix的速度層出現?如果是這樣,怎麼樣?我需要在數據上做很多upserts/joining/grouping。 [hbase]Apache Phoenix vs Hive-Spark

在Cassandra CQL之上是否有任何替代方案來支持上面提到的(以實時方式加入/分組)?

我很可能會被綁定到Spark,因爲我想利用MLlib。但處理數據應該是我的選擇?

感謝, kraster

回答

1

http://phoenix-hbase.blogspot.com/ 我更多的則確保鳳凰城的HBase的運行速度更快。

這裏是示例查詢和PC測試要求 查詢:從10M和100M行的表中選擇count(1)。數據是5個窄列。 (HBase堆:10GB,處理器:6核@ 3.3GHz Xeon) enter image description here 因爲Phoenix使用HBASE客戶端接口加載所有查詢,並且使用查詢引擎只爲map任務映射sql任務

+0

問題是關於Hive-Spark。這個圖表沒有提到Hive是否使用MR或Spark。這似乎是與Hive MR而不是Spark的比較 – sinu 2016-02-15 09:23:39

2

你有幾個選項(從我的知識)

  1. Apache的鳳凰是低延遲和中等規模的表(1M一個不錯的選擇 - 有許多列的表的100M行,但要小心! )處理。菲尼克斯的優點在於它非常容易上手。我的公司已經建立了一個HBase集羣(使用kerberos)。要使用Phoenix,我需要的只是HMaster URL,Hbase-site.xml和一個keytab,以使操作順利進行。非常快速的讀取和寫入是體面的(它對我來說比較慢,因爲我需要動態地做,所以我強制使用Java客戶端API而不是批量加載)

  2. Hive with Spark也很棒。我不確定菲尼克斯表現有多出色。由於Spark在內存中執行大部分操作,因此我認爲它應該很快。不過,我可以告訴你,如果你想將SQL訪問公開爲某種類型的API,使用spark會變得非常困難。

  3. 的Presto是一個偉大的產品,提供了與SQL接口星火般的處理能力,使您可以從許多來源(蜂巢,卡桑德拉,MySQL的..等)

希望這-CONNECT間數據幫助。