我發現了Pig和Hive之間的一些(顯着的)性能差異(在實時運行時以及CPU時間方面),並且正在尋找各種方法來解決這些差異。我已經使用了兩種語言的解釋功能(即Hive:EXPLAIN關鍵字,Pig:pig -e'explain -script explain.pig')來對比和比較生成的語法樹,邏輯,物理和映射減少計劃。然而,兩者似乎都做同樣的事情。然而,作業跟蹤器顯示了地圖數量和減少的任務發佈的差異(因此我確保兩者使用相同數量的地圖和減少任務,並且性能差異仍然存在)。因此,我的問題是:我可以用什麼其他方式分析正在發生的事情(可能處於較低級別/字節碼級別)?性能:Pig vs Hive
編輯:我正在運行由TPC TPC-H基準測試(可用https://issues.apache.org/jira/browse/PIG-2397和https://issues.apache.org/jira/browse/HIVE-600)。然而,即使更簡單的腳本也表現出相當大的性能差異。例如:
SELECT (dataset.age * dataset.gpa + 3) AS F1,
(dataset.age/dataset.gpa - 1.5) AS F2
FROM dataset
WHERE dataset.gpa > 0;
我仍然需要全面評估TPC-H基準測試(稍後會更新),但是對於比較簡單的腳本結果詳細此文檔中:https://www.dropbox.com/s/16u3kx852nu6waw/output.pdf
(JPG:http://i.imgur.com/1j1rCWS.jpg)
你可以顯示你用來測試的腳本和SQL嗎? – zsxwing
Hive中表格數據集的分區設置如何? – zsxwing
對不起,你的意思是?我不太明白(我對Hadoop相當陌生)/ Hive – JB2