【问题标题】:Moving data from Cloudera to Amazon S3 bucket将数据从 Cloudera 移动到 Amazon S3 存储桶
【发布时间】:2017-05-10 17:25:57
【问题描述】:

我有 CDH hdfs 上的数据,我想将其移动到 Amazon S3 存储桶,因此我可以在 AWS EMR 而不是 CDH 上运行代码。 如何安全快速地移动它?

我可以使用 s3a 命令或任何其他有效的方式来做到这一点吗?

【问题讨论】:

  • 您可以使用aws s3 cp 将任何文件复制到 S3 存储桶。
  • 我尝试使用 aws S3 cp,但有时复制停止了。
  • 如果传输因某种原因中断,您可以随时使用aws s3 sync
  • aws s3 cp 不起作用,因为我将文件从 hdfs 复制到 S3,而不是本地文件。因为我正在将数据从 CDH 复制到 Amazon S3,所以我需要传递 s3 访问密钥和密钥。我尝试运行命令: hdfs dfs -cp s3n://:@ 但它不起作用。它给了我“源文件列表和源路径都存在”。
  • 但是你总是可以挂载 HDFS 文件系统,对吧? wiki.apache.org/hadoop/MountableHDFS

标签: hadoop amazon-s3 cloudera amazon-emr bigdata


【解决方案1】:

我使用 hdfs distcp 将数据从 S3 复制到 hdfs。它也支持反之亦然,因此也应该适用于您的情况。 因为它在内部使用 map reduce 并且并行处理速度非常快。我创建了一个脚本来为一组日期运行此命令,然后在后台模式下使用 nohup 运行它。 命令的语法是:

hadoop distcp -Dfs.s3n.awsAccessKeyId=$S3NKEYID -      Dfs.s3n.awsSecretAccessKey=$S3NKEY s3n://$COPYFROMENV/$TABLE_PATH/$TABLE/$PARTITION_PATH hdfs://$COPYTOENV/$TABLE_PATH/$TABLE/

【讨论】:

  • 我已经尝试过这个命令,它给了我。错误 tools.distcp.Distcp:无效拒绝 java.net.connectException:连接被拒绝。有什么解决方法吗?
  • 这通常发生在您运行命令的数据节点无法访问 S3 时。您需要确保可以从运行此命令的节点访问 s3。
猜你喜欢
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
  • 2020-07-26
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
  • 2017-01-10
相关资源
最近更新 更多