首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库(功能)中的错误:在使用rmr2运行MR时,没有名为“functional”的包

库(功能)中的错误:在使用rmr2运行MR时,没有名为“functional”的包
EN

Stack Overflow用户
提问于 2013-10-09 10:15:30
回答 2查看 6.5K关注 0票数 4

我试图在单个节点Hadoop集群中使用rmr2运行一个简单的MR程序。下面是安装程序的环境

Ubuntu 12.04 (32位)

R (Ubuntu附带2.14.1,因此更新为3.0.2)

从rmr2安装了最新的这里和rhdfs以及相应的依赖项

Hadoop 1.2.1

现在我试图运行一个简单的MR程序

代码语言:javascript
复制
Sys.setenv(HADOOP_HOME="/home/training/Installations/hadoop-1.2.1")
Sys.setenv(HADOOP_CMD="/home/training/Installations/hadoop-1.2.1/bin/hadoop")

library(rmr2)  
library(rhdfs)

ints = to.dfs(1:100)  
calc = mapreduce(input = ints, map = function(k, v) cbind(v, 2*v))
from.dfs(calc)

hadoop-1.2.1/logs/userlogs/job_201310091055_0001/attempt_201310091055_0001_m_000000_0/stderr中,下面的错误消息导致mapreduce作业失败

代码语言:javascript
复制
Error in library(functional) : there is no package called ‘functional’  
Execution halted  
java.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)  

但是,sessionInfo()显示已经加载了功能包。

代码语言:javascript
复制
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: i686-pc-linux-gnu (32-bit)

>locale:
 [1] LC_CTYPE=en_IN       LC_NUMERIC=C         LC_TIME=en_IN       
 [4] LC_COLLATE=en_IN     LC_MONETARY=en_IN    LC_MESSAGES=en_IN   
 [7] LC_PAPER=en_IN       LC_NAME=C            LC_ADDRESS=C        
[10] LC_TELEPHONE=C       LC_MEASUREMENT=en_IN LC_IDENTIFICATION=C 

>attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

>other attached packages:
 [1] rhdfs_1.0.6    rJava_0.9-4    rmr2_2.3.0     reshape2_1.2.2 plyr_1.8      
 [6] stringr_0.6.2  **functional_0.4** digest_0.6.3   bitops_1.0-6   RJSONIO_1.0-3 
[11] Rcpp_0.10.5

Update:我可以在rmr2和rhdfs库(如提到的这里 )的情况下运行STDIO中的rmr2作业读写。因此,目前我的猜测是,问题被隔离到rmr2和rhdfs包中。

如何解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2013-10-14 08:34:33

在系统目录中安装rmr2 2/rhdfs的依赖项,而不是自定义目录(~/R/x86_64-/3.0)。这可以作为sudo运行R,然后安装依赖项。感谢安东尼奥在RHadoop论坛上的帮助。

票数 5
EN

Stack Overflow用户

发布于 2013-10-12 06:21:49

这类问题最常见的解决方案是重新安装,因为在sesssionInfo()中

代码语言:javascript
复制
**functional_0.4** 

而当我做sessionInfo()的时候

代码语言:javascript
复制
functional_0.4

我想你可能缺少了一些依赖关系,所以从你的R控制台中使用

代码语言:javascript
复制
install.packages("functional",dependencies="TRUE") 

解决由于任何其他包引起的任何问题。

从可用的镜像中选择cloud-0镜像。

如果这仍然没有帮助,我建议您使用r-base-dev作为您的R版本,尽管我没有理由使用http://cran.r-project.org/bin/linux/ubuntu/README来证明这一点。

代码语言:javascript
复制
sudo apt-get install r-base-dev

谢谢

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19269192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档