• 综合主站
  • RHadoop实践系列之二:RHadoop安装与使用

[未知用户] 似乎默认的是mapreduce返回值不为0便是错的?

我没有研究过,这是什么情况!
[未知用户] 同样的问题,我也遇到了,参考这篇http://blog.163.com/zhengjiu_520/blog/static/3559830620130743644473/文章后,改了文件的限制,问题依旧在.
[未知用户] 我没有发现问题与你参考的文章163的文章,有什么关系。环境问题,最好先确认的JAVA的程序是不是可以成功。
wordcount能成功就ok吗?
看log也是有Cannot run program "Rscript"这样的错误,而我在R目录下能找到这个程序,也能从bash里面运行
[未知用户] Caused by: java.io.IOException: Cannot run program "Rscript": java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:470)
at org.apache.hadoop.streaming.PipeMapRed.configure(PipeMapRed.java:214)
... 23 more

我的错误提示也是这个。是需要设置Rscript什么的吗?我的R是自己下载代码编译的,安装目录在$HOME/R,R_LIBS是$HOME/R/lib
[未知用户] 如果JAVA能成功运行wordcount,hadoop环境就没有什么问题。

Rscript是streaming的问题,你和其他人的问题是不一样的,贴一下你的详细日志,我帮你看看。当然如果能让我直接访问到你的环境调试是最理想的。
[未知用户] 你自己的编译的R也没关系。 把R, Rscript命令设置为全局的命令。

用root用户,启动hadoop和R,保证有足够的权限访问。
[未知用户] 参考这个文章https://github.com/RevolutionAnalytics/RHadoop/issues/87
确实解决了Rscript的问题,需要在/usr/bin下有Rscript,sudo ln -s /home/bob/R/bin/Rscript /usr/bin/Rscript
然后就遇到你上面提到的权限问题了。
ava.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1
at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:362)
at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:576)
at org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:135)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57)
at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
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:1121)
at org.apache.hadoop.mapred.Child.main(Child.java:249)

我hadoop是安装在bob账号下的,能直接切换到root账号去运行吗?另外,你的操作,都是在root的账号下进行的吗?
[未知用户] 1. 我的例子都是在root中运行的
ubuntu环境:sudo -i
2. 生产环境用root是不安全的,这当然需要把环境权限都设置好。
3. 由于R和hadoop都是自己安装的,访问权限会有不一样,除非你都装在了自己的home下面,用root执行可能会减少麻烦。

另外:rhadoop是一个复杂的东西,需要熟悉linux,java,hadoop,r 4种知识,自己掌握好或者需要hadoop运维的技术人员,帮助统计人员做一个环境。才能从根本上解决安装配置的错误。
LZ你好,我也碰到了和bob一样的问题,前一个问题是Rscript未找到,建了软连接之后还是报这个错,后发现各个集群机都必须安装R及Rscript,并且必须安装文中提到的所有依赖的R package,把各个datanode的环境弄好之后mapreduce终于过了 =3= 准备弄rhbase咯
[未知用户] 你好,很高兴看到你解决问题了。
我猜一定已经有了一些hadoop的使用经验,碰到这些错误,有自己的解决办法。
rmr实际上就是通过hadoop streaming做的,和python调用hadoop是一样,datanode的环境配置也是一个麻烦事。可以用虚拟机去复制相同的环境,再部署多节点就方便了。
[未知用户] 嗯,我的环境是VirtualBox+CentOS6.4,复制虚拟机之前我只用rpm包装了hadoop并且配置了环境,搞得现在各个机器都要重复安装各种包,走了不少弯路哦,不过好处是下次可以尽量少走点弯路了,希望LZ在文章里面加上一点关于集群机的注释,再次感谢~
[未知用户] 这边是“统计学”为主的论坛。
现在安装环境各种问题,已经让大部分的统计学背景的工作人员束手无策了
。rhadoop的集群的一些问题,咱们可以在我的博客,相同的帖子中继续讨论。http://blog.fens.me/rhadoop-rhadoop/

我也有一些虚拟化的解决方案。
13 天 后
你好,我已经成功的安装了hadoop和r环境,并且按照你的steps跑成功了例子,谢谢你。

不过我有一个问题,我看到其他一些资料里都指出需要在所有结点上安装rmr2,但是我仅仅在一台节点上安装,却能够跑成功例子,不知道博主有没有注意到这点?
[未知用户] 刚才回复的内容有点问题。
R是通过hadoop streaming方式调用hadoop的,要根据streaming的规则,去安装R的环境。
你可以列一下,你的hadoop的各节点,数据在datanode上的分布吗?

[未知用户] 恩,我刚才也试了下在所有data节点上安装rmr2,重新跑任务的时候发现这次用到了3个结点,速度快了很多,应该是需要在所有datanode上安装的,否则task会失败,我先前能够成功实际是假象,应该是task失败了,jobtrack重新分配给安装过rmr2的datanode了,所以看上去成功,实际只用到了1台机器。
10 天 后
[未知用户] 解决RHadoop错误:PipeMapRed.waitOutputThreads(): subprocess failed with code 1
http://blog.fens.me/rhadoop-rmr2-pipemapred/
[未知用户] 解决RHadoop错误:PipeMapRed.waitOutputThreads(): subprocess failed with code 1
http://blog.fens.me/rhadoop-rmr2-pipemapred/
7 天 后
[未知用户] 你好,你的问题是怎么解决的? 我遇到和你一样的报错,一样的问题,datanode部署和namenode部署是一样的,问题是客户端执行rmr2的还是那样的错。。
[未知用户] 另外能告诉我你的联系方式吗?张丹同学,能否把dongguozhong的邮箱告诉我呢?谢谢