markdown HBase的(凤凰)集群迁移实践
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown HBase的(凤凰)集群迁移实践相关的知识,希望对你有一定的参考价值。
# HBase(Phoenix)集群迁移实践
以下步骤的分支是针对有使用`phoenix sql`来操作`hbase`的
## 1.给需要迁移的表创建Snapshot
```bash
#在hbase shell下
snapshot '表名','快照名'
# 可批量执行
echo "snapshot '表名','快照名';snapshot '表名','快照名';..." | hbase shell
```
这里写个例子,方便后面说明
```bash
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-nn`和`old-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的数据了
以上是关于markdown HBase的(凤凰)集群迁移实践的主要内容,如果未能解决你的问题,请参考以下文章
markdown HDFS不同集群迁移实践
HBase数据迁移实践操作篇
hbase 数据迁移
HBase跨版本数据迁移总结
markdown spring boot整合hbase最佳实践
zk集群数据迁移和恢复