我爱编程

HBase(Phoenix)集群迁移实践

2018-01-29  本文已影响0人  阿川CH

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的数据了

上一篇下一篇

猜你喜欢

热点阅读