2014-08-30 81 views
0

我有一個5節點Hadoop集羣,其中2個節點專用於數據節點並且還運行tasktracker。如何強制hadoop運行超過1個減少作業

我跑我的Hadoop的工作等

sudo -u hdfs hadoop jar /tmp/MyHadoopJob2.jar com.abhi.MyHadoopJob2 -D mapred.reduce.tasks=2 /sample/cite75_99.txt /output3 

工作運行成功,我可以看到正確的輸出...但現在當我去到門戶

http://jt1.abhi.com:50030

我可以見

enter image description here

所以只有1個減少工作正在運行。

有關運行多個精簡工作是我想確認是否Hadoop的仍將創建即使減少工作崗位的不同實例進行了不同的機器上運行的完全排序輸出文件,我很特別的原因嗎?

當前我的輸出文件已完全排序,但這是因爲只有1個reducer作業正在運行。

+1

你會得到兩個文件有兩個減速器,沒有之一。 – climbage 2014-08-30 05:25:01

+0

啊。所以這不會造成惡魔和深海問題。如果我們有1個reducer,如果輸入太大,它會崩潰。但如果我們有多個減速器,那麼我們不會得到單個輸出? – 2014-08-30 06:23:20

+1

對。多個輸出,因爲兩臺機器當前無法寫入相同的文件co。連接文件後,您仍然可以實現單個排序文件。 – climbage 2014-08-30 06:41:22

回答

1

輸出文件的數量一個可能的減速將基於減速您定作業的數量。但是,如果您的要求需要,您仍然可以將多個文件合併到一個文件中。

要合併下面的Hadoop shell命令使用

command> hadoop fs -getmerge <src> <localdst> 
src: hdfs output folder path 
localdst: local system path with filename(one file) 

希望這可以澄清你的疑問。

1

減速有2個職位: 1.減少映射的鍵,值對 2.兩個映射器輸出,因爲你只有2只數據節點2映射器可以同時運行結合起來,而這樣做

只允許在任何特定時刻

相關問題