【发布时间】:2018-11-22 09:21:42
【问题描述】:
我正在通过以下代码使用 RHadoop:
Sys.setenv(HADOOP_OPTS="-Djava.library.path=/usr/local/hadoop/lib/native")
Sys.setenv(HADOOP_HOME="/usr/local/hadoop")
Sys.setenv(HADOOP_CMD="/usr/local/hadoop/bin/hadoop")
Sys.setenv(HADOOP_STREAMING="/usr/local/hadoop/share/hadoop/tools/lib/hadoop-streaming-3.0.0.jar")
Sys.setenv(JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64")
library(rJava)
library(rhdfs)
library(rmr2)
hdfs.init()
mapper = function (., X) {
n=nrow(X);
ones=matrix(rep(1,n),nrow=n,ncol=1);
ag=aggregate(cbind(ones,X[,1:79]),by=list(X[,80]),FUN="sum")
key=factor(ag[,1]);
keyval(key,split(ag[,-1],key))
}
reducer = function(k, A) {
keyval(k,list(Reduce('+', A)))
}
GroupSums <- from.dfs( mapreduce(input = "/ISCXFlowMeter.csv", map = mapper, reduce = reducer, combine = T))
当我运行这段代码时,我得到一个错误:
packageJobJar: [/tmp/hadoop-unjar7138506441946536619/] [] /tmp/streamjob6099552934186757596.jar tmpDir=null 2018-06-12 22:40:04,651 INFO client.RMProxy:连接到 ResourceManager 在 /0.0.0.0:8032 2018-06-12 22:40:04,945 信息 client.RMProxy: 连接 到 ResourceManager 在 /0.0.0.0:8032 2018-06-12 22:40:05,201 信息 mapreduce.JobResourceUploader:禁用路径的纠删码: /tmp/hadoop-yarn/staging/uel/.staging/job_1528838017005_0012 2018-06-12 22:40:06,158 INFO mapred.FileInputFormat:输入文件总数 处理:1 2018-06-12 22:40:06,171 INFO net.NetworkTopology: 添加新节点:/default-rack/127.0.0.1:9866 2018-06-12 22:40:06,233 INFO mapreduce.JobSubmitter:拆分数:2 2018-06-12 22:40:06,348 信息配置。弃用: yarn.resourcemanager.system-metrics-publisher.enabled 已弃用。 相反,使用 yarn.system-metrics-publisher.enabled 2018-06-12 22:40:06,608 INFO mapreduce.JobSubmitter:提交作业令牌: 工作_1528838017005_0012 2018-06-12 22:40:06,610 信息 mapreduce.JobSubmitter:使用令牌执行:[] 2018-06-12 22:40:06,945 INFO conf.Configuration:找不到资源类型.xml 2018-06-12 22:40:06,945 INFO resource.ResourceUtils:找不到 '资源-types.xml'。 2018-06-12 22:40:07,022 信息 impl.YarnClientImpl:提交的申请 应用程序_1528838017005_0012 2018-06-12 22:40:07,249 信息 mapreduce.Job:跟踪作业的 url: http://uel-Deskop-VM:8088/proxy/application_1528838017005_0012/ 2018-06-12 22:40:07,251 信息 mapreduce.Job:正在运行的作业: job_1528838017005_0012 2018-06-12 22:40:09,301 信息 mapreduce.Job: 工作 job_1528838017005_0012 在超级模式下运行:错误 2018-06-12 22:40:09,305 INFO mapreduce.Job: map 0% reduce 0% 2018-06-12 22:40:09,337 信息 mapreduce.Job:作业 job_1528838017005_0012 失败 状态 FAILED 由于:应用程序 application_1528838017005_0012 由于 AM Container 导致失败 2 次 appattempt_1528838017005_0012_000002 退出,退出代码:127 这次尝试失败。诊断:[2018-06-12 22:40:08.734]异常 从容器启动。容器编号: container_1528838017005_0012_02_000001 退出代码:127
[2018-06-12 22:40:08.736]容器以非零退出代码退出 127. 错误文件:prelaunch.err。 prelaunch.err 的最后 4096 字节:stderr 的最后 4096 字节:/bin/bash: /bin/java: 没有这样的文件或 目录
[2018-06-12 22:40:08.736]容器以非零退出代码退出 127. 错误文件:prelaunch.err。 prelaunch.err 的最后 4096 字节:stderr 的最后 4096 字节:/bin/bash: /bin/java: 没有这样的文件或 目录
有关更详细的输出,请查看应用程序跟踪页面: http://uel-Deskop-VM:8088/cluster/app/application_1528838017005_0012 然后单击指向每次尝试日志的链接。 .失败 应用。 2018-06-12 22:40:09,368 信息 mapreduce.Job:计数器:0 2018-06-12 22:40:09,369 错误流。StreamJob:作业不成功! 流式传输命令失败! mr 中的错误(map = map,reduce = reduce, combine = combine, vectorized.reduce, : hadoop 流式传输失败 错误代码 1 >
hadoop 中的 ISCXFlowMeter.csv 文件可在此处获得:https://www.dropbox.com/s/rbppzg6x2slzcjz/ISCXFlowMeter.csv?dl=1
您能否指导我如何纠正此问题?
【问题讨论】: