知识库 : 如何配置UDH HBase Replication集群

Edit Document

 

 

 

 

 

 

 

 

 

如何配置UDH HBase Replication集群

 

 

作者 费英林


目录

1.               HBase 主从集群安装

1.1.               主集群安装

1.2.               从集群安装

2.               定义表结构

3.               定义 Replication Peer

4.               历史数据迁移

5.               验证

附:常用的 replication 命令

 

 

 

HBase Replication HBase 集群间的一种数据备份机制,主集群可将数据复制到一个或多个从集群。

 

1.     HBase 主从集群安装

1.1.     主集群安装

通过 UDH 安装 HBase 集群,打开 HBase 配置页面,点击 “自定义配置文件 : hbase-site.xml ,添加如下属性后重启服务:

 

QQ截图20150609160421.jpg

 

1.2.     从集群安装

    通过 UDH 安装 HBase 集群,打开 HBase 配置页面,点击 “高级” ,修改如下属性后重启服务:

 

QQ截图20150609161102.jpg

 

2.     定义表结构

HBase 主集群和从集群上创建相同的表结构,打开 Replication 模式。 Replication 是基于列族的备份机制。例如:

create ' t1 ', {NAME => ' colfam1 ', REPLICATION_SCOPE => 1}

t1 colfam1 列族数据将从主集群复制到从集群。主从集群上的表结构定义要完全一致。

3.     定义 Replication Peer

在主集群上打开 hbase shell ,添加 peer:

add_peer '1', "search6.yonyou.com,search7.yonyou.com,search8.yonyou.com:2181:/hbase"

其中:

         1 peer ID ,必须是一个 short 类型的整数;

         "search6.yonyou.com,search7.yonyou.com,search8.yonyou.com:2181:/hbase" 是从集群的连接串,定义为“从集群的 ZK 集群:从集群的 ZK 端口:从集群的 HBase ZK 节点(这个值要与前述画面中定义的值一致,必须是 /hbase )”

 

4.     历史数据迁移

如果在启用 Replication 之间 HBase 中的表中已经存在数据,这部分数据需要手动拷贝到从集群,可以使用 HBase 提供的 CopyTable 工具,下面是几个例子:

hbase org.apache.hadoop.hbase.mapreduce.CopyTable \

--peer.adr=search6.yonyou.com:2181:/hbase \

--families= colfam1 \

t1

以上命令是将表 t1 中列族 colfam1 的所有数据拷贝到从集群的 t1 表中。

 

hbase org.apache.hadoop.hbase.mapreduce.CopyTable \

--starttime=1 --endtime=1432037334102 \

--peer.adr=search6.yonyou.com:2181:/hbase \

--families= colfam1 \

t1

以上命令是将表 t1 中列族 colfam1 满足时间条件的所有数据拷贝到从集群的 t1 表中,其中 starttime 1 表示起始时间是 1 (最小值),结束时间是 1432037334102

 

hbase org.apache.hadoop.hbase.mapreduce.CopyTable \

--starttime= 1432038826918 --endtime= 1432522466099 \

--peer.adr=search6.yonyou.com:2181:/hbase \

--families= colfam1 \

t1

以上命令是将表 t1 中列族 colfam1 满足时间条件的所有数据拷贝到从集群的 t1 表中,其中起始时间是 1432038826918 ,结束时间是 1432522466099

 

5.     验证

在主集群中打开 HBase shell ,新增一条记录:

put ' t1 ', 'row 1 ', ' colfam1 ', 'value 1 '

 

在从集群中打开 HBase shell ,查询复制过来的数据:

get ' t1 ', 'row 1 '

 

附:常用的 replication 命令

add_peer <ID> <CLUSTER_KEY>

peer 添加命令

 

list_peers

列出本集群所有的 peer

 

enable_peer <ID>

启用之前禁用的 peer

 

disable_peer <ID>

禁用一个 peer

 

remove_peer <ID>

删除一个 peer

 

enable_table_replication <TABLE_NAME>

启用一个表中所有列族的 replication

 

disable_table_replication <TABLE_NAME>

禁用一个表中所有列族的 replication

 

Attachments:

技术分享-如何在UDH Search中配置中文分词.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
UDH Web框架简介.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
技术分享-几种数据采集技术的简介.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
技术分享-如何配置UDH HBase Replication集群.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
技术分享-如何配置UDH HBase Replication集群.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)