您可以将 Apache HBase 工作负载从 CDH 和 HDP 迁移到 CDP。要成功迁移 Apache HBase 工作负载,您必须首先了解两个平台之间的数据管理差异,并准备好源数据以与目标 CDP 平台兼容。
迁移您的工作负载意味着将您的数据迁移到 CDP 并使您的应用程序访问 CDP 中的数据。
将数据迁移到CDP 私有云基础部署时,您必须使用 Apache HBase 复制和快照功能以及 HashTable/SyncTable 工具。
将数据迁移到 CDP 公共云部署时,您必须使用安装脚本来配置源集群和目标集群之间的复制,以及 Apache HBase 快照功能和 HashTable/SyncTable 工具。安装脚本可帮助您在将数据迁移到公共云时克服复杂的安全挑战,并帮助您使用命令行工具设置复制。
使用 Apache HBase 复制和快照功能可确保您不会面临任何数据迁移瓶颈,即使您的源集群中有大量数据。HashTable/SyncTable 工具确保迁移到目标集群的数据与您的源集群同步,并让您验证迁移是否成功。
准备数据迁移
在开始从 CDH 5.x 或 HDP 2.x 到 CDP 的数据迁移之前,您必须了解有关 CDH/HDP 和 CDP 的要求并完成某些任务以确保成功迁移。
如果您是从 CDH 迁移,请在 CDP 中配置 Ranger ACL,对应于现有 CDH 集群中的 HBase ACL。
如果要从 HDP 迁移,请执行以下步骤:
在 CDP 中配置与现有 HDP 集群中的 HBase 或 Ranger ACL 相对应的 Ranger ACL。
有关更多信息,请参阅配置基于资源的服务:HBase。
迁移您的应用程序以使用新的 HBase-Spark 连接器,因为 CDP 不再支持您在 CDH 或 HDP 中使用的 Spark-HBase 连接器。
有关更多信息,请参阅使用 HBase-Spark 连接器。
从 HDP 2.x 或 CDH 5.x 升级到 CDP 时查看已弃用的 API 和不兼容性。
有关更多信息,请参阅Apache HBase 中的弃用通知。
确保在升级前所有数据都已迁移到支持的编码类型。
有关更多信息,请参阅删除 PREFIX_TREE 数据块编码。
确保手动升级任何外部协处理器,因为它们不会在升级过程中自动升级。
在升级之前,请确保您的协处理器类与 CDP 兼容。有关更多信息,请参阅检查协处理器类。
将数据从 CDH 或 HDP 迁移到CDP 私有云基础版
在迁移数据之前,您必须在 CDP 数据中心上创建一个 Apache HBase 集群。您的 CDH 或 HDP 集群是您的源集群,您的CDP 私有云基础 集群是您的目标集群。
在源集群和目标集群上部署 HBase 复制。
有关说明,请参阅部署 HBase 复制。
通过在 HBase Shell 中运行以下命令,在源集群和目标集群上启用复制。
在源集群上
在目标集群上
笔记
Cloudera 建议在源集群KEEP_DELETED_CELLS中的目标集群中启用列族 REPLICATION_SCOPE=1。
add_peer在源集群的 HBase Shell 中运行该命令,将目标集群添加为对等体。
您可以DESTINATION_CLUSTER_KEY从可以使用 Cloudera Manager 访问的 HBase Master 用户界面中获取该值。
disable_peer ("")在源集群的HBase Shell中运行命令关闭源集群中的peer
disable_peer("ID1")
这会停止与对等方的复制,但会保留日志以供将来参考。
在 Cloudera Manager 中拍摄快照。
选择HBase 服务。
单击表浏览器 选项卡。
单击一个表。
单击拍摄快照。
指定快照的名称,然后单击Take Snapshot。
ExportSnapshot在源集群的 HBase Shell 中运行该命令,将快照从源集群导出到目标集群。您必须以hbase用户或拥有文件的用户身份运行 ExportSnapshot 命令。
该ExportSnapshot工具执行类似于distcp将文件复制到另一个集群的 MapReduce 作业 。ExportSnapshot在文件系统级别工作,因此 HBase 集群可以离线。
这里,目的地(hdfs://destination:hdfs_port/hbase)是目的地CDP 私有云基础 集群。将 HDFS 服务器路径和端口替换为您用于集群的路径和端口。
重要
必须在源集群和目标集群上启用快照。导出快照时,表的 HFile、日志和快照元数据会从源集群复制到目标集群。
在源集群上的 HBase Shell 中运行 以启用源集群和目标集群中的对等体。
在源集群上的 HBase Shell 中运行此命令以启用源集群和目标集群中的对等体
enable_peer("ID1")
在源集群上运行HashTable命令,在目的集群上运行SyncTable命令来同步源集群和目的集群之间的表数据。
在源集群上
在目标集群上
有关使用 HashTable 和 SyncTable 的更多信息和示例,请参阅 使用 HashTable 和 SyncTable 工具。
验证和验证您的数据是否已迁移
您可以使用带有 --dryrun 参数的 SyncTable 命令来验证表在源集群和目标集群之间是否同步。SyncTable --dryrun 选项使 SyncTable 命令的这次运行成为只读。
将此命令用于从远程源集群到目标数据中心集群上的目标tableB的tableA 的试运行 SyncTable 。
在目标数据中心集群的 HBase Shell 中运行此命令
领取专属 10元无门槛券
私享最新 技术干货