温馨提示×

Ubuntu Hadoop 数据迁移方法有哪些

小樊
37
2026-01-03 10:31:53
栏目: 智能运维

Ubuntu Hadoop 数据迁移方法概览

Ubuntu 上的 Hadoop 环境中,数据迁移可按场景分为以下几类:HDFS 同/跨集群拷贝、HDFS 与本地/对象存储互传、关系型数据库与 HDFS/Hive 的导入导出、HBase 表级迁移,以及 HDFS 内部重命名/移动。下面给出常用方法与关键要点。

常用方法一览

方法 典型场景 关键命令或工具 主要优点 注意点
Hadoop DistCp 同版本或不同版本 HDFS 之间迁移、跨集群迁移 hadoop distcp [options] 分布式并行、可限速、可保留属性、适合大规模 版本差异选 webhdfs/hftp;大目录分批;注意权限与一致性
HDFS 本地/对象存储互传 HDFS ↔ 本地、COS 等对象存储 hadoop distcp hdfs://… file:///… 或 cosn://… 统一用 DistCp,操作简单 对象存储需对应 Connector 与权限配置
关系型数据库 ↔ HDFS/Hive(Sqoop) MySQLHDFS/Hive 全量/增量导入 sqoop import/export 生态成熟、上手快 JDBC 驱动版本匹配;Hive 配置与权限;可用 --incremental
HBase 表级迁移(Export/Import) HBase 表数据迁移/恢复 hbase org.apache.hadoop.hbase.mapreduce.Export/Import 表级一致性好、可分批 依赖 MR;按时间/范围切分;目标表结构需兼容
HDFS 内部 mv/cp 同集群内重命名或目录移动 hadoop fs -mv/-cp 轻量、快速 跨文件系统不支持;大数据量移动仍建议用 DistCp

关键命令示例

  • DistCp 同版本集群拷贝
    • hadoop distcp hdfs://nn1:8020/data hdfs://nn2:8020/data
  • DistCp 跨版本或跨集群(HTTP 接口)
    • hadoop distcp webhdfs://src-nn:50070/user/src hdfs://dst-nn:8020/user/dst
  • DistCp 限速与并发
    • hadoop distcp -m 50 -bandwidth 100 hdfs://src /hdfs/dst(并发 50,单 Map 带宽 100 MB/s
  • DistCp 增量同步
    • hadoop distcp -update -delete hdfs://src /hdfs/dst(仅传差异;谨慎使用 -delete)
  • HDFS 与本地/对象存储
    • 到本地:hadoop distcp hdfs://nn:8020/data file:///data/backup
    • 到对象存储(以 COS 为例):hadoop distcp hdfs://nn:8020/data cosn://bucket/backup
  • Sqoop MySQL → HDFS
    • sqoop import --connect jdbc:mysql://127.0.0.1:3306/db --table t --target-dir /user/hive/warehouse/t -m 1
  • Sqoop MySQL → Hive
    • sqoop import --connect jdbc:mysql://127.0.0.1:3306/db --table t --hive-import -m 1
  • HBase 表级迁移
    • 导出:sudo -u hdfs hbase org.apache.hadoop.hbase.mapreduce.Export t /backup/t 1 0
    • 导入:sudo -u hdfs hbase org.apache.hadoop.hbase.mapreduce.Import t /backup/t
  • HDFS 内部移动
    • hadoop fs -mv /user/hadoop/file.txt /user/hadoop/archive/file.txt

迁移实施要点

  • 评估与规划
    • 用 hdfs dfs -du -h /path 评估数据量与目录结构;按业务分目录、分批迁移,优先选择业务低峰时段执行。
  • 带宽与性能
    • 通过 -m 提升并发、用 -bandwidth 限制单 Map 带宽;先做 100GB/500GB/1TB 试跑评估速率与问题。
  • 一致性与容错
    • 全量后做增量:优先用 -update;如需严格一致可配合 -delete;任务失败可清理目标脏数据后重跑;必要时用 -i 忽略失败文件。
  • 权限与属性
    • 用 -p 保留用户/组/权限/校验和/ACL/XATTR 等;若未保留,迁移后用 chown/chmod 修正。
  • 版本与安全
    • 版本差异较大时使用 webhdfs/hftp;跨集群启用 Kerberos 时需完成认证与权限打通(如 principal/keytab 配置)。

0