美文网首页我爱编程
HBase(Phoenix)集群迁移实践

HBase(Phoenix)集群迁移实践

作者: 阿川CH | 来源:发表于2018-01-29 17:54 被阅读0次

    HBase(Phoenix)集群迁移实践

    以下步骤的分支是针对有使用phoenix sql来操作hbase

    1.给需要迁移的表创建Snapshot

    #在hbase shell下
    snapshot '表名','快照名'
    
    # 可批量执行
    echo "snapshot '表名','快照名';snapshot '表名','快照名';..." | hbase shell
    

    这里写个例子,方便后面说明

    echo "snapshot 'tableA','20180125.tableA'" | hbase shell
    

    1.x 创建phonenix元数据的表快照

    hbase(main):001:0> list 'SYSTEM.*'
    TABLE                                                                                                                                                                                                    
    SYSTEM.CATALOG                                                                                                                                                                                           
    SYSTEM.FUNCTION                                                                                                                                                                                          
    SYSTEM.MUTEX                                                                                                                                                                                             
    SYSTEM.SEQUENCE                                                                                                                                                                                          
    SYSTEM.STATS
    

    创建SYSTEM.前缀的表快照

    2.将快照数据从旧集群迁移到新集群

    hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 快照名 -copy-to hdfs://new-nn/hbase -copy-from hdfs://old-nn/hbase
    

    new-nnold-nn是两个集群上active namenode的IP,
    当然也可以用host的方式来代替IP,但需保证主动方集群(谁调用的这条命令)中所有节点能解析出IP。
    如果hdfs的端口不是默认的,则还需加上端口
    -copy-to是目录集群的hbase主目录, -copy-from是源集群的hbase主目录。
    /hbase这个路径是hbase默认的主目录,如果被修改,则这部分也需同步调整
    需要保证新旧集群中的所有节点能够相互连的通,这个命令的本质是一个MR任务

    举例

    hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 20180125.tableA -copy-to hdfs://new-nn/hbase -copy-from hdfs://old-nn/hbase
    

    3.在新集群上恢复快照数据

    在hbase shell下执行

    #此时能够查的到旧集群上的快照名
    list_snapshots
    
    #如果表不存在,可省略disable和enable步骤
    disable '快照的主体表'
    restore_snapshot '快照名'
    enable '快照的主体表'
    

    举例

    disable 'tableA'
    restore_snapshot '20180125.tableA'
    enable 'tableA'
    

    3.x 在也恢复phonix的相关快照数据后,就可以在phonix中查到hbase的数据了

    相关文章

      网友评论

        本文标题:HBase(Phoenix)集群迁移实践

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