《CDP企业数据云平台从入门到实践》——HBase 迁移到 CDP(1) https://developer.aliyun.com/article/1226639?groupCode=ClouderaCDP
二、 HBase 迁移概览
1. 推荐的 HBase 迁移方案
将数据迁移到 CDP Private Cloud Base 部署时,必须使用 Apache HBase 复制和快照功能。
T0:设置 A 集群到 B 集群的 Replication,记录增量数据。
T1:A 集群生成快照,导出快照,获得 T1 时刻的全量数据。
T2:B 集群导入 T1 的全量快照,同时 T0 的 Replication 增量数据开始自动同步。
T3:Replication 增量数据逐渐消费完,业务面暂停写入。
T4:Replication 数据完全消费完,业务切换到 B 集群。
• 使用快照一次性导出/ExportSnapshot 到目的地/CloneSnapshot。
• 持续迁移:一次性方法+HBase Replication 设置。
2. 数据迁移先决条件
• 如果从 CDH 迁移,请在目标 CDP 集群中配置与现有 CDH 集群中的 HBase ACL对应的 Ranger ACL。
• 如果从 HDP 迁移,请在目标 CDP 集群中配置与现有 HDP 集群中的 HBase ACL或Ranger ACL 对应的 Ranger ACL。
• 迁移应用程序以使用新的 HBase-Spark Connector,因为 CDP 不再支持在 CDH或HDP 中使用的 Spark-HBase Connector。
• 查看从 HDP 2.x 或 CDH 5.x 升级到 CDP 时不推荐使用的 API 和不兼容(CDH6/HDP3 基本上没问题)。
• 确保升级前所有数据都迁移到支持的数据块编码类型。
• 确保手动升级任何外部的或第三方的协处理器,因为在升级期间它们不会自动升级。
3. HBase 数据迁移步骤
在迁移数据之前,必须在 CDP PvC Base 上创建一个 Apache HBase 集群。CDH 或HDP 集群是源集群,CDP PvC Base 集群是目标集群。
1) 在源集群和目标集群上部署 HBase Replication。
2) 通过对要在 HBase Shell 中复制的每个表运行以下命令,在源集群和目标集群上启用复制:
• 在源集群上
create 't1',{NAME=>'f1', REPLICATION_SCOPE=>1}
• 在目标集群上
create 't1',{NAME=>'f1', KEEP_DELETED_CELLS=>'true'}
注:建议在目标集群中的列族上启用 KEEP_DELETED_CELLS,其中源集群中的REPLICATION_SCOPE=1。
3) 在源集群的 HBase Shell 中运行 add_peer 命令,将目标集群添加为 peer:
add_peer 'ID', 'DESTINATION_CLUSTER_KEY'
注:可以从 Cloudera Manager(CM)访问的 HBase Master 用户界面获取
DESTINATION_CLUSTER_KEY 值。
4) 在源集群的 HBase Shell 中运行 disable_peer(“”)命令来禁用源集群中的 peer:
disable_peer("ID1")
5) 在 Cloudera Manager 中拍摄快照(UI/BDR/Hbase shell 命令行)。
6) 在源集群的 HBase Shell 中运行 ExportSnapshot 命令,将源集群的快照导出到
目标集群,必须以 HBase 用户或拥有文件的用户身份运行 ExportSnapshot 命令:
hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot
-copy-to hdfs://destination:hdfs_port/hbase -
mappers 16
注:必须在源集群和目标集群上启用快照。导出快照时,表的 HFile、日志和快照元
数据将从源集群复制到目标集群。
7) 在源集群的 HBase Shell 中运行 enable_peer(“”)以启用源集群和目标集群中的 peer:
enable_peer("ID1")
8) 在目标集群恢复快照:
restore_snapshot 'student_snapshot’
9) 后续增量数据会自动利用 replication 功能同步到目标集群中。
10) 数据同步完成后,需要将源端的 peer 给 disable 掉,这时数据就不再继续同步:
disable_peer("ID1")
4. HBase 数据迁移步骤(少量数据)
在源集群上运行 HashTable 命令,在目标集群上运行 SyncTable 命令,以验证表数据在源集群和目标集群之间是否同步:
• 在源集群上
HashTable [options]
• 在目标集群上
SyncTable [options]
《CDP企业数据云平台从入门到实践》——HBase 迁移到 CDP(3) https://developer.aliyun.com/article/1226634?groupCode=ClouderaCDP