2014-03-27 41 views
2

我嘗試使用以下命令從S3的文件複製到HDFS:從S3複製文件DistCp使用或s3distcp

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的文件複製。

在此先感謝。

回答

5

的命令應該是這樣的:

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

這將從S3 test.csv文件複製到名爲指定HDFS路徑/ mydirectory中一個HDFS目錄。 在此S3文件系統正在以純模式使用。更多的細節可以在http://wiki.apache.org/hadoop/AmazonS3

1

將存儲在Amazon S3存儲桶中的日誌文件複製到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

希望這有助於!

相關問題