java - S3DistCp 作业失败 : -- dest doesn't match

标签 java hadoop amazon-web-services amazon-s3 amazon-ec2

我正在尝试使用 s3DistCp 将 1 个 S3 文件夹中的一些小文件合并到另一个 S3 文件夹中。脚本类似于以下内容:

elastic-mapreduce --jobflow j-33EDUGSQCN0PZ --jar \
/home/hadoop/lib/emr-s3distcp-1.0.jar \
--args '--src,s3://li-test/data, \
--dest,s3://li-test/result, \
--groupBy,[0-9]*,\
--targetSize,128'

但我收到如下 java.lang.RuntimeException 错误。需要帮助。谢谢!

线程“main”中的异常 java.lang.RuntimeException:参数\ --dest 不匹配。 在 emr.hbase.options.Options.parseArguments(Options.java:75) 在 emr.hbase.options.Options.parseArguments(Options.java:57) 在 com.amazon.elasticmapreduce.s3distcp.S3DistCp$S3DistCpOptions.
(S3DistCp.java:124) 在 com.amazon.elasticmapreduce.s3distcp.S3DistCp.run(S3DistCp.java:545) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) 在 com.amazon.elasticmapreduce.s3distcp.Main.main(Main.java:13) 在 sun.reflect.NativeMethodAccessorImpl.invoke0( native 方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:187)

最佳答案

反编译存储在emr集群的/home/hadoop/lib文件夹中的emr-s3distcp-1.0.jar后,我发现java代码正在寻找这样的参数:

--src=s3://BUCKET-NAME/139kb-input --dest=s3://BUCKET-NAME/139kb-output

此行与文档之间的具体区别是在参数和参数值之间使用“=”而不是“,”。

这是 java 正在使用的 if 语句:

如果 (argument.length() >= this.arg.length() + 1 && argument.substring(0, this.arg.length() + 1).equals(this.arg + "="))

这里 this.arg 是“--src”,参数是“--src=s3://BUCKET-NAME/139kb-input”

注意事项:通过 Web 界面将步骤创建为自定义 jar 时就是这种情况。如文档所述,从命令行创建步骤时使用“,”而不是“=”。

关于java - S3DistCp 作业失败 : -- dest doesn't match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19486928/

相关文章:

java - JSF SessionScoped 属性未设置

hadoop - 使用 Parquet 文件作为存储在 Hive 中创建外部表后获取 NULL

java - org.apache.maven.plugin.MojoExecutionException : protoc failure

amazon-web-services - 有没有办法用 aws 降低负载均衡器的成本?

php - 无法获取从 AMI 创建的实例的密码

java - 无法启动 Activity ComponentInfo : Error inflating class android. support.design.widget.CoordinatorLayout

java - 以高效的方式获取所有可能的 JavaPairRDD 键组合

hadoop - org.apache.hadoop.hbase.RegionTooBusyException

amazon-web-services - 如何使用 Boto3 将文档上传到 AWS CloudSearch

java - 如何格式化从 Struts2 迭代器检索到的数字?