HBase 迁移到 CDP
一、 HBase 迁移方案介绍
HBase 表是基于 Hadoop HDFS 构建的,HBase 迁移有两个层面:
• 基于 Hadoop HDFS 的 Distcp 的迁移方式。
• 基于 HBase 表结构的 HBase 层面提供的相关工具进行迁移,包括 CopyTable、Export/Import、Snapshot、Replication。
1. Hadoop 层数据迁移方案
• Hadoop 层的数据迁移主要是 Distcp。
• 拷贝本质过程是 MR 任务,不过 Disctcp 只有 map,没有 reduce。
• 如果是独立的 MR 集群来执行 distcp,因为数据量很大,一般是按 region 目录粒度传输,同时传输到目标集群时,我们先把文件传到临时目录,最后再在目的集群上 load表。
• 关键点:在这个过程中,需要注意源端集群到目的端集群策略是通的,同时Hadoop/HBase 版本也要注意是否一致,如果版本不一致,最终 load 表时会报错。
示例:
2. HBase 层迁移方案比较
hadoopdistcp\-Dmapreduce.job.name=distcphbase\-Dyarn.resourcemanager.webapp.address=mrmaster-ip:8088\-Dyarn.resourcemanager.resourcetracker.address=mr-master-dns:8093\-Dyarn.resourcemanager.scheduler.address=mrmaster-dns:8091\-Dyarn.resourcemanager.address=mr-masterdns:8090\-Dmapreduce.jobhistory.done-dir=/history/done/\-Dmapreduce.jobhistory.intermediate-donedir=/history/log/\-Dfs.defaultFS=hdfs://hbase-fs/ \-Dfs.default.name=hdfs://hbase-fs/ \-bandwidth20\-m20\hdfs://src-hadoop-address:9000/region-hdfs-path \hdfs://dst-hadoop-address:9000/tmp/region-hdfspath
1) Distcp
• 方案类型:Hadoop 层,静态迁移方案。
• 应用场景:适合历史表和可以停止写表的场景迁移,源和目标的 hadoop/hbase版本一致。
• 特点:
本质是 DistCP。
数据量大时可以按 Region 目录粒度迁移数据。
要求源端和目标端集群网络是通的。
• 优点:开多线程并发来加速同步文件。
• 缺点:
文件层面的数据同步,不够灵活。
版本要求高,源端和目标端的 Hadoop/HBase 版本要一致。
2) copyTable
• 方案类型:Hbase 层,动态迁移方案。
• 应用场景:以表级别进行数据迁移,适用:表深度拷贝、集群间拷贝、增量备份、部分表备份。
• 特点:
涉及对原表 Scan,然后直接 put 到目标表,效率低。
这个工具实际上使用比较少,因为很难控制。
3) Export/import
• 方案类型:Hbase 层,动态迁移方案。
• 应用场景:支持不同版本数据的拷贝,同时它拷贝时先转换成文件,把文件同步到目标集群后再通过 Import 到线上表。
• 特点:类似 CopyTable,Scan 出数据放到文件,再把文件传输到目标集群做
Import。
4) Snapshot+Replication
• 方案类型:Hbase 层,动态迁移方案。
• 应用场景:利用快照技术,不是拷贝实际数据,效率高。
• 特点:比较常用,应用灵活,采用快照技术,效率比较高。
《CDP企业数据云平台从入门到实践》——HBase 迁移到 CDP(2) https://developer.aliyun.com/article/1226637?groupCode=ClouderaCDP