在 CentOS 上选择 HBase 数据迁移工具
一、选择思路与场景匹配
二、常用工具对比
| 工具 | 适用场景 | 对线上影响 | 版本要求 | 典型优点 | 典型限制 |
|---|---|---|---|---|---|
| Export/Import | 跨版本、一次性迁移 | Scan 源表,有一定负载 | 较宽松 | 实现简单、可跨版本 | 速度一般、占用 MR/网络 |
| Snapshot/ExportSnapshot | 低影响离线迁移、集群间拷贝 | 基于快照,影响小 | 较宽松 | 高效、灵活、可做时间点迁移 | 需目标集群有相同表结构/权限 |
| Replication | 在线准实时同步 | 异步复制,低影响 | 需一致配置 | 持续同步、运维简单 | 非强一致、需开启复制范围 |
| DistCp | 历史表、可停写的大数据量 | 文件层拷贝,影响可控 | 要求高(版本一致) | 并发高、适合整库/整表 | 需停写或配合 BulkLoad,版本不一致易失败 |
| CopyTable | 小表、临时拷贝 | Scan+Put,影响中高 | 较宽松 | 使用简单 | 效率低、不适合大表/高并发 |
三、CentOS 上的快速决策
四、关键注意事项与命令示例
hbase snapshot 'src_tbl', 'snap1'hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot snap1 -copy-from hdfs://src-nn:8020/hbase -copy-to hdfs://dst-nn:8020/hbase -mappers 20 -bandwidth 20hbase org.apache.hadoop.hbase.snapshot.ImportSnapshot -snapshot snap1 -copy-to hdfs://dst-nn:8020/hbaseadd_peer 'peer1', 'zk1:2181:/hbase'alter 't', {NAME => 'f', REPLICATION_SCOPE => '1'}start_replication 'peer1'hadoop distcp -m 20 -bandwidth 50 hdfs://src-nn:8020/hbase/tableA hdfs://dst-nn:8020/tmp/tableAhbase org.apache.hadoop.hbase.mapreduce.HFileOutputFormat2 -D hbase.table.name=target_tbl /tmp/tableA /tmp/hfileshbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/hfiles target_tbl