E-MapReduce(EMR)を使用すると、オンプレミス マシン上のセルフマネージド Kudu クラスタから EMR クラスタにデータを移行できます。このトピックでは、オンプレミス マシン上のセルフマネージド Kudu クラスタから、Kudu サービスがデプロイされている EMR Hadoop クラスタにデータを移行する方法について説明します。
前提条件
セルフマネージド Kudu クラスタが作成されていること。
Kudu サービスを含む EMR Hadoop クラスタが作成されていること。詳細については、「クラスタの作成」をご参照ください。
背景情報
EMR Kudu は、Apache Kudu 1.10 および 1.11 と互換性があります。Apache Kudu が提供するバックアップおよびリストア ツールを使用してデータを移行できます。次の図は、データ移行プロセスを示しています。
手順
次のコマンドを実行して、移行する Kudu テーブルの名前を表示します。
Kudu table list {YourKuduMasterAddress}
説明{YourKuduMasterAddress}
は、セルフマネージド Kudu クラスタのマスターノードの内部 IP アドレスを指定します。複数の内部 IP アドレスを指定できます。カンマ(,)で区切ります。Apache Kudu が提供するバックアップ ツールを使用して、セルフマネージド Kudu クラスタ内のテーブルをバックアップします。
バックアップ ツールは、既存のバックアップ情報に基づいて、増分バックアップまたはフルバックアップを実行します。
説明セルフマネージド Kudu クラスタ内の指定されたテーブルを初めてバックアップする場合、テーブルのすべてのデータがバックアップされます。後続のバックアップ シナリオでは、セルフマネージド Kudu クラスタ内のテーブルの増分データのみがバックアップされます。これにより、ストレージ容量が節約され、バックアップ時間が短縮されます。
次のコマンドでは、
--kuduMasterAddresses
は、セルフマネージド Kudu クラスタのマスターノードの内部 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 バケットの名前を指定します。{YourTableList}
は、バックアップするテーブルを指定します。Hadoop 分散ファイル システム(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 バックアップ ディレクトリ内のデータを確認します。
EMR Kudu クラスタでリストア コマンドを実行して、データを 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
は、セルフマネージド Kudu クラスタのマスターノードの内部 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 クラスタ内のテーブルのデータとテーブル名が、コンピューティング エンジンを使用してクエリされたテーブルのデータとテーブル名と一致するかどうかを確認します。