2014-11-01 59 views
1

當我去通過Hadoop的MapReduce的教程,at one point它已經提到以下,MapReduce的字計數例提供了兩個映射器V2.5.1

對於給定的樣品輸入第一地圖發射:<您好,1> <世界, 1> <再見,1> <世界1>

第二地圖發射:<您好,1> < Hadoop的,1> <再見,1> < Hadoop的,1>

我們如何確定第一個輸入文件將由一個映射器處理,第二個輸入文件將由另一個映射器處理?或者這只是一個假設?

回答

2

簡短回答:
一個映射器無法處理多個文件。所以,對於兩個文件我們至少需要兩個映射器。

更長(但仍簡化)回答:
一個映射器只處理一個輸入拆分。一個文件創建至少一個輸入分割。因此,兩個文件創建至少兩個輸入分割,因此由兩個映射器處理。

如果文件大於塊的大小,則可以將文件分割爲更多的分割。塊的默認大小是(在當前版本中)128MB(在以前的版本中是64MB)。如果一個文件大於128MB,那麼它會產生多個輸入分割。所以,即使是同一個文件也可以由兩個或多個映射器來處理。這由InputFormat確定(也請參閱this post)。

Detailed answer

+0

非常感謝你對你明確的解釋。 – 2014-11-01 12:10:10

+0

我很高興它有幫助。 – vefthym 2014-11-01 12:25:53