我是R Hadoop的新手。我可以用Hadoop运行rmr包的map reduce功能。基本上在后台R中运行此映射减少Java中的代码。这意味着R在Java中转换此R map reduce代码,因此我可以在运行map reduce时获取java后台代码。
任何人都可以帮助我吗?
答案 0 :(得分:2)
在Rhadoop中,R没有将R Map Reduce代码转换为java.Rhadoop提供了MapReduce接口; mapper和reducer可以用R代码描述,然后从R中调用。
Rhadoop包将使用Hadoop向Hadoop集群提交R代码 streaming.Hadoop streaming是Hadoop附带的实用程序 分配。该实用程序允许您创建和运行Map / Reduce作业 使用任何可执行文件或脚本作为映射器和/或reducer。
您可以通过GitHub中的Rhadoop程序包代码来了解这一点。
RHadoop软件包使用R中的 System 命令提交hadoop流式传输作业。 您可以从RMR包中的R scipt了解这一点。该streaming.R中的代码如下所示。
final.command =
paste(
hadoop.command,
stream.mapred.io,
if(is.null(backend.parameters)) ""
else
do.call(paste.options, backend.parameters),
input,
output,
mapper,
combiner,
reducer,
image.cmd.line,
m.fl,
r.fl,
c.fl,
input.format.opt,
output.format.opt,
"2>&1")
if(verbose) {
retval = system(final.command)
if (retval != 0) stop("hadoop streaming failed with error code ", retval, "\n")}
else {
console.output = tryCatch(system(final.command, intern=TRUE),
warning = function(e) stop(e))
0}}