我已經安裝了Apache Hadoop 2.x
以及5個異構節點,其中一個節點純粹專用於NameNode。用於異構Hadoop集羣的HDFS中的數據分佈和分佈
我正在使用下面的命令將我的輸入文件放入HDFS
。
$ hdfs dfs -put /home/hduser/myspace/data /user/hduser/inputfile
HDFS
複製在三個DataNodes (DN)
該輸入文件時,它意味着一個第四DataNode
不具有輸入塊。如果我使用8個映射器(通過使用NLineInputFormat()
方法設置分割大小),那麼將這8個映射器分配給所有4個DN。我認爲它應該是。在這種情況下,來自其他DN的數據塊將移至第4個DN,由分配給它的映射器計算,這會增加總體執行時間。
我的問題是:
我們能否以某種方式設法將數據塊上的每個DNS,這樣就沒有必要對一個特定的DN映射器移動數據。它可以通過hdfs的「放」命令來完成嗎?
同樣在異構集羣的情況下,我們可以根據節點的計算能力將不同大小的數據放在不同的DN上嗎?
讓我們有一個大小爲40 MB的輸入文件。當我們把它放到hdfs中時,它會變成3個DN(讓DN1,DN2,DN3),那麼如果我們使用4個映射器運行,在DN4上運行的映射器將如何得到輸入? –