2013-03-08 165 views
0

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

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

+0

我不明白你怎么能用另一个参数来实现调试,你可以举个例子。 – Alper 2013-03-08 07:46:29

+0

好吧,jprofiler要求我添加一些命令行参数,以便通过调试器进行调试。 – 0xhacker 2013-03-08 12:06:30

回答

3

我猜你正在寻找在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

相关问题