在 CentOS 上实现 HBase 数据导入导出的常用方法
一、前置准备与通用检查
二、方法一 Export/Import MapReduce 工具(通用、跨版本友好)
hbase org.apache.hadoop.hbase.mapreduce.Export <table_name> <hdfs_export_path>hbase org.apache.hadoop.hbase.mapreduce.Export user /backup/hbase/export/userhdfs dfs -cp <src> <dst>hdfs dfs -get <src> - | hdfs dfs -put - <dst>(或 distcp)hbase org.apache.hadoop.hbase.mapreduce.Import <table_name> <hdfs_export_path>hbase org.apache.hadoop.hbase.mapreduce.Import user /backup/hbase/export/userhbase shell 中执行 count '<table_name>'、scan '<table_name>', {LIMIT => 10} 等。三、方法二 快照 Snapshot + 克隆 Clone/ExportSnapshot(轻量、快速)
snapshot '<table_name>', '<snapshot_name>'snapshot 'user', 'snap_20251219'clone_snapshot '<snapshot_name>', '<new_table_name>'hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot <snapshot_name> -copy-from <src_hdfs> -copy-to <dst_hdfs>hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot <snapshot_name> -copy-from <dst_hdfs> -copy-to <dst_hdfs>,随后 clone_snapshot 或直接切换到新表。四、方法三 Bulk Load 批量导入(海量数据、性能最佳)
hbase org.apache.hadoop.hbase.mapreduce.Export <table_name> <hdfs_export_path>hbase org.apache.hadoop.hbase.mapreduce.HFileOutputFormat2 \
-D mapreduce.job.output.key.class=org.apache.hadoop.hbase.KeyValue \
-D mapreduce.job.output.value.class=org.apache.hadoop.hbase.KeyValue \
-D hbase.table.name=<target_table> \
<hdfs_export_path> <hdfs_hfiles_path>
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles <hdfs_hfiles_path> <target_table>count、scan 抽样、Region 均衡情况。五、方法四 实时同步 Replication(持续复制、近实时)
hbase.replication=trueadd_peer 'peer1', 'zk1:2181:/hbase', 'zk2:2181:/hbase'
start_replication 'peer1'
六、方法选择建议与常见问题