欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Hbase使用CopyTable进行数据复制和迁移

时间:2023-04-21

        最近有一个需求,是将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。

常用选项说明如下:

startrow:开始行。stoprow:停止行。starttime:开始时间(以毫秒为单位的unixtime)。若未指定endtime意味着从开始时间到永久。endtime:结束时间。如果未指定starttime,则忽略。versions:要复制的单元格版本数。new.name:新表的名称。peer.adr:目标集群的地址,格式为hbase.zookeeer.quorum:hbase.zookeeper.client.port:zookeeper.znode.paren,对于CloudTable集群而言就是“${CloudTable目标集群的“ZK链接地址”}:/hbase”。families:要复制的列族列表,多个列族之间以逗号分隔。

如果要从sourceCfName复制到destCfName,请指定为sourceCfName:destCfName。

如果复制后列族名称保持不变,只需指定cfName。

all.cells:对删除标记和已删除的单元格也进行复制。

参数说明如下:

tablename:要复制的表的名称。

参考文档:使用CopyTable工具导入数据_表格存储服务 CloudTable_用户指南_集群模式_数据批量导入_华为云

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。