2013-09-23 73 views

回答

14

DISTRIBUTE BY控制地圖輸出是如何減速器之間分配。默認情況下,MapReduce的計算由映射器上的按鍵輸出的散列函數,並嘗試使用哈希值可用減速器之間均勻分佈的鍵值對。 假設我們希望將一列中每個值的數據一起捕獲。我們可以使用DISTRIBUTE BY來確保每個記錄到同一個reducer。 DISTRIBUTE BY作品在這個意義上,它控制減速器如何接收行處理類似GROUP BY,需要注意的是蜂巢需要分發BY子句來排序BY子句之前,如果它在相同的查詢。

+0

如果你不使用分發由,和你正在做的聚集。 MAP-REDUCE仍然可以確保按列排列的所有組都轉到同一個縮減器,那麼爲什麼要使用'Distribute by'呢? – zinking