将 Kudu 数据迁移到 CDP

简介: 当您将 Kudu 数据从 CDH 迁移到 CDP 时,您必须使用 Kudu 备份工具来备份和恢复您的 Kudu 数据。

这是CDH/HDP/Apache Hadoop迁移到CDP系列之一,如对迁移感兴趣,请关注该系列之前博客《使用 Replication Manager 迁移到CDP 私有云基础》、《将数据迁移到CDP 私有云基础的数据迁移用例》、《将Hive数据迁移到CDP》。

了解如何将 Kudu数据从 CDH 迁移到 CDP

当您将 Kudu 数据从 CDH 迁移到 CDP 时,您必须使用 Kudu 备份工具来备份和恢复您的 Kudu 数据。

1.       使用 kudu-backup-tools.jar Kudu 备份工具备份 Kudu 中的所有数据。

2.       在旧集群中的新集群中手动应用任何自定义 Kudu 配置。

3.       将备份的数据复制到目标 CDP 集群。

4.       使用 Kudu 备份工具恢复备份 Kudu 数据。

1.  在 Kudu 中备份数据

您可以使用Kudu 备份工具kudu-backup-tools.jar 备份Kudu 中的所有数据。

Kudu 备份工具运行 Spark 作业,该作业会根据您指定的内容构建备份数据文件并将其写入 HDFS AWS S3。请注意,如果您要备份到 S3,则必须提供 S3 凭据以进行 spark-submit,如指定凭据以从 Spark 访问 S3 中所述

Kudu 备份工具在第一次运行时为您的数据创建完整备份。随后,该工具会创建增量备份。

重要的

增量备份和恢复功能仅适用于 CDH 6.3.0 及更高版本。因此,如果您有活动的摄取过程,例如 Spark 作业、Impala SQL 批处理或 Nifi Kudu 中插入或更新数据,您可能需要在开始完整备份之前暂停这些过程,以避免在开始 Kudu 备份过程后丢失数据更改.

运行以下命令以启动备份过程:

spark-submit --class org.apache.kudu.backup.KuduBackup <path to kudu-backup2_2.11-1.12.0.jar> \
--kuduMasterAddresses <addresses of Kudu masters> \
--rootPath <path to store the backed up data> \
<table_name>


在哪里

·         --kuduMasterAddresses用于将 Kudu 大师的地址指定为逗号分隔的列表。例如, master1-host,master-2-host,master-3-host哪些是 Kudu 大师的实际主机名。

·         --rootPath用于指定存储备份数据的路径。它接受任何 Spark 兼容的路径。

o HDFS 示例: hdfs:///kudu-backups

o AWS S3 示例: s3a://kudu-backup/

如果您正在备份到 S3 并看到线程“main”中的异常java.lang.IllegalArgumentException:路径必须是绝对的错误,请确保 S3 路径以正斜杠( /)结尾。

·         <table_name> 可以是要备份的表或表列表。

例子:

spark-submit --class org.apache.kudu.backup.KuduBackup /opt/cloudera/parcels/CDH-7.2.1-1.cdh7.2.1.p0.4041380/lib/kudu/kudu-backup2_2.11.jar \
--kuduMasterAddresses cluster-1.cluster_name.root.hwx.site,cluster-2.cluster_name.root.hwx.site \
--rootPath hdfs:///kudu-backups \


my_table

2. Kudu 数据恢复到新集群中

Kudu中备份数据后,您可以将数据复制到目标 CDP 集群,然后使用 Kudu备份工具将其恢复。

如果您在旧集群中应用了任何自定义 Kudu 配置,那么您必须手动在目标集群中应用这些配置。

