E-MapReduce(簡稱EMR)支持將您本地自建的Kudu集群遷移至EMR上。本文為您介紹如何遷移自建Kudu集群的數據到E-MapReduce上的Hadoop集群。
前提條件
您已自建Kudu集群。
已創建E-MapReduce的Hadoop集群,并選擇了Kudu服務,詳情請參見創建集群。
背景信息
EMR Kudu支持社區1.10以及1.11版本,可以使用社區提供的Backup和Restore的工具進行數據的遷移?;玖鞒淌疽鈭D如下所示。
操作步驟
執行以下命令,查看待遷移Kudu表的名稱列表。
Kudu table list {YourKuduMasterAddress}
說明本文代碼示例中的
{YourKuduMasterAddress}
為Kudu集群的Master節點內網IP地址,多個IP地址之間使用英文逗號(,)隔開。使用Kudu Backup工具備份現有的Kudu集群表。
默認的Kudu Backup可以根據現有Backup信息來執行增量或者全量備份。
說明首次備份將執行全量備份,即完整復制所有指定表的數據。后續備份自動識別之前的備份點,僅備份自上次備份以來變更的數據,實現增量備份,從而節省存儲空間和時間。
數據備份時,指定的
--kuduMasterAddresses
是Kudu集群的Master節點內網IP地址。使用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}
說明導入數據時,指定的
--kuduMasterAddresses
是目標EMR Kudu集群的Master節點內網IP地址。使用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集群上的數據、表名以及通過計算引擎查找表的數據是否一致。