使用ApacheHadoop2.7.2版本,并尝试使用以下命令将文件从HDFS复制到Amazon。
hadoop distcp hdfs://<<namenode_host>>:9000/user/ubuntu/input/flightdata s3a://<<bucketid>>使用上面的命令获取异常下面。
java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: s3a://<<bucketid>>.distcp.tmp.attempt_1462460298670_0004_m_000001_0非常感谢你的帮助。
发布于 2016-05-05 16:54:54
应该可以从HDFS转到S3 --在使用以下语法之前,我已经这样做了,在HDFS集群中运行它:
distcp -Dfs.s3a.access.key=.-Dfs.s3a.secret.key=./user/流浪者/bigdata s3a://mytestbucket/bigdata
如果你这样运行你的命令,它能工作吗:
hadoop hdfs://namenode_host:9000/user/ubuntu/input/flightdata s3a://bucketid/flightdata
从异常情况看,它似乎期待一个“文件夹”将数据放入其中,而不是存储桶的根。
发布于 2019-02-26 01:00:11
您需要提供AWS凭据,以便成功地将文件传输到HDFS和S3。
您可以传递上面所示的access_key_id和秘密参数,但是您应该在生产中使用凭证提供者 api,在这里您可以管理您的凭据,而不必在单独的命令中传递它们。
参考文献:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/CredentialProviderAPI.html
其次,您不需要指定"hdfs“协议。绝对hdfs路径就足够了。
https://stackoverflow.com/questions/37054773
复制相似问题