如果您更改了的值tablet_history_max_age_sec并计划在目标集群上运行 Kudu 的增量备份,我们建议将其重置tablet_history_max_age_sec为默认值 1 周(请参阅https://issues.apache.org/jira/browse/KUDU-2677)。

常用修改配置标志的示例:

·         rpc_max_message_size

·         tablet_transaction_memory

·         rpc_service_queue_length

·         raft_heartbeat_interval

·         heartbeat_interval_ms

·         memory_limit_hard_bytes

·         block_cache_capacity_mb

手动应用自定义配置后,重新启动 Kudu 集群。

1.       通过以下方式之一将备份的数据复制到目标 CDP 集群:

o 使用 distcp

sudo -u hdfs hadoop distcp hdfs:///kudu/kudu-backups/* hdfs://cluster-2.cluster_name.root.hwx.site/kudu/kudu-backups/

o 使用复制管理器。有关更多信息,请参阅HDFS 复制

2.       运行以下命令在目标集群上恢复备份:

spark-submit --class org.apache.kudu.backup.KuduRestore <path to kudu-backup2_2.11-1.12.0.jar> \
--kuduMasterAddresses <addresses of Kudu masters> \
--rootPath <path to the stored backed up data> \
<table_name>

在哪里

o --kuduMasterAddresses用于将 Kudu 大师的地址指定为逗号分隔的列表。例如,master1-host,master-2-host,master-3-host 哪些是 Kudu 大师的实际主机名。

o --rootPath 用于指定存储备份数据的路径。它接受任何与 Spark 兼容的路径。

§  HDFS 示例: hdfs:///kudu-backups

§  AWS S3 示例: s3a://kudu-backup/

如果您已备份到 S3 并看到线程“main”中的异常java.lang.IllegalArgumentException:路径必须是绝对的错误,请确保 S3 路径以正斜杠( /)结尾。

o <table_name> 可以是要备份的表或表列表。

o 可选:--tableSuffix,如果设置,添加到恢复的表名就足够了。它只能在 createTables属性为时使用 true

o 可选:--timestampMs是以毫秒为单位的 UNIX 时间戳,它定义了选择还原候选者时要使用的最晚时间。其默认值为 System.currentTimeMillis()

sudo -u hdfs spark-submit --class org.apache.kudu.backup.KuduRestore /opt/cloudera/parcels/CDH-7.2.0-1.cdh7.2.0.p0.3758356/lib/kudu/kudu-backup2_2.11.jar \
--kuduMasterAddresses cluster-1.cluster_name.root.hwx.site \
--rootPath hdfs:///kudu/kudu-backups \


my_table

3.       Cloudera Manager 中重启 Kudu 服务。

原文链接:https://docs.cloudera.com/cdp-private-cloud-upgrade/latest/data-migration/topics/cdp-data-migration-kudu.html

 

相关文章
|
6月前
|
消息中间件 监控 数据挖掘
NineData:从Kafka到ClickHouse的数据同步解决方案
NineData 提供了强大的数据转换和映射功能,以解决 Kafka 和 ClickHouse 之间的格式和结构差异,确保数据在同步过程中的一致性和准确性。
270 2
NineData:从Kafka到ClickHouse的数据同步解决方案
|
SQL Oracle 关系型数据库
Flink CDC 系列 - 同步 MySQL 分库分表,构建 Iceberg 实时数据湖
本篇教程将展示如何使用 Flink CDC 构建实时数据湖,并处理分库分表合并同步的场景。
Flink CDC 系列 - 同步 MySQL 分库分表,构建 Iceberg 实时数据湖
|
3月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之Oracle数据库是集群部署的,怎么进行数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之两个数据表是否可以同时进行双向的数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
Oracle 关系型数据库 分布式数据库
实时计算 Flink版产品使用问题之怎么实现跨多个DRDS的数据同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
分布式计算 DataWorks 监控
MaxCompute产品使用问题之如何将MaxCompute中的数据同步到ClickHouse的分区表中
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
分布式计算 关系型数据库 OLAP
阿里云AnalyticDB基于Flink CDC+Hudi实现多表全增量入湖实践
阿里云AnalyticDB基于Flink CDC+Hudi实现多表全增量入湖实践
178 0
|
11月前
|
数据库连接 数据库 流计算
Flink CDC 是一个用于实时数据同步的组件
Flink CDC 是一个用于实时数据同步的组件
76 0
|
分布式计算 关系型数据库 MySQL
【湖仓一体】阿里云AnalyticDB MySQL基于Flink CDC+Hudi实现多表全增量入湖实践
湖仓一体(LakeHouse)是大数据领域的重要发展方向,提供了流批一体和湖仓结合的新场景。阿里云AnalyticDB for MySQL基于 Apache Hudi 构建了新一代的湖仓平台,提供日志、CDC等多种数据源一键入湖,在离线计算引擎融合分析等能力。本文将主要介绍AnalyticDB for MySQL基于Apache Hudi实现多表CDC全增量入湖的经验与实践。
|
SQL 资源调度 分布式计算
《CDP企业数据云平台从入门到实践》——Hive 迁移到 CDP(4)
《CDP企业数据云平台从入门到实践》——Hive 迁移到 CDP(4)
133 0