2013-07-23 31 views
0

我在提交工作時錯誤地使用了「hadoop -jar」而不是「hadoop jar」。爲什麼「hadoop -jar」命令僅啓動本地工作?

在這種情況下,我的jar包不能提交給集羣,只有「本地工作亞軍」將啓動,這讓我很困惑。

任何人都知道的原因?或者「hadoop jar」和「hadoop -jar」命令的區別?

謝謝!

回答

2

/usr/bin/hadoop jar是您的Hadoop的$HADOOP_HOME/bin/hadoop腳本需要的參數,其中$ HADOOP_HOME是您保存hadoop相關文件的地方。

摘自的Hadoop腳本

elif [ "$COMMAND" = "jar" ] ; then 
    CLASS=org.apache.hadoop.util.RunJar 
    HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS" 

,並

elif [[ "$COMMAND" = -* ]] ; then 
    # class and package names cannot begin with a - 
    echo "Error: No command named \`$COMMAND' was found. Perhaps you meant \`hadoop ${COMMAND#-}'" 
    exit 1 

這裏COMMAND = 「罐子」,當COMMAND = - *或罐子應該拋出一個異常,如上面的編碼。我不知道你甚至可以運行一個本地jar。

+0

謝謝你的回覆。我發現我的'hadoop'腳本與上面給出的不同,但沒有像'「$ COMMAND」= - *'這樣的條件。 – thomaslee

+0

你使用哪種Hadoop的發行版本?可能那時我可以幫忙。 –

相關問題