我想调试我的映射器的某些部分,为此我需要将一些命令行参数传递给启动映射器的 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 作业的更多信息,请参阅 here .
关于hadoop - 将命令行参数传递给 jvm(java) 映射器任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15286333/