我想调试我的映射器的某些部分,我需要将一些命令行参数传递给启动映射器的 jvm(java) 进程。有哪些不同的方法可以做到这一点?
我想出了一种更改 MapTaskRunner.java 的方法,但我想避免编译整个 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 作业的更多信息,请参见此处。