eclipse 调试 mapreduce 程序
2013-05-03 22:36
190 查看
因为Map/Reduce程序会被打成一个jar并拷到TaskTracker机器上(单独的进程)并开一个Child进程来跑JVM的,配置加到bin/下的脚本都是针对hadoop本身的进程,正确的配置如下:
在conf/mapred-site.xml中添加以下配置项:
其中的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
如果配置中加入该远程调试配置会抛异常。
命令:
在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)顾需要将该配置注释掉。
相关文章推荐
- Eclipse下使用Hadoop单机模式调试MapReduce程序
- window上eclipse调试基于hadoop2.7.3的MapReduce程序
- Eclipse下使用Hadoop单机模式调试MapReduce程序
- Eclipse 中调试Mapreduce程序
- Linxu环境下使用Eclipse直接调试mapreduce程序(不用插件)
- eclipse远程调试mapreduce程序
- 如何在本地Windows环境中用Eclipse中调试MapReduce程序
- Eclipse 调试Mapreduce程序 (2)
- Eclipse 中调试Mapreduce程序
- windows(64位)本地(local)用eclipse调试mapreduce程序
- Eclipse调试Hadoop-MapReduce程序
- eclipse debug调试mapreduce程序
- Eclipse 调试Mapreduce程序 (2)
- Eclipse下使用Hadoop单机模式调试MapReduce程序
- Eclipse中断点调试j2me程序方法
- android中c/c++程序的调试(eclipse)
- 怎样在Eclipse中使用debug调试程序?
- [安卓][转]Android eclipse中程序调试
- 使用 Eclipse 调试 Java 程序的 10 个技巧
- Hadoop系列-使用Eclipse编译运行MapReduce程序 (三)