实际上,我正在尝试将script-runner.jar与userdata放在同一存储桶中 执行用户数据(因为我们无权访问AWS默认存储桶):
step {
name = "Hadoop config"
hadoop_jar_step {
jar = "s3://bucket/directory/emr/script-runner.jar"
args = ["s3://bucket/directory/emr/userdata.sh"]
}
action_on_failure = "TERMINATE_CLUSTER"
}
但是出现以下错误:
线程“ main”中的异常java.lang.RuntimeException: java.io.IOException:无法运行程序 “ / mnt / var / lib / hadoop / steps / s-XXXXXXXXXXX /./ userdata.sh”(在目录中 “。”):错误= 2,该文件或目录位于 com.amazon.elasticmapreduce.scriptrunner.ProcessRunner.exec(ProcessRunner.java:143) 在 com.amazon.elasticmapreduce.scriptrunner.ScriptRunner.main(ScriptRunner.java:58) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498)在 org.apache.hadoop.util.RunJar.run(RunJar.java:221)在 org.apache.hadoop.util.RunJar.main(RunJar.java:136)由以下原因引起: java.io.IOException:无法运行程序 “ / mnt / var / lib / hadoop / steps / s-1JZQX6GL3TJED /./ userdata.sh”(在 目录“。”):错误= 2,该目录中没有这样的文件或目录 java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)在 com.amazon.elasticmapreduce.scriptrunner.ProcessRunner.exec(ProcessRunner.java:96) ... 7更多原因:java.io.IOException:错误= 2,没有此类文件或 目录位于java.lang.UNIXProcess.forkAndExec(本机方法)处 java.lang.UNIXProcess。(UNIXProcess.java:247)在 java.lang.ProcessImpl.start(ProcessImpl.java:134)在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)...还有8个
有人可以让我知道为什么它失败了吗? 预先感谢。