E-MapReduce(简称EMR)支持将您本地自建的Kudu集群迁移至EMR上。本文为您介绍如何迁移自建Kudu集群的数据到E-MapReduce上的Hadoop集群。
前提条件
- 您已自建Kudu集群。
- 已创建E-MapReduce的Hadoop集群,并选择了Kudu服务,详情请参见创建集群。
背景信息
EMR Kudu支持社区1.10以及1.11版本,可以使用社区提供的Backup和Restore的工具进行数据的迁移。基本流程示意图如下所示。
操作步骤
- 执行以下命令,查看待迁移Kudu表的名称列表。
Kudu table list {YourKuduMasterAddress}
说明 本文代码示例中的{YourKuduMasterAddress}
为kudu集群的内网IP地址,多个IP地址之间使用英文逗号(,)隔开。
- 使用Kudu Backup工具备份现有的Kudu集群表。
默认的Kudu Backup可以根据现有Backup信息来执行增量或者全量备份。
- 使用OSS作为中间存储
spark-submit --class org.apache.kudu.backup.KuduBackup kudu-backup2_2.11-1.10.0.jar \
--kuduMasterAddresses master1-host,master-2-host,master-3-host \
--rootPath oss://{your_BucketName}/kudu-backups {YourTableList}
说明 本文代码示例中的{your_BucketName}
为您OSS Bucket的名称,{YourTableList}
为您需要备份的Kudu表的列表。
- 使用HDFS作为中间存储
spark-submit --class org.apache.kudu.backup.KuduBackup kudu-backup2_2.11-1.10.0.jar \
--kuduMasterAddresses master1-host,master-2-host,master-3-host \
--rootPath hdfs://{YourHDFSCluster}/kudu-backups {YourTableList}
说明 本文代码示例中的{YourHDFSCluster}
为Hadoop集群的地址。
- 检查Kudu Backup目录相关数据。
- 在EMR Kudu集群运行Restore命令, 将数据导入到EMR Kudu集群。
默认命令如下:
- 使用OSS作为中间存储
spark-submit --class org.apache.kudu.backup.KuduRestore kudu-backup2_2.11-1.10.0.jar \
--kuduMasterAddresses master1-host,master-2-host,master-3-host \
--rootPath oss://{your_BucketName}/kudu-backups {YourTableList}
- 使用HDFS作为中间存储
spark-submit --class org.apache.kudu.backup.KuduRestore kudu-backup2_2.11-1.10.0.jar \
--kuduMasterAddresses master1-host,master-2-host,master-3-host \
--rootPath hdfs://{YourHDFSCluster}/kudu-backups {YourTableList}
- 检查EMR Kudu集群上的数据、表名以及通过计算引擎查找表的数据是否一致。