【FusionInsight 迁移】HBase从C50迁移到6.5.1(01)迁移概述
- HBase从C50迁移到6.5.1(01)迁移概述
- 迁移范围
- 迁移前的准备
- HDFS文件检查
- 确认HBase迁移目录
- 确保数据落盘
- 停止老集群HBase服务
- 停止新集群HBase服务
HBase从C50迁移到6.5.1(01)迁移概述
项目上最近全新部署了FusionInsight HD 6.5.1大数据集群,并且希望将老集群FusinInsight HD C50的所有业务都迁移到新集群上。由于在老集群C50上的HDFS、HBase中存在有大量的业务数据,因此将业务从C50迁移到6.5.1的过程中,就需要将C50上的业务数据同步迁移到新集群6.5.1上。
迁移范围
- 迁移方向
- 从老集群FusinInsight HD C50迁移数据到新集群FusionInsight HD 6.5.1。
- 迁移场景
- 生产实施,HDFS、HBase数据迁移。
- 迁移方式
- 离线迁移
- 影响范围
- 离线数据迁移,需要完成所有存量数据的迁移,迁移完成后做数据验证及业务切换。
迁移前的准备
在做数据迁移前需要做一些必要的准备工作。
使用admin用户登录到需要迁移数据的老集群FusinInsight C50的Manager。
登录成功后进入到Manager的主界面。
HDFS文件检查
在HDFS服务的status界面查看是否有missing block。
如果存在missing block,则需要登录集群客户端,执行命令:
hdfs fsck /
查看并分析具体的原因。
确认HBase迁移目录
迁移前还需要确认需要迁移的具体目录,可以通过HDFS Web UI进行查看。
以及:
各个目录的说明如下:
路径 | 说明 |
---|---|
/hbase/.tmp | 当对表做创建或者删除操作的时候,会将表move到该tmp目录下,然后再去做处理操作。 |
/hbase/WALs | 被HLog实例管理的WAL文件。 对于每个HregionServer,日志目录中都包含一个对应的子目录 在每个子目录下有多个HLog文件(因为日志滚动)。 |
/hbase/archive | 存储表的归档和快照,HBase在做Split或者compact操作完成之后,会将HFile移到archive目录中,然后将之前的HFile删除掉,该目录由HMaster上的一个定时任务定期去清理。存储表的归档和快照具体目录:/hbase/archive/data/default/表名/region名/列族名/fd2221d8d1ae4e579c21882f0ec4c5a5 |
/hbase/corrupt | 损坏的日志文件,一般为空。 |
/hbase/data | HBase存储数据的核心目录。 |
/hbase/data/default | 该目录存储所有用户数据表/hbase/data/default/表名。 |
/hbase/data/hbase | 该目录存储了存储了HBase的namespace、meta和acl三个系统级表。 - /hbase/data/hbase/namespace namespace中存储了HBase中的所有namespace信息,包括预置的hbase和default。 - /hbase/data/hbase/meta meta表存储了所有Region信息的列表 - /hbase/data/hbase/acl acl则是表的用户权限控制 |
/hbase/hbase.id | 集群的唯一ID。 |
/hbase/hbase.version | 集群的文件格式版本信息。 |
/hbase/oldWALs | 当/hbase/WALs中的HLog文件被持久化到存储文件中,不再需要日志文件时,它们会被移动到/hbase/oldWALs目录。 |
由于迁移过程只需要迁移HBase的数据,因此只需要迁移/hbase/data目录即可。
确保数据落盘
在数据迁移前,需要确保老集群FusinInsight HD C50上的HBase的所有表的数据已全部落入磁盘。
可以通过客户端,进入hbase shell客户端,对HBase的所有表都进行flush操作:
flush tablename
或者通过hdfs命令检查/hbase/WALs目录为空,或者大小为0:
hdfs dfs -du -h /hbase
停止老集群HBase服务
在迁移过程中,为了保证数据的完整性、一致性,防止因增量数据的产生而导致HDFS目录结构的变化,需要确保老集群FusinInsight HD C50上的HBase服务处于停止状态,因此,迁移时间点应该选在无业务数据产生的时间段。
停止新集群HBase服务
因为数据迁移会覆盖新集群FusinInsight HD 6.5.1上的HBase的数据,因此需要确保新集群的HBase的所有数据可删除、可覆盖,并且同样需要停止HBase服务。
使用admin用户登录到新集群FusinInsight HD 6.5.1的Manager,并在HBase服务界面,点击停止按钮停止HBase服务。
HBase服务停止后,点击完成按钮。
如果新集群中的HBase已经有数据,或者数据比较重要,也可以备份一下原有数据。
hdfs dfs -cp /hbase /hbase_bak
hdfs dfs -ls /hbase
备份完成后的文件如下:
至此,迁移前的准备工作就完成了,接下来就可以实施迁移工作。