2013-03-08 272 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

相關問題