库中的错误(functional):使用rmr2运行mr时,没有名为“functional”的包

qhhrdooz  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(350)

我尝试在单节点hadoop集群中使用rmr2运行一个简单的mr程序。以下是安装环境
ubuntu 12.04(32位)
r(ubuntu附带2.14.1,因此更新为3.0.2)
从这里安装了最新的rmr2和rhdfs以及相应的依赖项
hadoop 1.2.1版
现在我试着运行一个简单的mr程序

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)

mapreduce作业失败,在hadoop-1.2.1/logs/userlogs/job\u 201310091055\u 0001/attempt\u 201310091055\u 0001\u m\u 000000\u 0/stderr中显示以下错误消息

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() 显示已加载功能包

> 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

更新:我能够运行一个r mr作业,从stdio读取和写入,而无需使用rmr2和rhdfs库,如这里所述。所以,目前我的猜测是,这个问题与rmr2和rhdfs包无关。
如何避开这个问题?

s71maibg

s71maibg1#

在系统目录而不是自定义目录(~/r/x86\u 64-pc-linux-gnu-library/3.0)中安装rmr2/rhdfs的依赖项。这可以像sudo一样运行r,然后安装依赖项。感谢antonio在rhadoop论坛上的帮助。

r6l8ljro

r6l8ljro2#

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


**functional_0.4**

当我做sessioninfo()的时候

functional_0.4

我想有些依赖项可能会丢失,所以请从r控制台使用

install.packages("functional",dependencies="TRUE")

解决由于任何其他程序包引起的任何问题。
p、 s:从可用镜像中选择cloud-0镜像。
如果仍然没有帮助,我建议您使用r-base-dev作为您的r版本,尽管我没有理由证明使用r-base-dev是正确的http://cran.r-project.org/bin/linux/ubuntu/readme

sudo apt-get install r-base-dev

谢谢

相关问题