Hồi quy tuyến tính trong R Mapreduce (RHadoop)


7

Tôi mới biết đến RHadoop và cả RMR ... Tôi có một yêu cầu để viết một Công việc Mapreduce trong R Mapreduce. Tôi đã thử viết nhưng trong khi thực hiện việc này, nó báo lỗi. Tring để đọc các tập tin từ hdfs

Lỗi:

Error in mr(map = map, reduce = reduce, combine = combine, vectorized.reduce,  : 
   hadoop streaming failed with error code 1

Mã số:

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
Bạn cần tìm đầu ra nhật ký từ tập lệnh R của bạn, điều này sẽ chỉ ra lỗi. "Hadoop streaming không thành công với mã lỗi 1" chỉ có nghĩa là "kịch bản không thành công vì một số lý do"
Sean Owen

1
Đôi khi thư mục nơi bạn viết phải bị xóa trước khi viết (nếu nó tồn tại). Kiểm tra xem.
adesantos

cảm ơn vì câu trả lời của bạn ... nhưng tôi đã kiểm tra tất cả các possibilites mà bạn đã đề cập ... tôi nghi ngờ rằng có một số vấn đề với chính mã ... ai đó có thể vui lòng khắc phục ...
user3782364

Đây có phải là cụm máy đơn không? Bạn có thể cung cấp nhật ký stderr?
Hack-R

Câu trả lời:


1

Tôi đề nghị sử dụng các thư viện máy học với hồi quy tuyến tính chức năng Spark MLlib hoặc hivemall .


1
Những điều này không liên quan đến R hoặc MapReduce, dường như là những yêu cầu ở đây.
Sean Owen

Trên tia lửa Bạn có thể viết bằng python. Sử dụng thư viện RPy để tích hợp R một Python.
Marcin Kosiński
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.