首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单机上的Rhadoop基本任务

单机上的Rhadoop基本任务
EN

Stack Overflow用户
提问于 2015-03-07 04:43:58
回答 1查看 106关注 0票数 3

我在Rhadoop中运行以下代码:

代码语言:javascript
复制
Sys.setenv(HADOOP_HOME="/home/ashkan/Downloads/hadoop-1.0.3/")
Sys.setenv(HADOOP_BIN="/home/ashkan/Downloads/hadoop-1.0.3/bin/")
Sys.setenv(HADOOP_CONF_DIR="/home/ashkan/Downloads/hadoop-1.0.3/conf")
Sys.setenv(HADOOP_CMD="/home/ashkan/Downloads/hadoop-1.0.3/bin/hadoop")
library (Rhipe)
library(rhdfs)
library(rmr2)

hdfs.init()
small.ints = to.dfs(1:10)
  mapreduce(
    input = small.ints, 
  map = function(k, v)
  {
    lapply(seq_along(v), function(r){
      x <- runif(v[[r]])
      keyval(r,c(max(x),min(x)))
    })})

然而,我得到了以下错误:

代码语言:javascript
复制
Error in mr(map = map, reduce = reduce, combine = combine, vectorized.reduce,  : 
  hadoop streaming failed with error code 1

有人知道问题出在哪里吗?非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-22 18:29:02

要解决这个问题,您必须设置HADOOP_STREAMING环境变量。下面的代码对我来说工作得很好。请注意,您的代码没有使用Rhipe,因此不需要加载。

hadoop代码(我使用的是Hadoop2.4.0)

代码语言:javascript
复制
Sys.setenv("HADOOP_CMD"="/usr/local/hadoop/bin/hadoop")
Sys.setenv("HADOOP_STREAMING"="/usr/local/hadoop/share/hadoop/tools/lib/hadoop-streaming-2.4.0.jar")

library(rhdfs)
# Initialise
hdfs.init()
library(rmr2)

hdfs.init()
small.ints = to.dfs(1:10)
  mapreduce(
    input = small.ints, 
  map = function(k, v)
  {
    lapply(seq_along(v), function(r){
      x <- runif(v[[r]])
      keyval(r,c(max(x),min(x)))
    })})

我猜你的hadoop流路径如下:

代码语言:javascript
复制
Sys.setenv("HADOOP_STREAMING"="/home/ashkan/Downloads/hadoop-1.0.3/contrib/streaming/hadoop-streaming-1.0.3.jar")

希望这能有所帮助。

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

https://stackoverflow.com/questions/28907314

复制
相关文章

相似问题

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