すべてのプロダクト
Search
ドキュメントセンター

Data Lake Formation:EMR メタデータを DLF に移行する

最終更新日:Jan 17, 2025

このトピックでは、E-MapReduce(EMR)クラスタの ApsaraDB RDS データベースまたは組み込み MySQL データベースに格納されている Hive Metastore メタデータを Data Lake Formation(DLF)に移行する方法について説明します。また、DLF を使用してメタデータを格納するように EMR クラスタの構成を変更する方法についても説明します。DLF を使用してメタデータを格納すると、さまざまなデータソースからデータレイクにデータを書き込み、効率的なデータレイクソリューションを構築できます。

シナリオ

  1. ビッグデータクラスタから DLF にメタデータを格納する EMR クラスタにメタデータを移行する方法については、このトピックのメタデータの移行セクションをご参照ください。

  2. 組み込み MySQL データベースまたはセルフマネージド ApsaraDB RDS データベースにメタデータを格納する EMR クラスタから、DLF にメタデータを格納する EMR クラスタにメタデータを移行する方法については、メタデータの移行をご参照ください。

  3. EMR クラスタのメタデータストレージを組み込み MySQL またはセルフマネージド ApsaraDB RDS から DLF に変更する方法については、EMR クラスタの統合メタデータストレージに DLF を使用するをご参照ください。

    重要
    • 注: EMR クラスタのメタデータの格納に DLF を使用する場合、EMR クラスタのメジャーバージョンは EMR V3.33 以後の V3.X、EMR V4.6 以後の V4.X、または EMR V5.1 以後の V5.X である必要があります。

    • 以前のバージョンの EMR クラスタについては、DingTalk グループ 33719678 に参加してください。

メタデータの移行

DLF を使用すると、Hive metastore からデータレイクにメタデータを視覚的にすばやく移行できます。

準備

  1. セルフマネージド ApsaraDB RDS データベースにメタデータを格納する EMR クラスタを作成します。詳細については、セルフマネージド ApsaraDB RDS データベースを構成するをご参照ください。この例では、セルフマネージド ApsaraDB RDS データベースを使用します。

  2. EMR クラスタに Hive データベースを作成します。詳細については、Hive を使用して基本操作を実行するをご参照ください。この例では、testdb2 という名前のデータベースが作成されます。

  3. 特定のデータベースに対する リモートアクセス権限 を確認します。

    • ApsaraDB RDS または MySQL データベースにログオンし、次のステートメントを実行して、データベースに対するリモートアクセス権限を付与します。この例では、root ユーザーと testdb データベースを使用します。xxxx は root ユーザーのパスワードです。

      CREATE USER 'root'@'%' IDENTIFIED BY 'xxxx';
      GRANT ALL PRIVILEGES ON testdb.* TO 'root'@'%' WITH GRANT OPTION;
      FLUSH PRIVILEGES;
    • ApsaraDB RDS データベースの場合は、ApsaraDB RDS コンソールでアクセス権限を表示および変更することもできます。詳細については、アカウントの権限を変更するをご参照ください。

      image

移行タスクの作成

  1. DLF コンソール にログオンします。

  2. EMR クラスタが存在するリージョンを選択します。

  3. 左側のナビゲーションウィンドウで、[メタデータ] > [メタデータの移行] を選択します。

  4. [移行タスク] タブで、[クラウド移行タスクの作成] をクリックします。

  5. パラメータを構成し、[次へ] をクリックします。次の図は構成例を示しています。詳細については、「メタデータの移行」トピックの メタデータ移行タスクの作成 をご参照ください。

    image

  6. 移行タスクを構成し、[次へ] をクリックします。次の図は構成例を示しています。この例では、タスク名は test_rds です。

    image

  7. タスクの構成を確認し、[OK] をクリックします。

移行タスクの実行

[移行タスク] タブで、test_rds という名前のタスクを見つけ、[アクション] 列の [実行] をクリックします。タスクが正常に実行されると、タスクは「成功」状態になります。

image

