一、数据迁移背景
因公司技改,大数据集群要异地重建,因此涉及到数据要从旧的集群迁移到新的大数据集群中。此次涉及的数据量有几百T,由于公司内部人员没有接触过这么大的数据迁移工作,本人之前虽然做过集群迁移、数据迁移工作,但规模相对较小。鉴于此,公司决定将该部分工作外包出去。因此自己也没有过多的去关注。但不幸的是,数据迁移工作开始的前两周,都没和第三方洽谈好,最终这事又落到了本人头上。致命的是要求两周搞定。
二、数据迁移前期准备
接到该任务,先进行了工作划分,分成两大块:存量数据和增量数据。存量数据很好解决,新版本2.x支持快照数据备份。这种方式还是很高效的。自己先在测试环境进行了相关测试。先把坑排一排,还别说坑还真不少。最后自己写了几个脚本,实现了1000+张表的自动化迁移工作。这里涉及了几个关键的命令,这里奉上:
- 原始数据表进行快照 : snapshot ‘hbase_src_table_name’,‘HBase_src_table_name_snapshot’
- 通过快照对原始数据表进行备份 : clone_snapshot ‘HBase_src_table_name_snapshot’, ‘new_hbase_table_name’
- 对备份表进行major_compact合并 : major_compact ‘备份表名’
- 将表的快照进行迁移 :
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot
-snapshot HBase_src_table_name_snapshot
-copy-from hdfs://192.168.71.3:25000/hbase
-copy-to hdfs://192.168