You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Hadoop CLI在两套本地部署S3对象存储间拷贝数据

Hadoop CLI 跨两套独立S3存储拷贝数据方案

Hadoop S3A 客户端支持按存储桶粒度独立配置连接参数,无需修改全局配置、无需编写Java代码,单条命令即可完成两套本地部署S3之间的数据拷贝。

配置规则

针对指定S3桶的自定义配置,统一使用参数前缀 fs.s3a.bucket.<桶名>.,后缀和普通S3A配置项一致,该配置优先级高于全局S3A配置,仅对对应桶的访问生效。
常用的可按桶独立配置的参数包括:

  • endpoint:S3服务访问地址
  • access.key:访问密钥AK
  • secret.key:访问密钥SK
  • path.style.access:是否使用路径风格访问(本地部署S3大多需要开启该配置,值为true)
  • connection.ssl.enabled:是否启用SSL连接

操作示例

假设两套S3的信息如下:

  • 源端S3:endpoint为http://192.168.1.10:9000,AK为src_ak_123,SK为src_sk_456,存储桶名为src-data
  • 目标端S3:endpoint为http://192.168.2.20:9000,AK为dst_ak_789,SK为dst_sk_0ab,存储桶名为dst-backup

小批量数据拷贝(hdfs dfs -cp)

直接在命令中传入两个桶的独立配置即可:

hdfs dfs \
-Dfs.s3a.bucket.src-data.endpoint=http://192.168.1.10:9000 \
-Dfs.s3a.bucket.src-data.access.key=src_ak_123 \
-Dfs.s3a.bucket.src-data.secret.key=src_sk_456 \
-Dfs.s3a.bucket.src-data.path.style.access=true \
-Dfs.s3a.bucket.dst-backup.endpoint=http://192.168.2.20:9000 \
-Dfs.s3a.bucket.dst-backup.access.key=dst_ak_789 \
-Dfs.s3a.bucket.dst-backup.secret.key=dst_sk_0ab \
-Dfs.s3a.bucket.dst-backup.path.style.access=true \
-cp s3a://src-data/2024/log/ s3a://dst-backup/2024/log_backup/

大批量数据拷贝(distcp,推荐)

TB级及以上数据量优先使用distcp做分布式拷贝,支持并发、失败重试,参数传递规则和上述一致:

hadoop distcp \
-Dfs.s3a.bucket.src-data.endpoint=http://192.168.1.10:9000 \
-Dfs.s3a.bucket.src-data.access.key=src_ak_123 \
-Dfs.s3a.bucket.src-data.secret.key=src_sk_456 \
-Dfs.s3a.bucket.src-data.path.style.access=true \
-Dfs.s3a.bucket.dst-backup.endpoint=http://192.168.2.20:9000 \
-Dfs.s3a.bucket.dst-backup.access.key=dst_ak_789 \
-Dfs.s3a.bucket.dst-backup.secret.key=dst_sk_0ab \
-Dfs.s3a.bucket.dst-backup.path.style.access=true \
s3a://src-data/2024/log/ s3a://dst-backup/2024/log_backup/

注意事项

  • 配置项中的桶名必须和s3a://路径中的桶名完全一致,大小写敏感
  • 执行拷贝前可先将命令中的-cp/distcp替换为-ls,分别验证源、目标路径的访问权限和配置正确性
  • 命令中不要额外传入全局的fs.s3a.endpoint、fs.s3a.access.key、fs.s3a.secret.key配置,避免覆盖桶级独立配置
  • 如果S3服务使用自签名SSL证书,可额外给对应桶配置fs.s3a.bucket.<桶名>.ssl.experimental.no.cert.check=true跳过证书校验(仅测试环境使用)

内容的提问来源于stack exchange,提问作者Pravin rathore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 11:36:29