私はRHadoopとRMRを初めて使用します... MapreduceでMapreduceジョブを作成する必要がありました。書き込みを試しましたが、実行中にエラーが発生しました。hdfsからファイルを読み取るためのTring
エラー:
Error in mr(map = map, reduce = reduce, combine = combine, vectorized.reduce, :
hadoop streaming failed with error code 1
コード:
Sys.setenv(HADOOP_HOME="/opt/cloudera/parcels/CDH-4.7.0-1.cdh4.7.0.p0.40/lib/hadoop")
Sys.setenv(HADOOP_CMD="/opt/cloudera/parcels/CDH-4.7.0-1.cdh4.7.0.p0.40/bin/hadoop")
Sys.setenv(HADOOP_STREAMING="/opt/cloudera/parcels/CDH-4.7.0-1.cdh4.7.0.p0.40/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.7.0.jar")
library(rmr2)
library(rhdfs)
hdfs.init()
day_file = hdfs.file("/hdfs/bikes_LR/day.csv","r")
day_read = hdfs.read(day_file)
c = rawToChar(day_read)
XtX =
values(from.dfs(
mapreduce(
input = "/hdfs/bikes_LR/day.csv",
map=
function(.,Xi){
yi =c[Xi[,1],]
Xi = Xi[,-1]
keyval(1,list(t(Xi)%*%Xi))
},
reduce = function(k,v )
{
vals =as.numeric(v)
keyval(k,sum(vals))
} ,
combine = TRUE)))[[1]]
XtY =
values(from.dfs(
mapreduce(
input = "/hdfs/bikes_LR/day.csv",
map=
function(.,Xi){
yi =c[Xi[,1],]
Xi = Xi[,-1]
keyval(1,list(t(Xi)%*%yi))
},
reduce = TRUE ,
combine = TRUE)))[[1]]
solve(XtX,XtY)
Input:
------------
instant,dteday,season,yr,mnth,holiday,weekday,workingday,weathersit,temp,atemp,hum,windspeed,casual,registered,cnt
1,2011-01-01,1,0,1,0,6,0,2,0.344167,0.363625,0.805833,0.160446,331,654,985
2,2011-01-02,1,0,1,0,0,0,2,0.363478,0.353739,0.696087,0.248539,131,670,801
3,2011-01-03,1,0,1,0,1,1,1,0.196364,0.189405,0.437273,0.248309,120,1229,1349
4,2011-01-04,1,0,1,0,2,1,1,0.2,0.212122,0.590435,0.160296,108,1454,1562
5,2011-01-05,1,0,1,0,3,1,1,0.226957,0.22927,0.436957,0.1869,82,1518,1600
6,2011-01-06,1,0,1,0,4,1,1,0.204348,0.233209,0.518261,0.0895652,88,1518,1606
7,2011-01-07,1,0,1,0,5,1,2,0.196522,0.208839,0.498696,0.168726,148,1362,1510
8,2011-01-08,1,0,1,0,6,0,2,0.165,0.162254,0.535833,0.266804,68,891,959
9,2011-01-09,1,0,1,0,0,0,1,0.138333,0.116175,0.434167,0.36195,54,768,822
10,2011-01-10,1,0,1,0,1,1,1,0.150833,0.150888,0.482917,0.223267,41,1280,1321
Please Suggest me any mistakes.
1
エラーを示すRスクリプトからのログ出力を見つける必要があります。「エラーコード1でHadoopストリーミングが失敗しました」とは、「何らかの理由でスクリプトが失敗した」という意味です
—
Sean Owen
場合によっては、書き込みを行う前にフォルダーを削除する必要があります(存在する場合)。それをチェックしてください。
—
アデサント2014
urの回答に感謝します...しかし、
—
言った
これは単一マシンのクラスターですか?stderrログを提供できますか?
—
Hack-R