在EMR 3.10中添加步骤或引导操作以将文件从本地复制到s3

时间:2016-04-29 15:32:31

标签: hadoop amazon-web-services amazon-s3 amazon-emr

我正在使用Amazon EMR 3.10,我希望将文件从本地复制到Amazon S3 ...我正在使用" script-runner.jar"在参数中,我在参数中提到了一个命令 sudo aws s3 cp /home/hadoop/conf/hdfs-site.xml s3:// testbucket / myfolder / - recursive ...但是这个步骤正在失败&抛出以下异常:

Exception in thread "main" java.lang.RuntimeException: Local file does not exist.
at com.amazon.elasticmapreduce.scriptrunner.ScriptRunner.fetchFile(ScriptRunner.java:30)
at com.amazon.elasticmapreduce.scriptrunner.ScriptRunner.main(ScriptRunner.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

我在步骤中需要做什么才能将文件从本地复制到Amazon S3?我还想提出几个问题吗? 1)如果我需要使用" command-runner.jar",如何在EMR 3.10中使用命令运行器? 2)如何使用Bootstrap操作执行复制任务?

谢谢

2 个答案:

答案 0 :(得分:1)

如果您尝试在引导操作中执行此副本,请注意 在引导阶段完成之后,hadoop用户才会存在。

这可以解释错误。

作为EMR步骤执行复制操作应该在该点安装hadoop时起作用。

有关详细信息,请参阅EMR的生命周期:here

答案 1 :(得分:0)

似乎程序无法找到本地文件

/home/hadoop/conf/hdfs-site.xml

文件是否存在?

您还可以尝试使用名为s3cmd

的漂亮工具