将命令行参数传递给jvm(java)映射器任务

时间:2013-03-08 03:44:39

标签: hadoop mapreduce

我想调试mapper的某些部分,我需要将一些命令行参数传递给启动映射器的jvm(java)进程。有什么不同的方法呢?

我想出了一种改变MapTaskRunner.java的方法,但我想避免编译整个hadoop包。使用配置文件将一些简单的方法传递给jvm映射器进程。

1 个答案:

答案 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