前言
hadoop集群(应该说hadoop生态系统,现在spark、storm、kafka这些都包含在一起)迁移是很很多公司都很难避免的一个场景,个人理解,集群迁移主要分三方面:集群环境搭建、数据迁移、服务迁移。
新集群的搭建,不管是CDH或者是APACHE的版本,已经属于基本功范畴。
服务迁移又和具体的公司业务十分相关,这点应该是最麻烦的一点,需要和各个负责人确认。
数据迁移也是比较重要的一环,一般和数据比较相关的组件包括但不限于:hdfs、hbase、impala/hive、zookeeper、kafka。
下面将主要考虑impala的迁移,impala的迁移和hdfs最相关,因此两者在一起介绍。
迁移介绍
迁移场景
1.hadoop新老集群之间的迁移,由资源紧张或者配置较低的老集群向新集群迁移。
2.迁移需要数天或者数周才能完成。(需要测试新集群的稳定性,以及业务是否能正常运行)
3.本文暂不考虑各种应用以及服务,只考虑hdfs和impala的数据迁移。
迁移方案
impala集群迁移主要有两部分内容:
1.hdfs中的数据
2.impala中所有表和分区
全量迁移
在某一个时间点将现有的数据统一迁移一次,该阶段主要包括:
1.hdfs数据迁移
2.impala数据库、数据表、分区的建立
增量迁移
在进行全量迁移到新老集群完全迁移完成之前,定时进行增量迁移,可以考虑以一天为单位。
1.hdfs数据的增量迁移,相应目录的增量迁移。
2.impala分区增量添加。
HDFS迁移
hive和impala大都会在hdfs上建外部表,因此需要先迁移hdfs相应数据。
hdfs的迁移主要使用distcp,写起来很简单啦,该命令