マッパーを起動するjvm(java)プロセスにコマンドライン引数を渡す必要があるマッパーの一部をデバッグしたいと思います。これを行うためのさまざまな方法は何ですか?
MapTaskRunner.javaを変更する1つの方法を見つけましたが、hadoopパッケージ全体をコンパイルすることは避けたいと思います。構成ファイルを使用して、追加のコマンドライン引数をjvmマッパープロセスに渡す簡単な方法があるはずです。
mapred-config.xmlで次の構成を探していると思います。
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx4096m -XX:+UseConcMarkSweepGC</value>
</property>
値の部分では、を使用して引数を設定できます-D
。
HADOOP_OPTS
または、ターミナルで次のように設定することもできます。
export HADOOP_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5000"
ローカルデバッグのHadoopジョブの詳細については、こちらを参照してください。