2016-11-27 56 views
1

第一個問題:我想知道拆分是否以任何方式更改塊(即更改大小,將塊移到其他位置,創建新塊,...)。像Haddop中的FileSplit這樣的分割是否會改變塊?

第二個問題:我認爲拆分不會改變塊,但它指定每個MapTask應該是存在於數據或機架的意識,因爲的DataNodes已經在運行的局部性的集羣上運行,並且具有塊所以我認爲的分裂將告訴Hadoop在包含數據的節點旁邊運行MapTask。注意:在InputSplit中有我認爲用於此目的的位置/主機。 請糾正我,如果我錯了

三問題:開始之前,實際執行的任務,將塊移動到該MapTask是或MapTask將移至塊在哪裏(即數據管理部的位置)?

回答

0

爲了您的第一和第二問題:

塊不會分裂改變。爲了製備輸入分流,從數據管理部塊中的一些數據可以被複制到其他數據管理部,在其上得到執行地圖任務(如果數據是多個數據塊之間的重疊)

第三問題:最初之前實際執行任務,塊會移動到MapTask所在的位置還是MapTask將移動到塊所在的位置(即DataNode的位置)?

如果MapTask從數據管理部A /塊A和數據管理部A /塊的數據的某一部分中獲取數據跨越到數據管理部B /塊B,然後從塊B的數據將被複制到映射器(DataNode-A)。

請參考下面的問題更好地理解輸入的分裂&數據塊:

How does Hadoop perform input splits?

+0

偉大的答案,謝謝。 –

相關問題