E-MapReduce (EMR) クラスターの Hive Metastore メタデータを Data Lake Formation (DLF) に移行し、コンピュートエンジンを再構成して DLF を統合メタデータストアとして使用します。移行後、複数のソースからデータレイクにデータを書き込み、すべてのメタデータを単一の場所から管理できます。
DLF メタデータ統合には、EMR V3.33 以降 (V3.x)、EMR V4.6 以降 (V4.x)、または EMR V5.1 以降 (V5.x) が必要です。以前の EMR バージョンの場合は、DingTalk グループ 33719678 に参加してください。
移行パスの選択
この表を使用して、状況に応じた適切な手順を見つけてください。
| 開始点 | 目標 | 手順 |
|---|---|---|
| ビッグデータクラスター (非 EMR) | DLF をすでに使用している EMR クラスターにメタデータを移行します | メタデータの移行 |
| 組み込み MySQL またはセルフマネージド ApsaraDB RDS を使用する EMR クラスター | メタデータを DLF に保存する別の EMR クラスターに移動します | メタデータの移行 |
| 組み込み MySQL またはセルフマネージド ApsaraDB RDS を使用する EMR クラスター | 既存のクラスターのメタデータストレージを DLF に切り替えます | 統合メタデータストレージとしての DLF の使用 |
メタデータの移行
DLF を使用すると、手動でデータ転送をスクリプト化することなく、ビジュアルインターフェイスを通じて Hive Metastore からデータレイクにメタデータを移行できます。
前提条件
開始する前に、以下があることを確認してください。
メタデータがセルフマネージド ApsaraDB RDS データベースまたは組み込み MySQL データベースに保存されている EMR クラスター (V3.33 以降、V4.6 以降、または V5.1 以降)
EMR クラスター内の Hive データベース。手順については、「Hive を使用して基本操作を実行する」をご参照ください。この例では、
testdb2という名前のデータベースを使用します。ソースデータベースで構成されたリモートアクセス権限 (以下を参照)
リモートアクセス権限の構成
ApsaraDB RDS または MySQL データベースにログインし、次のステートメントを実行します。この例では、testdb データベースの root ユーザーに権限を付与します。xxxx を実際のパスワードに置き換えてください。
CREATE USER 'root'@'%' IDENTIFIED BY 'xxxx';
GRANT ALL PRIVILEGES ON testdb.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;ApsaraDB RDS の場合、コンソールで直接アクセス権限を表示および更新することもできます。詳細については、「アカウント権限の変更」をご参照ください。

移行タスクの作成
DLF コンソールにログインします。
ご利用の EMR クラスターが存在するリージョンを選択します。
左側のナビゲーションウィンドウで、[メタデータ] > [メタデータの移行] を選択します。
[移行タスク] タブで、[クラウド移行タスクの作成] をクリックします。
ソース接続パラメーターを設定し、[次へ] をクリックします。パラメーターの詳細については、「メタデータ移行タスクの作成」をご参照ください。

移行タスクの詳細を設定し、[次へ] をクリックします。この例では、タスクを
test_rdsと名付けます。
タスク構成を確認し、[OK] をクリックします。
移行タスクの実行
[移行タスク] タブで、名前が test_rds のタスクを見つけ、[実行] を [操作] 列でクリックします。タスクが正常に完了すると、そのステータスは [成功] に変わります。

実行履歴とログの表示
「移行タスク」タブで、「実行履歴」を「操作」列からクリックして、実行履歴を表示します。

