黑猴子的家 Hive 資料傾斜優化之 Map數量

2021-08-30 08:48:35 字數 431 閱讀 2210

1、通常情況下,作業會通過input的目錄產生乙個或者多個map任務。

主要的決定因素有:input的檔案總個數,input的檔案大小,集群設定的檔案塊大小。

2、是不是map數越多越好?

答案是否定的。如果乙個任務有很多小檔案(遠遠小於塊大小128m),則每個小檔案也會被當做乙個塊,用乙個map任務來完成,而乙個map任務啟動和初始化的時間遠遠大於邏輯處理的時間,就會造成很大的資源浪費。而且,同時可執行的map數是受限的。

3、是不是保證每個map處理接近128m的檔案塊,就高枕無憂了?

答案也是不一定。比如有乙個127m的檔案,正常會用乙個map去完成,但這個檔案只有乙個或者兩個小字段,卻有幾千萬的記錄,如果map處理的邏輯比較複雜,用乙個map任務去做,肯定也比較耗時。

針對上面的問題2和3,我們需要採取兩種方式來解決:即減少map數和增加map數

黑猴子的家 Hive 資料匯出

1 insert匯出 1 將查詢的結果匯出到本地 hive default insert overwrite local directory opt module datas export student select from student 2 將查詢的結果格式化匯出到本地 hive defau...

黑猴子的家 Hive 表的優化之 行列過濾

列處理 在select中,只拿需要的列,如果有,盡量使用分割槽過濾,少用select 行處理 在分割槽剪裁中,當使用外關聯時,如果將副表的過濾條件寫在where後面,那麼就會先全表關聯,之後再過濾。1 測試先關聯兩張表,再用where條件過濾 hive default select o.id fro...

黑猴子的家 Hive 其它命令操作

1 退出hive視窗 hive default exit hive default quit 2 在hive cli命令視窗中如何檢視hdfs檔案系統 hive default dfs lsr 3 在hive cli命令視窗中如何檢視hdfs本地系統 hive default ls opt modu...