実行レコードとログの表示

  1. 上] 移行タスク タブをクリック[実行レコード] をクリックして、タスクの実行履歴を表示します。アクション 列でタスクの実行履歴を表示します。

    image

  2. ] 上実行履歴 タブ、[ログの表示] をクリックして、タスクのログの詳細を表示します。アクション 列でタスクのログの詳細を表示します。

メタデータが DLF に移行されたかどうかの確認

  1. 左側のナビゲーションウィンドウで、[メタデータ] > [メタデータ] を選択します。

  2. [データベース] タブをクリックし、[カタログリスト] パラメータと [データベース名] パラメータを構成して、Enter キーを押します。次の図は結果を示しています。

EMR クラスタの統合メタデータストレージに DLF を使用する

メタデータストレージ用に MySQL を DLF に置き換えるには、特定の構成を更新して、EMR が DLF と統合し、DLF のメタデータ管理機能を使用できるようにする必要があります。

Hive

Hive の そのhive-site.xml設定項目の変更 セクションをご参照ください。

重要

カタログを指定する場合は、dlf.catalog.id 設定項目を変更する必要があります。そうでない場合、メタデータは default カタログに格納されます。

<!-- DLF メタデータサービスの URL を構成します。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
<!-- EMR V3.33 または EMR V4.6.0 より前のマイナーバージョンの構成 -->
dlf.catalog.sts.isNewMode=false

Presto

Hive の hive.properties ファイルで、次の設定項目を追加し、設定を保存して、設定を有効にします。詳細については、「設定項目の管理」トピックの 設定項目の追加 セクションをご参照ください。

hive.metastore=dlf
<!-- DLF メタデータサービスの URL を構成します。regionId は、目的のクラスタのリージョン ID(cn-hangzhou など)に置き換えます。 -->
dlf.catalog.endpoint=dlf-vpc.{regionId}.aliyuncs.com
dlf.catalog.akMode=EMR_AUTO
dlf.catalog.proxyMode=DLF_ONLY
 
<!-- Hive の hive-site.xml ファイルで構成されている hive.metastore.warehouse.dir の値を参照します。 -->
dlf.catalog.default-warehouse-dir= <!-- この設定項目の値を hive.metastore.warehouse.dir の値に設定します。 -->

<!-- EMR V3.33 または EMR V4.6.0 より前のマイナーバージョンの構成 -->
dlf.catalog.sts.isNewMode=false

Spark

Spark サービスページの [構成] タブで、[クライアント構成のデプロイ] をクリックします。プロンプトに従って操作を完了します。次に、Spark を再起動します。

image

Impala

Impala サービスページの [構成] タブで、[クライアント構成のデプロイ] をクリックします。プロンプトに従って操作を完了します。次に、Impala を再起動します。

メタデータストレージが変更されたかどうかの確認

次の例では、Hive を使用します。他のエンジンでも同じ操作を実行できます。

  1. SSH モードでクラスタにログオンします。詳細については、クラスタにログオンする をご参照ください。

  2. 次のコマンドを実行して、Hive CLI を開きます。

    hive
  3. 次のステートメントを実行して、データベースを作成します。 この例では、dlf_test_db という名前のデータベースを使用します。

    CREATE database if NOT EXISTS dlf_test_db;

    返された情報に OK が含まれている場合、データベース dlf_test_db が 作成されます。

  4. DLF コンソール にログオンします。

  5. 左側のナビゲーションウィンドウで、[メタデータ] > [メタデータ] を選択します。

  6. [クリック] をクリックします次の図は結果を示しています。データベースタブ。タブで、特定のカタログ[カタログ一覧]dlf_test_db[データベース名]フィールドを入力し、Enter キーを押します。

    image

    データベースが存在する場合、Hive のメタデータストレージが変更されます。そうでない場合、Hive のメタデータストレージの変更は失敗します。

FAQ

移行タスクを複数回実行した場合の結果はどうなりますか?

複数回実行される移行タスクの結果は同じままです。これは、移行タスクが ApsaraDB RDS または MySQL データベースのメタデータに基づいて実行され、ソースデータベースのメタデータと DLF のメタデータの最終的な整合性が確保されるためです。移行タスクの [競合解決ストラテジ] パラメータを構成できます。詳細については、「メタデータの移行」トピックの メタデータ移行タスクの作成 セクションをご参照ください。