eclipse 调试 mapreduce 程序

因为Map/Reduce程序会被打成一个jar并拷到TaskTracker机器上(单独的进程)并开一个Child进程来跑JVM的,配置加到bin/下的脚本都是针对hadoop本身的进程,正确的配置如下:

在conf/mapred-site.xml中添加以下配置项:

    <property>
        <name>mapred.child.java.opts</name>
        <value>-Xmx200m -Xdebug -Xrunjdwp:transport=dt_socket,address=7788,server=y,suspend=y</value>
        <!–<value>-Xmx200m</value>–>
    </property>

其中的mapred.child.java.opts会在启动Child进程时设为启动参数。suspend=y取y/n分别表示是否挂起进程等待debug连进来。当然,这个选项还可以方便加其它JVM参数。

eclipse插件其实是自己作为JobClient在运行,从eclipse中运行时会自己生成一个hadoop-site.xml文件(新版hadoop拆分为3个了,不过不影响执行),而且,在插件GUI设置界面,居然找不到mapred.child.java.opts等配置项,手工打开:workspace/.metadata\.plugins\org.apache.hadoop.eclipse,可以看到这里存放了插件帮我们打好的jar,在hadoop-conf-132297972833171678里可以找到执行的配置。打开目发locations里边的xml文件(hadoop-site.xml的模板文件),搜索mapred.child.java.opts并修改为前面设置的值。最好将hadoop插件中的mapred.child.java.opts参数值设置成上述值,具体可看图。(发现不设置不可以!!!。。。


首先右键,选择“Run on Hadoop”,运行过一次之后再

设置断点(右键 –> Debug As – > Java Application),即可(每次运行之前,都需要收到删除输出目录)。 这时候会出现让你选择source的窗口,具体如下图所示,选中workspace中的所调试的项目的源码即可。





该调试方法run wordcount成功。但run mahout 例子的时候为成功调试,待看。

运行mahout org.apache.mahout.cf.taste.hadoop.item.RecommenderJob  如果配置中加入该远程调试配置会抛异常。

命令:

mahout org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -i WikiPedia/input/testkmeans.txt -o WikiPedia/output -s SIMILARITY_COOCCURRENCE 

mahout org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -i WikiPedia/input/testkmeans.txt -o WikiPedia/output -s SIMILARITY_COOCCURRENCE 
Running on hadoop, using /home/liujie/hadoop/hadoop-0.20.204.0/bin/hadoop and HADOOP_CONF_DIR=
MAHOUT-JOB: /home/liujie/hadoop/mahout-distribution-0.7/mahout-examples-0.7-job.jar
13/05/09 16:34:55 WARN driver.MahoutDriver: No org.apache.mahout.cf.taste.hadoop.item.RecommenderJob.props found on classpath, will use command-line arguments only
13/05/09 16:34:56 INFO common.AbstractJob: Command line arguments: {--booleanData=[false], --endPhase=[2147483647], --input=[WikiPedia/input/testkmeans.txt], --maxPrefsPerUser=[10], --maxPrefsPerUserInItemSimilarity=[1000], --maxSimilaritiesPerItem=[100], --minPrefsPerUser=[1], --numRecommendations=[10], --output=[WikiPedia/output], --similarityClassname=[SIMILARITY_COOCCURRENCE], --startPhase=[0], --tempDir=[temp]}
13/05/09 16:34:56 INFO common.AbstractJob: Command line arguments: {--booleanData=[false], --endPhase=[2147483647], --input=[WikiPedia/input/testkmeans.txt], --maxPrefsPerUser=[1000], --minPrefsPerUser=[1], --output=[temp/preparePreferenceMatrix], --ratingShift=[0.0], --startPhase=[0], --tempDir=[temp]}
13/05/09 16:35:00 INFO input.FileInputFormat: Total input paths to process : 1
13/05/09 16:35:01 INFO mapred.JobClient: Running job: job_201305091402_0004
13/05/09 16:35:02 INFO mapred.JobClient:  map 0% reduce 0%
13/05/09 16:35:13 INFO mapred.JobClient: Task Id : attempt_201305091402_0004_m_000002_0, Status : FAILED
java.lang.Throwable: Child Error
	at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:271)
Caused by: java.io.IOException: Task process exit with nonzero status of 134.
	at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:258)

13/05/09 16:35:13 WARN mapred.JobClient: Error reading task outputhttp://vbox:50060/tasklog?plaintext=true&attemptid=attempt_201305091402_0004_m_000002_0&filter=stdout
13/05/09 16:35:13 WARN mapred.JobClient: Error reading task outputhttp://vbox:50060/tasklog?plaintext=true&attemptid=attempt_201305091402_0004_m_000002_0&filter=stderr
13/05/09 16:35:19 INFO mapred.JobClient: Task Id : attempt_201305091402_0004_m_000002_1, Status : FAILED
java.lang.Throwable: Child Error
	at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:271)
Caused by: java.io.IOException: Task process exit with nonzero status of 134.
	at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:258)
顾需要将该配置注释掉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值