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



我使用Amazon EMR 3.10是为了将文件从本地复制到Amazon S3……我使用的是"script runner.jar",在参数中,我提到了参数中的一个命令sudo aws S3 cp/home/hadop/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)

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

谢谢

如果您试图在引导操作中执行此复制,请注意hadoop用户直到引导阶段完成后才存在。

这可以解释这个错误。

作为EMR步骤执行复制操作应该可以在此时安装hadoop。

有关更多详细信息,请参阅电子病历的生命周期:此处

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

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

文件是否存在?

您也可以尝试使用一个名为s3cmd 的好工具

最新更新