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

打印 上一主题 下一主题

主题 883|帖子 883|积分 2653

一、集群信息
1、scr集群一:
       192.168.90.9 master
       192.168.90.231 slave1
       192.168.90.186 slave2
2、des集群二:
       192.168.90.109 master1
       192.168.90.189 slave11
        192.168.90.39 slave21
说明:(1)两个集群三个节点名称不能设置一致,若名称一致会访问本集群节点名称对应的ip;
           (2)在集群一/etc/hosts文件中添加集群二的节点信息。
             (3)  集群一和集群二可以正常通讯。可在集群一各节点依次利用ping命令测试。

二、在集群运行的时间进行数据复制迁移
1、在集群一将需要复制迁移的表属性进行修改,hbase shell中操作:
(1)disable 'your_table'(如:disable ‘music’)
  1. disable ‘music’
复制代码
(2)alter 'your_table', {NAME => 'family_name', REPLICATION_SCOPE => '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:
        create ‘test’,’info’
  1.   create ‘test’,’info’
复制代码
说明:各节点regionserver确保启动,如未启动,可手动启动:
        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.109, 192.168.90.189, 192.168.90.39:2181:/hbase --new.name=test music
  1. hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=192.168.90.109,192.168.90.189,192.168.90.39: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.109, 192.168.90.189,192.168.90.39: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.109,192.168.90.189, 192.168.90.39: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
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

刘俊凯

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表