Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2137844
  • 博文数量: 103
  • 博客积分: 206
  • 博客等级: 入伍新兵
  • 技术积分: 1819
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-12 10:24
个人简介

效字当先,以质为本。

文章分类
文章存档

2019年(2)

2018年(4)

2017年(7)

2016年(3)

2015年(14)

2014年(33)

2013年(31)

2012年(9)

分类: HADOOP

2014-10-22 18:35:06

自己用python写了个mapreduce程序,结果运行时候一直报错;
运行命令:

点击(此处)折叠或打开

  1. hadoop jar /usr/lib/hadoop-0.20/contrib/streaming/hadoop-streaming-0.20.2-cdh3u6.jar -mapper /Application/lianshuchengjin/MR/map.py -reducer /Application/lianshuchengjin/MR/reduce.py -input /fc/src/test/* -output /fc/src/result
第一次报错为:
ava.lang.RuntimeException: Error in configuring object        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93)        at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64)        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:386)        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:324)        at org.apache.hadoop.mapred.Child$4.run(Child.java:266)        at java.security.AccessController.doPrivileged(Native Method)        at javax.security.auth.Subject.doAs(Subject.java:396)        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1278)        at org.apache.hadoop.mapred.Child.main(Child.java:260)Caused by: java.lang.reflect.InvocationTargetException        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav

百度了很多没有解决,最后修改了Map.py和reduce.py程序权限,用户属性等,chown -R hadoop:hadoop map.py reduce.py 包括要执行的日志文件/fc/src/test/*的权限也修改为hadoop:hadoop ,运行程序,又报错:
Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 2
        at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:320)
        at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:533)
        at org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:130)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:61)
        at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:34)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:430)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:342)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1554)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
最终解决办法是运行命令的问题,改为下面的命令运行就对了;

点击(此处)折叠或打开

  1. hadoop jar /usr/lib/hadoop-0.20/contrib/streaming/hadoop-streaming-0.20.2-cdh3u6.jar -mapper "python map.py" -reducer "python reduce.py" -input /fc/src/test/*.gz -output /fc/src/result -file /Application/lianshuchengjin/MR/map.py -file /Application/lianshuchengjin/MR/reduce.py

阅读(9836) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~

dsy8510092015-02-07 10:28:09

wanshimozun:牛逼   果然解决了   但是没有搞明白为什么

我当时也很奇怪,在百度上搜的都是上面的命令,可运行失败,后来google了一把,全是英文看不懂,看懂部分片段感觉是这样,果然是要加引号才可以,我个人感觉是这些命令中的参数是有固定格式的,不然他会切割错误识别不了。

回复 | 举报

wanshimozun2015-01-29 21:03:28

牛逼   果然解决了   但是没有搞明白为什么

wanshimozun2015-01-29 21:03:24

牛逼   果然解决了   但是没有搞明白为什么