Greetings,
First, many thanks for the RHIPE package and for the help contributed
on this forum. I've been banging my head against the wall to get
through a series of errors, and now I'm stuck on some examples from
the guide and from this forum.
In particular, I keep hitting the same errors from Hadoop. The logs
from the Hadoop jobtracker are below (for experiment 2). I've tried a
bunch of different "experiments", to test all the bases that I could
think of.
In experiment 1, the commands were:
rhwrite(list(1,2,3),"/tmp/test")
rhread("/tmp/test")
This works as expected, with the following excerpt:
Wrote 3 pairs occupying 57 bytes
[1] TRUE
> rhread("/tmp/test")
RHIPE: Read 3 pairs occupying 57 bytes, deserializing
[[1]]
[[1]][[1]]
[1] "1"
...
In experiment 2, the commands were:
In bash:
export HADOOP=/usr/lib/hadoop-0.20
export HADOOP_BIN=/usr/lib/hadoop-0.20/bin
R
rhoptions(runner = c("/general/installed/bin/R","CMD", rhoptions()
$runner))
library(Rhipe)
rhinit(TRUE,TRUE,buglevel=2000)
rhoptions(runner = c("/general/installed/bin/R","CMD", rhoptions()
$runner))
z=rhmr(map=expression(), N=3, inout=c("lapp","seq"),ifolder="/tmp/
x", mapred=list(mapred.reduce.tasks=0, mapred.reduce.max.attempts=1,
mapred.map.max.attempts=1))
rhex(z)
Result: the error logs are below. Within R, the following error
was produced:
11/03/14 15:05:33 INFO mapred.JobClient: Failed map
tasks=1
result:256
Error in readBin(f1, "raw", f2) : invalid 'n' argument
Experiment 3:
I tried the following example:
map <- expression({
lapply(seq_along(map.values),function(r){
x <- runif(map.values[[r]])
rhcollect(map.keys[[r]],c(n=map.values[[r]],mean=mean(x),sd=sd(x)))
})
})
z <- rhmr(map, ofolder="/tmp/test",
inout=c('lapply','sequence'),
N=10,mapred=list(mapred.reduce.tasks=0,
mapred.reduce.max.attempts=1, mapred.map.max.attempts=1,
mapred.job.queue.name='interactive'),jobname='test')
rhex(z)
The resulting errors were the same.
Experiment 4:
This was motivated by a comment elsewhere on the forum
Command: R CMD /general/installed/R-2.12.1-acml/lib64/R/library/
Rhipe/libs/imperious.so
Result: Segmentation fault
Experiment 5:
I looked at ldd on imperious.so, and the results were the same for
the local and compute nodes. The Hadoop installation I'm using
doesn't have local jobtrackers enabled, so I couldn't test whether
things run locally.
I think I've been over everything, but I can't figure out the issue.
I've tried versions 0.65.1 (at least the patched version cited in a
link in another thread), 0.65.2, and 0.65.3.
I've seen online that mapred.input.file == null should possibly be
replaced with map.input.file = NULL, but I see no reason why this
should be a stumbling block for me, when others have had success with
RHIPE. So, is there something I'm missing?
Thanks!
David
___________________________________________________________
stdout logs
mapred.input.file == null
The stderr log is:
stderr logs
java.lang.RuntimeException: RHMRMapRed.waitOutputThreads(): subprocess
failed with code 127
at org.godhuli.rhipe.RHMRHelper.waitOutputThreads(RHMRHelper.java:
215)
at org.godhuli.rhipe.RHMRHelper.mapRedFinished(RHMRHelper.java:196)
at org.godhuli.rhipe.RHMRMapper.cleanup(RHMRMapper.java:124)
at org.godhuli.rhipe.RHMRMapper.run(RHMRMapper.java:65)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:639)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:315)
at org.apache.hadoop.mapred.Child$4.run(Child.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:
1063)
at org.apache.hadoop.mapred.Child.main(Child.java:211)
And the final part of the syslog info is:
2011-03-14 10:32:56,991 INFO org.godhuli.rhipe.RHMRHelper:
Mapper:Started external program:/general/installed/R-2.12.1-acml/lib64/
R/library/Rhipe/libs/imperious.so --slave --silent --vanilla --max-
ppsize=100000 --max-nsize=1G
2011-03-14 10:32:56,993 INFO org.godhuli.rhipe.RHMRHelper:
Mapper:Started Error Thread
2011-03-14 10:32:56,994 INFO org.godhuli.rhipe.RHMRHelper:
Mapper:Started Output Thread
2011-03-14 10:32:57,033 INFO org.godhuli.rhipe.RHMRHelper:
Mapper:MROutputThread done
2011-03-14 10:32:57,033 INFO org.godhuli.rhipe.RHMRHelper:
Mapper:MRErrorThread done
2011-03-14 10:32:57,060 WARN org.apache.hadoop.mapred.Child: Error
running child
java.lang.RuntimeException: RHMRMapRed.waitOutputThreads(): subprocess
failed with code 127
at org.godhuli.rhipe.RHMRHelper.waitOutputThreads(RHMRHelper.java:
215)
at org.godhuli.rhipe.RHMRHelper.mapRedFinished(RHMRHelper.java:196)
at org.godhuli.rhipe.RHMRMapper.cleanup(RHMRMapper.java:124)
at org.godhuli.rhipe.RHMRMapper.run(RHMRMapper.java:65)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:639)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:315)
at org.apache.hadoop.mapred.Child$4.run(Child.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:
1063)
at org.apache.hadoop.mapred.Child.main(Child.java:211)
2011-03-14 10:32:57,082 INFO org.apache.hadoop.mapred.Task: Runnning
cleanup for the task