我想调试mapper的某些部分,我需要将一些命令行参数传递给启动映射器的jvm(java)进程。有什么不同的方法呢?
我想出了一种改变MapTaskRunner.java的方法,但我想避免编译整个hadoop包。使用配置文件将一些简单的方法传递给jvm映射器进程。
答案 0 :(得分:4)
我猜你在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作业的更多信息,请参阅here。