0


hbase跨集群复制CopyTable(集群一数据表复制到集群二)

一、集群信息

1、scr集群一:

  1. 192.168.90.9 master

** ** 192.168.90.231 slave1

** **192.168.90.186 slave2

2、des集群二:

  1. 192.168.90.109 master1
  2. 192.168.90.189 slave11
  3. 192.168.90.39 slave21

说明:(1)两个集群三个节点名称不能设置一致,若名称一致会访问本集群节点名称对应的ip;

  1. 2)在集群一/etc/hosts文件中添加集群二的节点信息。
  2. (3) 集群一和集群二可以正常通信。可在集群一各节点依次使用ping命令测试。

二、在集群运行的时候进行数据复制迁移

1、在集群一将需要复制迁移的表属性进行修改,hbase shell中操作:

(1)disable 'your_table'(如:disable ‘music’)

  1. disable music

(2)alter 'your_table', {NAME => 'family_name', REPLICATION_SCOPE => '1'}

  1. (如:alter 'music', {NAME => 'info', REPLICATION_SCOPE => '1'}
  1. alter 'music', {NAME => 'info', REPLICATION_SCOPE => '1'}

(3)enable 'your_table' (如:enable ‘music‘)

  1. enable music

2、打开des集群二的replication, hbase-site.xml添加以下信息后复制到hadoop/etc/hadoop目录下,同时各节点复制。

  1. <property>
  2. <name>hbase.replication</name>
  3. <value>true</value>
  4. </property>

hbase shell建表test,列族为info:

  1. create test’,’info
  1. create test’,’info

说明:各节点regionserver确保启动,如未启动,可手动启动:

  1. hbase-daemon.sh start regionserver

3、添加peer,在des集群二的hbase shell中执行:add_peer '1','old cluster ip:2181:/hbase'

如:

add_peer '1',CLUSTER_KEY=>'192.168.90.9,192.168.90.231,192.168.90.186:2181:/hbase'

  1. add_peer '1',CLUSTER_KEY=>'192.168.90.9, 192.168.90.231, 192.168.90.186:2181:/hbase'

4、从scr集群一中拷贝的数据到des集群二, scr集群一执行命令;

hbase org.apache.hadoop.hbase.mapreduce.CopyTable --starttime=1265875194289 --endtime=1265878794289 --peer.adr=server1,server2,server3:2181:/hbase TestTable

例1:hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=192.168.90.9, 192.168.90.231, 192.168.90.186:2181:2181:/hbase --new.name=test music

  1. hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=192.168.90.9, 192.168.90.231, 192.168.90.186:2181:2181:/hbase new.name=test music

说明:test是集群二中的表,music是集群一中的表。集群二hbase shell查看test表数据,成功复制迁移。

例2、集群多版本数据复制

集群2hbase shell执行:

create ‘testtime’,{NAME=>’StuInfo’,VERSIONS=>8},{NAME=’Grades’,VERSIONS=>8}

  1. create testtime’,{NAME=>’StuInfo’,VERSIONS=>8},{NAME=’Grades’,VERSIONS=>8}

集群1:hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=192.168.90.9, 192.168.90.231, 192.168.90.186:2181:2181:/hbase --starttime=2 --endtime=5 --versions=3 --new.name=testtime StudentInfo

  1. hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=192.168.90.9, 192.168.90.231, 192.168.90.186:2181:2181:/hbase --starttime=2 --endtime=5 --versions=3 --new.name=testtime StudentInfo

说明:此时未修改StudentInfo表中两个列族的REPLICATION_SCOPE属性,REPLICATION_SCOPE=>'0'。

集群2hbase shell执行:scan ‘testtime’,VERSIONS=>3

  1. scan testtime’,VERSIONS=>3


本文转载自: https://blog.csdn.net/lyang2007/article/details/143026569
版权归原作者 灿烂猎人 所有, 如有侵权,请联系我们删除。

“hbase跨集群复制CopyTable(集群一数据表复制到集群二)”的评论:

还没有评论