在 CentOS 上实施 HBase 数据迁移的常用方案与步骤
一、方案速览与选择
| 方案 | 适用场景 | 核心命令或工具 | 优点 | 注意点 |
|---|---|---|---|---|
| Export/Import MapReduce | 一次性离线迁移、跨网络/跨集群 | hbase org.apache.hadoop.hbase.mapreduce.Export/Import | 实现简单、通用 | 导出/导入均为 MR 作业,时间与资源消耗较大 |
| Snapshot + ExportSnapshot | 离线迁移、对线上影响小、跨集群 | snapshot、hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot | 快照元数据拷贝快,实际数据通过 DistCp 并行拷贝,推荐 | 目标表需先建好相同结构;版本差异需评估 |
| Replication 复制 | 近实时/持续同步、零/少停机 | add_peer、alter ‘t’, {NAME=>‘f’, REPLICATION_SCOPE=>‘1’} | 持续同步、对源端影响可控 | 需开启复制;最终一致性,切换前需停写/校验 |
| Bulk Load(Export → HFile → LoadIncrementalHFiles) | 超大规模、追求导入性能 | Export + HFileOutputFormat2 + LoadIncrementalHFiles | 直接生成 HFile,导入极快、减少合并压力 | 需目标表预分区;依赖 MapReduce/正确 RowKey 设计 |
以上方案在业界被广泛采用,其中离线场景优先推荐基于Snapshot的迁移;近实时场景使用Replication;对导入性能敏感时使用Bulk Load。
二、标准步骤与命令示例
离线迁移方案一 Snapshot + ExportSnapshot(推荐)
离线迁移方案二 Export/Import MapReduce
近实时迁移 Replication
高性能导入 Bulk Load
三、迁移前后关键注意事项
以上步骤与注意事项可直接在 CentOS 环境的 HBase 集群上执行,按业务停机窗口与数据规模选择最合适的方案即可。