Cluster-A导出:
step1(导出到hdfs临时目录 /backup):
使用hbaseExport帮助: hbase org.apache.hadoop.hbase.mapreduce.Export help
正则rowKey前缀匹配导出: hbase --config /tmp/hbase-client-conf org.apache.hadoop.hbase.mapreduce.Export safeclound.tb_ammeter /backup/tb_ammeter 1 1531843200000 1532016000000 ^11611119,ELE_P,119,01,201904
step2(从hdfsget到本地磁盘):
hdfs dfs -get /backup/tb_ammmeter /root/export-backup
step3(scp到Cluster-B ):
scp /root/export-backup/tb_ammeter cluster.b:/root/import-backup
Cluster-B导入:
step1(将本地磁盘数据文件上传至hdfs):
hdfs dfs -put /root/export-backup/tb_ammeter /backup
step2(导入hbase表数据目录):
hbase org.apache.hadoop.hbase.mapreduce.Import safeclound.tb_ammeter /backup/tb_ammeter
注:
1. 前提条件,两个集群一定都要开启yarn资源调度服务,实际上都是通过MR任务export/import的;
2. 其中--config /tmp/hbase-client-conf参数表示可以临时指定hbase配置文件,默认可无需显示指定,因本人是使用的阿里云的EMR3.2(客户端配置存在bug),若不加--config直接使用配置将会报
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory 的错误,EMR3.2错误解决请参考 阿里EMR3.2 hbase/phoenix配置BUG
源码参考:org.apache.hadoop.hbase.mapreduce.Export 的rowKey的前缀匹配实现
网友评论