0

我正在尝试distcp通过执行以下命令将文件从 HDFS 复制到 S3

hadoop distcp -fs.s3a.access.key=AccessKey -fs.s3a.secret.key=SecrerKey \
s3n://testbdr/test2 hdfs://hostname:portnumber/tmp/test 

但我收到以下错误:

17/09/05 02:59:30 ERROR tools.DistCp: Invalid arguments:
java.lang.IllegalArgumentException: Both source file listing and source paths present
        at org.apache.hadoop.tools.OptionsParser.parseSourceAndTargetPaths(OptionsParser.java:341)
        at org.apache.hadoop.tools.OptionsParser.parse(OptionsParser.java:89)
        at org.apache.hadoop.tools.DistCp.run(DistCp.java:112)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.hadoop.tools.DistCp.main(DistCp.java:436)
Invalid arguments: Both source file listing and source paths present
usage: distcp OPTIONS [source_path...] <target_path>
              OPTIONS
 -append                       Reuse existing data in target files and
                               append new data to them if possible
 -async                        Should distcp execution be blocking
4

2 回答 2

0

要传递配置参数,您必须使用-D

hadoop distcp -Dfs.s3a.access.key=AccessKey -Dfs.s3a.secret.key=SecrerKey \
s3n://testbdr/test2 hdfs://hostname:portnumber/tmp/test
于 2017-09-05T09:25:47.253 回答
0

旧命令

hadoop distcp - Dfs.s3a.access.key=AccessKey -Dfs.s3a.secret.key=SecretKey \ s3n://testbdr/test2 hdfs://hostname:portnumber/tmp/test

整改命令

hadoop distcp -Dfs.s3n.awsAccessKeyId=AccessKey -Dfs.s3n.awsSecretAccessKey=SecretKey \ s3n://testbdr/test2 hdfs://hostname:portnumber/tmp/test

于 2017-09-07T11:53:13.133 回答