最近有一个需求,是将Hbase表中的数据复制到另一张表中,因为Hbase的数据比较多,通过java程序读出来然后再向数据库中插入的话,是不太现实了,只能寻找另外的工具,搜了一下原来Hbase自身就提供了相应的组件,那就是 CopyTable。
简单的记录一下使用过程
1、创建两张表
create 'test01' ,'name'
create 'test02' ,'name'
2、向表中插入数据
put 'test01' , '001','name:n' ,'xiaoming'
put 'test01' , '002','name:n' ,'tom'
3、查询一下
4、进行复制
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --startrow=000 --stoprow=999 --new.name=test02 --families=name test01
CopyTable命令简介
CopyTable的命令格式如下:
CopyTable [general options] [--starttime=X] [--endtime=Y] [--new.name=NEW] [--peer.adr=ADR]
有关上述CopyTable命令的详细信息,请参见Hbase官方文档中的CopyTable。
常用选项说明如下:
如果要从sourceCfName复制到destCfName,请指定为sourceCfName:destCfName。
如果复制后列族名称保持不变,只需指定cfName。
参数说明如下:
tablename:要复制的表的名称。
参考文档:使用CopyTable工具导入数据_表格存储服务 CloudTable_用户指南_集群模式_数据批量导入_华为云



