0

hadoop1.0.4をインストールしました。以下を追加して、/ usr / bin/hadoopファイルを変更しました。

HADOOP_DEBUG = "-agentlib:jdwp = Transportation = dt_socket、server = y、suspend = y、address = 5000"

elif ["$ COMMAND" = "jar"]; それから

CLASS = org.apache.hadoop.util.RunJar

HADOOP_OPTS = "$ HADOOP_OPTS $ HADOOP_CLIENT_OPTS"

elif ["$ COMMAND" = "jar-debug"]; それから

CLASS = org.apache.hadoop.util.RunJar

HADOOP_OPTS = "$ HADOOP_OPTS $ HADOOP_CLIENT_OPTS $ HADOOP_DEBUG"

COMMAND = "jar"

このようにして、「hadoop jar SomeJar.jar SomeClass」を実行して正常に起動するか、「hadoopjar-debugSomeJar.jarSomeClass」を実行してデバッグモードで起動することができます。これは、コマンドライン引数をクラスに渡したい場合(WordCountの例など)を除いて、機能します。例:実行中:

"hadoop jar-debug WordCount.jar WordCount InputDir OutputDir"

メインクラスの最初の行にブレークポイントがあると、String [] argsが空の文字列であることがわかります(これにより、プログラムは後で失敗します)。通常のjarコマンドを使用して実行すると、正常に機能します(したがって、コマンドライン引数は通常のjarを使用して正常に渡されます)。

誰かがここで何が起こっているのか考えていますか?私は真剣に立ち往生しています。前もって感謝します。

4

1 に答える 1

0

この問題が発生する将来の人のために更新します。

間違ったIPアドレスをリッスンしてJavaリモートデバッガーを起動した場合(つまり、ローカルホストではなくリモートネームノードをリッスンしている場合)、JRDは起動しますが、コマンドラインパラメーターは渡されません。

于 2013-02-08T01:47:55.983 に答える