s3distcp error“参数”-arg“不匹配”

8aqjt8rx  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(404)

我正在尝试将s3distcp用于emr作业,但出现以下异常:

Exception in thread "main" java.lang.RuntimeException: Argument --arg doesn't match.
        at emr.hbase.options.Options.parseArguments(Options.java:75)
        at emr.hbase.options.Options.parseArguments(Options.java:57)
        at com.amazon.external.elasticmapreduce.s3distcp.S3DistCp.run(S3DistCp.java:151)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
        at com.amazon.external.elasticmapreduce.s3distcp.Main.main(Main.java:12)
        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:187)

控制器显示它正在运行:

2013-11-03T00:54:52.277Z INFO Executing /usr/java/latest/bin/java -cp /home/hadoop/conf:/usr/java/latest/lib/tools.jar:/home/hadoop:/home/hadoop/hadoop-tools.jar:/home/hadoop/hadoop-tools-1.0.3.jar:/home/hadoop/hadoop-core-1.0.3.jar:/home/hadoop/hadoop-core.jar:/home/hadoop/lib/*:/home/hadoop/lib/jetty-ext/* -Xmx1000m -Dhadoop.log.dir=/mnt/var/log/hadoop/steps/1 -Dhadoop.log.file=syslog -Dhadoop.home.dir=/home/hadoop -Dhadoop.id.str=hadoop -Dhadoop.root.logger=INFO,DRFA -Djava.io.tmpdir=/mnt/var/lib/hadoop/steps/1/tmp -Djava.library.path=/home/hadoop/native/Linux-amd64-64 org.apache.hadoop.util.RunJar /mnt/var/lib/hadoop/steps/1/s3distcp.jar --arg --src --arg 's3://s3bucket/s3/' --arg --dest --arg hdfs:///tmp/mrjob/mrjob-jobid/step-output/1/ --arg --groupBy --arg 'd-0-([0-9]+-[0-9]+).log.gz'

我觉得很好。有人知道为什么它不能匹配-arg吗?
谢谢!

67up9zun

67up9zun1#

您还需要将emr步骤参数括在引号中:

--arg "--src" --arg 's3://s3bucket/s3/' --arg "--dest" ...

我认为单引号或双引号都可以。

1szpjjfi

1szpjjfi2#

我认为hdfs:///tmp/mrjob/mrjob jobid/step output/1/很可能必须用单引号括起来。
我看到语法是这样的:

--arg S3DistCp-OptionName1 --arg 'S3DistCp-OptionValue1'

相关问题