在CentOS上进行HBase数据迁移可以采用以下几种方法:
export
命令把指定表的数据导出至HDFS。hbase(main):0> export 'table_name' 'column_family:column'
示例:hbase(main):0> export 'my_table' 'cf:col1,cf:col2'
hdfs dfs
命令将HDFS上的导出数据下载到本地目录。hbase(main):0> hdfs dfs -get /path/to/exported/data /local/path
importtsv
命令把本地路径中的数据导入至目标HBase表里。hbase(main):0> importtsv -Dimporttsv.separator=',' -Dimporttsv.columns="HBASE_ROW_KEY,cf:col1,cf:col2" /local/path/my_table.tsv my_table
hbase backup create
命令创建新的备份。hbase(main):0> hbase backup create 'backup_name'
hbase backup list
命令查看现有备份列表。hbase(main):0> hbase backup list
hbase backup restore
命令将备份恢复到目的集群。hbase(main):0> hbase backup restore 'backup_name'
hbase(main):0> add_peer 'peer_name', 'zk1:2181,zk2:2181,zk3:2181:/hbase-unsecure'
hbase(main):0> start_replication 'peer1'
hbase shell
命令监测复制的状态。hbase(main):0> status 'replication'
hbase(main):0 snapshot 'snapshot_name'
命令为表创建一个快照。hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot YourSnapshotName -copy-to hdfs://your-namenode:port/hbase_new
命令将快照导出到HDFS。hbase org.apache.hadoop.hbase.snapshot.ImportSnapshot -snapshot snapshot_name -copy-to /path/to/new/directory
可将快照恢复至新的目录。hadoop distcp -f filelist "hdfs://new_cluster_ip:9000/hbasetest" /destination/path
命令进行大规模数据迁移。在进行数据迁移之前,请务必备份当前数据,以防万一。