2017-04-22 58 views
0

我沒有看到一個值,在以下情況下Hadoop中的減速器:Hadoop中reducer的好處是什麼?

  • map任務生成唯一的密鑰(因爲我們可以合併這兩個地圖/起來,從而降低功能)
  • 輸出map任務的尺寸過大(這將耗盡內存,如果我們等待減速開始工作)

  • 如果我們不需要分組和按鍵的排序任何功能

如果我錯了,請糾正我。

如果有人能給我一個真正的減速器的好處的例子,當它應該使用,我會很感激。

+1

第三條陳述是中心。如果你不需要分組,你應該設置減數的數量爲0. – fi11er

+0

@ fi11er感謝前兩條語句 –

+0

這一切都取決於你的任務,你不能在mappers上進行聚合(或者可以,但是你會可能寫出你自己的減少)。 1)如果你有唯一的密鑰,你大多不需要分組你的數據,所以你不需要reducer。 2)它不取決於大小,如果你想聚合地圖輸出,你會添加減速器。 – fi11er

回答

0

減速是有益的(或需要)時,你需要做的操作,如聚合/分組等。

FYI:減速機是爲針對來自不同映射一個關鍵組不同的值。因此,對於不需要分組/聚合的用例,則沒有必要使用reducer(可以將其設置爲Zero,意味着僅Map-only作業)。

我能想到的一個快速使用案例是 - 您想隨機將大文件分割爲多個部分文件。在這種情況下,您將提供大文件(允許說100G)到僅限Map的作業。所有的地圖都會讀取一大塊文件並作爲文件的一部分進行寫入。

+0

謝謝。前兩條語句如:「地圖任務生成唯一鍵......地圖任務的輸出大小太大......」我也認爲這裏不應該使用縮放器。你提供了一個Map Only Jobs的例子,你能否提供一個「真實」的例子(我現在的例子不是概念),就像我在文章中提到的那樣。 –