測試比較 Hive, impala 和 shark/spark 的性能,可以從哪些具體方面入手?
01-16
準備搭個集群做測試,分析比較這三者的性能,請問可以從哪幾個方面入手評測,能否提供一點思路?謝謝!
實在抱歉!
這塊的技術和產品 不熟悉,沒有實戰和認真學習~~望理解首先,你需要一個好的Benchmark
1 簡約但是不簡單的SQL 大數據Benchmark推薦intel-hadoop/HiBench · GitHub 裡面hivebench支持SQL性能測試,包含了基本但是最主要的filter,group,join這些SQL特性。2 TPC-H 這個真的不用說,全球data warehouse性能測試的基準。3 TPC-DS 這個是TPC委員會專門設計用來做大數據SQL基準測試的,壞消息是,推出以來,備受冷落,因為官方的版本根本就沒法在Hive上順利執行;好消息是,Intel有團隊經過一番努力,目前已經成功運行在Hive和Shark上,可望開源。其次,使用預設方式部署,不做tuning,這些大數據SQL引擎根本發揮不出功力。
那麼如何做性能優化? 好吧,這個話題太大了,改天聊。今天剛看到的一個測試報告,比較的是hive、impala的分組匯總性能,iteye的一個blog,Google一下就有。
Shark項目已經終止了,目前Spark SQL可以在Spark上做SQL分析,兼容Hive SQL,性能還是不錯的。上面的那個amplab的測試結果有些片面,這裡有一些測試結果:SQL-on-Hadoop結構化大數據分析系統性能評測
在tpc-ds上測試的。不過這個測試也不是很深入,只是表面的性能測試。
首先,benchmark的目標是比較功能上可以互相替換的解決方案的優劣。例如相同體系結構下,不同品牌和型號的CPU。題主列舉的幾個工具很大程度上不具備這個條件。
如果只是比較minimum set of SQL query,這應該和普通的性能測試步驟類似:- 選定一組與實際生產環境類似的數據和查詢集合,以便儘可能地反映真實情況。如果只是預研,也可以考慮類似TPC-H的標準化測試用例。
- 在相同硬體環境下,對所有工具做配置性能調優。
- 在1的基礎上,執行查詢並記錄性能數據(包括但不限於執行時間、資源使用情況等)。
- 按照各種查詢的加權,分析最終結果。
從目前看到的資料來看,Hive支持massive data batch processing, Impala支持big data interactive query with limited functionality,spark支持iterative processing。三者在不同數據量級和應用特性各有優缺點。當然僅比較SQL query也是有意義的。如果可能的話也希望題主能公開測試結果。
這種測試最好是針對應用進行,即到底是批處理、adhoc查詢、OLAP分析等等
https://amplab.cs.berkeley.edu/benchmark/
這兒有公正的評測
Hive vs Impala:http://hortonworks.com/blog/impala-vs-hive-performance-benchmark/學習《Impala vs. Hive Performance Benchmark》
性能測試關鍵是要建立好標杆,另外一次測這麼多是不是有點太多了,有必要做這麼誇張的事情么?
建議還是外部信息分析選定一個優選,然後通過性能測試驗證它可以滿足你的要求。
如果無法搭建和未來生產環境一樣「巨大」的測試環境,可以通過對比往集群增加機器的時性能增加的曲線來預估。
要測試到一個軟體的極限性能是很困難的,要同時測試3個就更加高難度了,如果只是想對比一下的話就比較簡單,只要最後分析清楚每個產品最終性能的瓶頸是什麼資源就可以了跑一個benchmark基準測試吧,hive,impala,spark都支持的,最標準的測試了,而且很簡單。
查詢速度impala&>spark sql &>hive
學習學習,benchmark基準測試還沒能看懂,,
推薦閱讀:
※數據分析師是程序員嗎?
※近期的約網車服務通過隱藏號碼來保護隱私,這在技術上是如何實現的?對其他服務行業有怎樣的啟示?
※單台伺服器中如何存放幾千萬張圖片?
※1萬億條數據怎麼存儲和查詢?
※如何把 Web 頁面上抓取下來的海量文本信息從非結構化信息變成結構化信息?