在Azure HDInsight 3.6上使用Hive 1.2.1000.2執行INNER JOIN以獲得同時存在于Table_1和Table_2的記錄數。
表的詳情:
Table_1: 310M 記錄
<示例資料:
master_id modelkey order_id
---------------------------------------
mi0000bd1444 4874 d988e53cd
mi000097d5 44365 p0905gd44
mi0000d2ab09ea 309141
mi0001d6a 8705 7574
mi00011f7c085 4063 d165804b2
mi0001a57db 314 9c84ft879
Table_2: 35M條記錄
示例資料:order_id vendor_id
---------------------------------------
81d162f23 7122a0c
6988e53cd 517ba6e
5165804b2 5c5e161
47ba91ea3 7686b2d
f45cab9de 35be1af
下面是我到目前為止所嘗試的細節。
Hive查詢:
SELECT COUNT(*)
FROM db.table_1 t1
INNER JOIN db.table_2 t2 ON t1.order_id = t2.order_id。
蜂巢屬性:
SET hive.tez.container.size=10240;
SET tez.am.resource.memory.mb=10240;
SET tez.task.resource.memory.mb=10240;
設定hive.execution.engine=tez.com
SET hive.exec.compress.output=true;
SET hive.vectorized.execution.enabled = true;
SET hive.vectorized.execution.reduce.enabled = true;
SET hive.optimize.skewjoin=true;
SET hive.skewjoin.key=100000;
該查詢執行了>7個小時,卡在最后一個Reducer作業.e.上。
--------------------------------------------------------------------------------
頂點狀態 總數 已完成 運行中 待定 失敗 被殺
--------------------------------------------------------------------------------
地圖1 .......... 成功了 1 1 0 0 0 0
地圖4 .......... 成功 715 715 0 0 0 0 0
減速器2 ..... 運行 189 188 1 0 0 0
還原器3運行 1 0 1 0 0 0
--------------------------------------------------------------------------------
VERTICES: 02/04 [=========================>>-] 99% ELAPSED TIME: 25307.97 s
--------------------------------------------------------------------------------
是否有辦法克服最后一個Reducer的問題,并且,得到結果呢?
解釋為:
uj5u.com熱心網友回復:
執行了以下步驟,很有幫助!希望能幫助到其他人:
執行了以下步驟,很有幫助!希望能幫助到其他人:
洗掉沒有價值的記錄,即order_id=''。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/318975.html
標籤:
下一篇:Hadoop中的重新磁區
