美文网首页玩转大数据程序员我爱编程
【HBase 运维】不停服务迁移方案汇总

【HBase 运维】不停服务迁移方案汇总

作者: hPp7mn | 来源:发表于2017-12-08 13:01 被阅读426次

    迁移对于运维来说,是家常便饭,不停服迁移是对DBA的考验,下面混总了目前了解到迁移方案:

    • 利用replication 和 snapshot 完成数据迁移, 业务自动切换

    步骤:

    1. 建立两个集群的replication,主从(待迁移集群----> 新集群)

    2. 在新集群新建跟老集群一样的表, 并开始同步

    3. 暂停同步, 利用snapshot , 将老集群的表做一份快照, 例如表A
      (1)list_snapshots
      (2)snapshot 'A', 'A_snapshot'
      (3)hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot A_snapshot -copy-to hdfs://新集群:8020/hbase -mappers 16
      完成之后, 在新集群导入snaphsot
      (1)disable ‘A'
      (2)restore_snapshot ‘A_snapshot’
      (3)enable ‘A'

    4. 继续同步, 完成迁移, 业务选时间迁移

    • 利用bulkload

    在老集群新建一个表, 切流量, 利用bulkload 补数据

    基本思路就是首先拷贝并复制snapshot到目的集群,然后开启两个集群间的数据实时同步,最后,将创建snapshot到开启数据同步之间的数据通过MR任务拷贝。

    以表test_table为例:

    1、添加原集群到目标集群的replication关系,并在目标集群中建立与原集群相同的表;

    2、通过snapshot把历史数据导入到从集群:
    在原集群执行以下指令:
    a、list_snapshots
    b、snapshot ‘test_table’, ‘test_table_snapshot'
    c、bin/hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot test_table_snapshot -copy-to hdfs://yourdestination:9100/hbase -mappers 16
    在目标集群执行以下指令:
    a、disable ‘test_table'
    b、restore_snapshot ‘test_table_snapshot’
    c、enable 'test_table'

    3、开启原表的replication
    原集群执行:
    alter ‘test_table’,{NAME=>’f’,REPLICATION_SCOP=>’1’}

    4、通过Export工具把快照和开启replication之间的数据导入到从表;
    在原集群执行以下指令:
    bin/hbase org.apache.hadoop.hbase.mapreduce.Export test_table hdfs://yourdestination:9100/import/test_table 1 1445961600000 1446048000000
    1:指定了版本数,与线上一致
    1445875200000 1445961600000:指定了起始时间戳
    在目标集群执行以下指令:
    bin/hbase org.apache.hadoop.hbase.mapreduce.Import test_table hdfs://yourdestination:9100/import/test_table

    注意事项:
    1、路径hdfs://yourdestination:9100/,端口是hdfs对外服务的端口,在hdfs-site.xml中配置,yourdestination是你目的集群中active namenode的主机名

    相关文章

      网友评论

        本文标题:【HBase 运维】不停服务迁移方案汇总

        本文链接:https://www.haomeiwen.com/subject/nzreixtx.html