Hadoop

Hbase增量导入导出

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

参考文献1

源码参考:org.apache.hadoop.hbase.mapreduce.Export 的rowKey的前缀匹配实现

留言

您的电子邮箱地址不会被公开。