2016-03-08 85 views
3

「減速器不同於減少任務,減速器可以運行多個減少任務」。有人可以用下面的例子來解釋嗎?減少任務和減速器之間的區別

foo.txt的:甜,這是foo文件 跳回到bar.txt:這是條文件

,我使用2個減速。什麼是減少任務,並基於減速器中生成多個減少任務的情況?

回答

3

減速器是一個類,其中包含減少功能如下

protected void reduce(KEYIN key, Iterable<VALUEIN> values, Context context 
         ) throws IOException, InterruptedException { 

減少任務是程序的節點,其被執行上運行減少功能減速機班。

你可以認爲Reduce任務減速

的一個實例看一看更多細節(有效載荷節)的Apache MapReduce教程頁面。

2

從我的理解中,Reducer是計算資源的一個插槽,可以用來完成減少任務。 Reducer可以被分配給一個任務,它執行完成/失敗,一旦任務達到最終狀態,它就可以處理另一個reduce任務,後期清理。

在紗線中,這些概念雖然有點不同。

2

減速器是你寫(或重複使用)來處理數據的到來。

reduce任務的代碼是在您的羣集中的節點上運行的代碼減速器的實際實例。這個任務有一個狀態機,可能會失敗。在發生故障的情況下,另一個減少任務即將啓動以重新啓動計算。這被稱爲減少任務嘗試。重新啓動計算的次數有限(「最大嘗試次數」)。

您可以配置n reducer(與reduce任務相同),這是在作業執行的任何時間點(預留推測性執行)可能發生的並行reduce任務的最大數量。

+0

引用重試機制的答案是有用的 –

+0

你的意思是說,每個reducer的目的是執行一個減少任務,如果它沒有失敗,對! 對於我接過例如,第一次降低任務將產生: 條1個 文件2 富1 是2 而第二個reduce任務會產生: 甜1 這2 請確認如果我是對的 – Arighna