2016-03-03 14 views
1

加入數據集時,您可以選擇告訴Pig,可能會像下面的語句那樣使鍵偏斜。豬將如何處理歪斜的加入?

... JOIN DATA1我的聯接鍵使用「傾斜」 ......

PIG將得到我的聯接鍵值的估計,看是否有比更高的頻率出現的一些值其他。這樣做有一些間接費用(10%左右,但取決於很多因素)。

該信息如何完全用於地圖/縮小作業?如果存在歪斜,那麼PIG會嘗試將分區鍵在減速器之間進行更平衡分配?

在這種情況下,PIG會在整個映射器任務中複製較小的數據集,還是隻使用更多的reducer?

回答

1

documentation

歪斜加入不將限制輸入 鍵的大小。它通過分割連接上的左輸入謂詞並流式傳輸正確的輸入來實現此目的。將左側輸入採樣到 創建直方圖。

當基礎數據充分時,可以使用偏斜連接 偏斜,並且您需要更好地控制縮減器的分配到 抵消偏斜。當關聯的數據 與給定的關鍵字太大而不適合內存時,也應該使用它。

豬產生一個映射器,它分析數據並觀察密鑰分配,根據該分配器進行還原鍵分配。

豬不會嘗試將較小的數據集複製到映射器(您的意思是replicated join)。連接的右側根據連接左側的歪斜流向縮減器分割。