java—使用distcp或s3distcp将文件从s3复制到hdfs

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

我正在尝试使用以下命令将文件从s3复制到hdfs:

hadoop distcp s3n://bucketname/filename hdfs://namenodeip/directory

但是,这不起作用,出现如下错误:

ERROR tools.DistCp: Exception encountered 
java.lang.IllegalArgumentException: Invalid hostname in URI

我曾尝试在hadoop conf.xml中添加s3键,但也不起作用。请帮助我一步一步地实现从s3到hdfs的文件拷贝。
提前谢谢。

wz1wpwve

wz1wpwve1#

将存储在amazons3存储桶中的日志文件复制到hdfs中。这里--srcpattern选项用于限制复制到守护程序日志的数据。
linux、unix和mac os x用户:

./elastic-mapreduce --jobflow j-3GY8JC4179IOJ --jar \
/home/hadoop/lib/emr-s3distcp-1.0.jar \
--args '--src,s3://myawsbucket/logs/j-3GY8JC4179IOJ/node/,\
--dest,hdfs:///output,\
--srcPattern,.*daemons.*-hadoop-.*'

windows用户:

ruby elastic-mapreduce --jobflow j-3GY8JC4179IOJ --jar /home/hadoop/lib/emr-s3distcp-1.0.jar --args '--src,s3://myawsbucket/logs/j-3GY8JC4179IOJ/node/,--dest,hdfs:///output,--srcPattern,.*daemons.*-hadoop-.*'

有关更多信息,请查看此链接:
http://docs.aws.amazon.com/elasticmapreduce/latest/developerguide/usingemr_s3distcp.html
希望这有帮助!

jchrr9hc

jchrr9hc2#

命令应如下所示:

Hadoop distcp s3n://bucketname/directoryname/test.csv /user/myuser/mydirectory/

这将把test.csv文件从s3复制到指定hdfs路径中名为/mydirectory的hdfs目录。在这个s3中,文件系统是以本机模式使用的。更多详情请参见http://wiki.apache.org/hadoop/amazons3

相关问题