「実行履歴」タブで、「操作」列の[ログの表示]をクリックして、ログの詳細を表示します。
メタデータ移行の検証
左側のナビゲーションウィンドウで、[メタデータ] > [メタデータ] を選択します。
「[データベース]」タブをクリックし、「[カタログ一覧]」ドロップダウンリストからカタログを選択し、「[データベース名]」フィールドにデータベース名を入力して Enter キーを押します。結果にデータベースが表示された場合、メタデータは正常に移行されました。
統合メタデータストレージとしての DLF の使用
EMR クラスターを MySQL ベースのメタデータストレージから DLF に切り替えるには、各コンピュートエンジンの構成を更新して、DLF メタデータサービスを指すようにします。
デフォルトカタログではなく特定のカタログにメタデータを保存するには、dlf.catalog.id 設定項目をご利用のカタログ ID に設定します。Hive
hive-site.xml で、次の設定項目を追加または更新し、変更を保存して適用します。設定項目の変更方法については、「設定項目の変更」をご参照ください。
<!-- DLF メタデータサービスエンドポイント。{regionId} をご利用のクラスターのリージョン ID (例:cn-hangzhou) に置き換えてください。 -->
dlf.catalog.endpoint=dlf-vpc.{regionId}.aliyuncs.com
<!-- 貼り付け後、余分なスペースが挿入されていないことを確認してください。 -->
hive.imetastoreclient.factory.class=com.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactory
dlf.catalog.akMode=EMR_AUTO
dlf.catalog.proxyMode=DLF_ONLY
<!-- Hive 3 に必要です -->
hive.notification.event.poll.interval=0s
<!-- V3.33 または V4.6.0 より前の EMR バージョンに必要です -->
dlf.catalog.sts.isNewMode=falsePresto
hive.properties で、次の設定項目を追加し、変更を保存して適用します。詳細については、「設定項目の追加」をご参照ください。
hive.metastore=dlf
<!-- DLF メタデータサービスエンドポイント。{regionId} をご利用のクラスターのリージョン ID (例:cn-hangzhou) に置き換えてください。 -->
dlf.catalog.endpoint=dlf-vpc.{regionId}.aliyuncs.com
dlf.catalog.akMode=EMR_AUTO
dlf.catalog.proxyMode=DLF_ONLY
<!-- hive-site.xml の hive.metastore.warehouse.dir の値に設定します。 -->
dlf.catalog.default-warehouse-dir=
<!-- V3.33 または V4.6.0 より前の EMR バージョンに必要です -->
dlf.catalog.sts.isNewMode=falseSpark
Spark サービスページの[構成]タブで、[クライアント構成のデプロイ]をクリックして指示に従ってください。その後、Spark を再起動します。

Impala
Impala サービスページの [設定] タブで、[クライアント設定のデプロイ] をクリックしてプロンプトに従います。その後、Impala を再起動します。
メタデータストレージ変更の検証
次の手順では Hive を使用します。他のエンジンにも同じ検証が適用されます。
SSH 経由でクラスターにログインします。詳細については、「クラスターへのログイン」をご参照ください。
Hive CLI を開きます。
hiveテストデータベースを作成します。
CREATE database if NOT EXISTS dlf_test_db;出力に
OKが含まれている場合、データベースは正常に作成されています。DLF コンソールにログインします。
左側のナビゲーションウィンドウで、[メタデータ] > [メタデータ] を選択します。
[データベース]タブをクリックし、[カタログリスト]ドロップダウンリストからカタログを選択し、[データベース名]フィールドに
dlf_test_dbを入力して Enter キーを押します。結果にdlf_test_dbが表示された場合は、Hive のメタデータストレージが変更されています。それ以外の場合は、Hive のメタデータストレージの変更に失敗しています。
よくある質問
移行タスクを複数回実行するとどうなりますか?
同じ移行タスクを複数回実行しても、同じ結果になります。これは、移行タスクが ApsaraDB RDS または MySQL データベースのメタデータに基づいて実行され、ソースデータベースのメタデータと DLF のメタデータ間の結果整合性を確保するためです。
ソースとターゲットのカタログメタデータ間の競合を処理するには、タスクを作成する際に[競合解決戦略]パラメーターを設定します。詳細については、「メタデータ移行タスクを作成する」をご参照ください。