DataWorks では、E-MapReduce (EMR) クラスターに基づいて、Hive、MapReduce (MR)、Presto、Spark SQL などのノードを作成できます。これにより、EMR タスクのワークフローを設定し、定期的にスケジュールし、メタデータを管理できます。このトピックでは、同じ Alibaba Cloud アカウントまたは異なる Alibaba Cloud アカウントに属する EMR クラスターを登録する方法について説明します。
背景情報
E-MapReduce (EMR) は、Alibaba Cloud プラットフォームで実行されるビッグデータ処理ソリューションです。
EMR は、オープンソースの Apache Hadoop および Apache Spark に基づいています。Hadoop および Spark エコシステムの他のシステムを使用して、データを分析および処理できます。EMR は、Object Storage Service (OSS) や Relational Database Service (RDS) など、他の Alibaba Cloud データストレージシステムやデータベースとデータを交換することもできます。Alibaba Cloud EMR は、ECS 上のデプロイメント、ACK 上のデプロイメント、サーバーレスなど、さまざまなユーザーニーズに対応するために、さまざまなデプロイメントモードを提供します。
複数の EMR コンポーネントから選択して、DataWorks で EMR タスクを実行できます。最適な構成はコンポーネントによって異なります。EMR クラスターを設定する際、適切な設定の選択に関する詳細については、「EMR クラスターの設定に関する推奨事項」をご参照ください。
サポートされているクラスタータイプ
制限事項
権限の制限: 次の RAM ユーザーまたは RAM ロールのみが EMR クラスターを登録できます。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。
Alibaba Cloud アカウント。
DataWorks の
Workspace Administrator roleとAliyunEMRFullAccessポリシーを持つ RAM ユーザーまたは RAM ロール。AliyunDataWorksFullAccessとAliyunEMRFullAccessポリシーを持つ RAM ユーザーまたは RAM ロール。
リージョンの制限: EMR Serverless Spark は、中国 (杭州)、中国 (上海)、中国 (北京)、中国 (深圳)、中国 (成都)、中国 (香港)、日本 (東京)、シンガポール、インドネシア (ジャカルタ)、ドイツ (フランクフルト)、および米国 (バージニア) でのみ利用可能です。
タスクタイプ: DataWorks は EMR Flink タスクの実行をサポートしていません。
タスクの実行: DataWorks は、サーバーレスリソースグループ (推奨) またはスケジューリング用の専用リソースグループ (旧バージョン) を使用した EMR タスクの実行をサポートしています。
タスクガバナンス:
EMR Hive、EMR Spark、および EMR Spark SQL ノードの SQL タスクのみがデータリネージの生成をサポートしています。クラスターのバージョンが 5.9.1、3.43.1 以降の場合、これらのすべてのノードはテーブルレベルおよびフィールドレベルのリネージの表示をサポートします。
説明Spark タイプのノードの場合、EMR クラスターのバージョンが 5.8.0、3.42.0 以降であれば、ノードはテーブルレベルおよびフィールドレベルのリネージの表示をサポートします。EMR クラスターのバージョンが 5.8.0 または 3.42.0 より前の場合、Spark 2.x のみがテーブルレベルのリネージの表示をサポートします。
DataWorks で DataLake またはカスタムクラスターのメタデータを管理するには、まずクラスターで EMR-HOOK を設定する必要があります。EMR-HOOK が設定されていない場合、メタデータはリアルタイムで表示できず、監査ログは生成されず、データリネージは DataWorks に表示できません。この場合、EMR 関連のガバナンスタスクは実行できません。現在、EMR-HOOK は EMR Hive および EMR Spark SQL サービスに対してのみ設定できます。詳細については、「Hive 用に EMR-HOOK を設定する」および「Spark SQL 用に E-HOOK を設定する」をご参照ください。
Kerberos 認証が有効になっている EMR クラスターの場合、リソースグループにアタッチされている vSwitch CIDR ブロックから UDP ポートへのアクセスを許可するために、セキュリティグループにインバウンドルールを追加する必要があります。
説明EMR クラスターの [基本情報] タブで、[クラスターセキュリティグループ] の横にある
アイコンをクリックして [セキュリティグループの詳細] タブを開きます。 [セキュリティグループの詳細] タブで、[アクセスルール] セクションの [インバウンド] をクリックし、[手動で追加] を選択します。 [プロトコルタイプ] を [カスタム UDP] に設定します。 [ポート範囲] には、EMR クラスター内の /etc/krb5.confファイルで対応する KDC ポートを確認します。 [承認オブジェクト] をリソースグループにアタッチされている vSwitch CIDR ブロックに設定します。
注意事項
標準モードのワークスペースで開発環境と本番環境を分離するには、2 つの異なる EMR クラスターを登録する必要があります。これら 2 つのクラスターのメタデータは、次のいずれかの方法で保存する必要があります:
方法 1 (データレイクソリューションに推奨): メタデータを Data Lake Formation (DLF) の 2 つの異なるデータカタログに保存します。詳細については、「メタストアタイプを切り替える」をご参照ください。
方法 2: メタデータを Relational Database Service (RDS) の 2 つの異なるデータベースに保存します。詳細については、「自己管理 RDS データベースを設定する」をご参照ください。
EMR クラスターは、同じ Alibaba Cloud アカウント内の複数のワークスペースに登録できますが、異なる Alibaba Cloud アカウントに属するワークスペースには登録できません。
DataWorks リソースグループが EMR クラスターにアクセスできるようにするには、接続に失敗した場合に EMR クラスターのセキュリティグループルールを確認してください。これは、リソースグループとクラスターが同じ VPC にあり、同じ vSwitch を使用している場合でも発生する可能性があります。対応する vSwitch CIDR ブロックと一般的なオープンソースコンポーネントのポートのインバウンドルールを追加します。詳細については、「EMR クラスターのセキュリティグループを管理する」をご参照ください。
ステップ 1: EMR クラスターページに移動する
SettingCenter ページに移動します。
DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[管理センターへ] をクリックします。
左側のナビゲーションウィンドウで、[クラスター管理] をクリックします。[クラスター管理] ページで、[クラスターの登録] をクリックします。[登録するクラスタータイプ] で [E-MapReduce] を選択します。[E-MapReduce クラスターの登録] ページが表示されます。
ステップ 2: EMR クラスターを登録する
[E-MapReduce クラスターの登録] ページで、クラスター情報を設定します。
標準モードのワークスペースでは、開発環境と本番環境のクラスター情報を個別に設定する必要があります。ワークスペースモードの詳細については、「ワークスペースモードの違い」をご参照ください。
クラスター表示名: DataWorks でのクラスターの表示名。名前は一意である必要があります。
クラスターが属する Alibaba Cloud アカウント: 現在のワークスペースに登録する EMR クラスターを所有するアカウントを選択します。
説明[EMR Serverless Spark] クラスターを Alibaba Cloud アカウント間で登録することはできません。
選択したアカウントタイプに基づいてパラメーターを設定します。
クラスターが属する Alibaba Cloud アカウント: 現在の Alibaba Cloud アカウント
[クラスターが属する Alibaba Cloud アカウント] で [現在の Alibaba Cloud アカウント] を選択した場合は、次のパラメーターを設定します:
パラメーター | 説明 |
クラスタータイプ | 登録する EMR クラスターのタイプを選択します。DataWorks に登録できるクラスタータイプの詳細については、「制限事項」をご参照ください。 |
クラスター | 現在のアカウント配下にある EMR クラスターの中から、DataWorks に登録するものを選択します。 説明 クラスタータイプとして [EMR Serverless Spark] を選択した場合は、UI の指示に従って [E-MapReduce ワークスペース] (登録するクラスター)、デフォルトのエンジンバージョン、デフォルトのリソースキュー、およびその他の情報を選択します。 |
デフォルトのアクセス ID | 現在のワークスペースで EMR クラスターにアクセスするために使用される ID を定義します。
説明 タスクオーナー、Alibaba Cloud アカウント、RAM ユーザーなど、クラスターアカウントにマッピングするオプションを選択した場合は、DataWorks テナントメンバーと特定の EMR クラスターアカウント間のマッピングを手動で設定できます。詳細については、「クラスター ID マッピングを設定する」をご参照ください。マッピングされたクラスターアカウントは、DataWorks で EMR タスクを実行するために使用されます。マッピングが設定されていない場合、DataWorks は次のポリシーを使用します:
|
プロキシユーザー情報の受け渡し | プロキシユーザー情報を渡すかどうかを指定します。 説明 LDAP や Kerberos などの認証方式が有効になっている場合、クラスターは各一般ユーザーに認証資格情報を発行します。権限管理を簡素化するために、スーパーユーザー (実ユーザー) を使用して、権限認証のために一般ユーザー (プロキシユーザー) をプロキシすることができます。この場合、プロキシユーザーとしてクラスターにアクセスすると、スーパーユーザーの身分認証情報が使用されます。ユーザーをプロキシユーザーとして追加するだけで済みます。
プロキシユーザー情報を渡す方法は、EMR タスクのタイプによって異なります:
|
設定ファイル | クラスタータイプとして [HADOOP] を選択した場合は、EMR コンソールに移動して設定ファイルを取得できます。詳細については、「サービス設定のエクスポートとインポート」をご参照ください。エクスポート後、UI のアップロード要件に従ってファイルの名前を変更します。
また、EMR クラスターにログインし、次のパスに移動して関連する設定ファイルを取得することもできます。 |
クラスターが属する Alibaba Cloud アカウント: 別の Alibaba Cloud アカウント
[クラスターが属する Alibaba Cloud アカウント] で [別の Alibaba Cloud アカウント] を選択した場合は、次のパラメーターを設定します:
パラメーター | 説明 |
他の Alibaba Cloud アカウント UID | EMR クラスターを所有する Alibaba Cloud アカウントの UID。 |
他の RAM ロール | EMR クラスターへのアクセスに使用される RAM ロール。このロールは次の条件を満たす必要があります:
説明 アカウントをまたいで EMR クラスターを登録する方法の詳細については、「シナリオ: アカウントをまたいで EMR クラスターを登録する」をご参照ください。 |
他の EMR クラスタータイプ | 登録する EMR クラスターのタイプを選択します。現在、アカウントをまたいだ登録でサポートされているのは、 |
他の EMR クラスター | 他のアカウントから DataWorks に登録する EMR クラスターを選択します。 |
設定ファイル | UI のプロンプトに従って設定ファイルを設定します。設定ファイルの取得方法の詳細については、「サービス設定のエクスポートとインポート」をご参照ください。エクスポート後、UI のアップロード要件に従ってファイルの名前を変更します。
また、EMR クラスターにログインし、次のパスに移動して関連する設定ファイルを取得することもできます。 |
デフォルトのアクセス ID | 現在のワークスペースで EMR クラスターにアクセスするために使用される ID を定義します。
説明 タスクオーナー、Alibaba Cloud アカウント、RAM ユーザーなど、クラスターアカウントにマッピングするオプションを選択した場合は、DataWorks テナントメンバーと特定の EMR クラスターアカウント間のマッピングを手動で設定できます。詳細については、「クラスター ID マッピングを設定する」をご参照ください。マッピングされたクラスターアカウントは、DataWorks で EMR タスクを実行するために使用されます。マッピングが設定されていない場合、DataWorks は次のポリシーを使用します:
|
プロキシユーザー情報の受け渡し | プロキシユーザー情報を渡すかどうかを指定します。 説明 LDAP や Kerberos などの認証方式が有効になっている場合、クラスターは各一般ユーザーに認証資格情報を発行します。権限管理を簡素化するために、スーパーユーザー (実ユーザー) を使用して、権限認証のために一般ユーザー (プロキシユーザー) をプロキシすることができます。この場合、プロキシユーザーとしてクラスターにアクセスすると、スーパーユーザーの身分認証情報が使用されます。ユーザーをプロキシユーザーとして追加するだけで済みます。
プロキシユーザー情報を渡す方法は、EMR タスクのタイプによって異なります:
|
ステップ 3: リソースグループを初期化する
クラスターの初回登録時、クラスターサービス設定の変更時 (例: core-site.xml の変更)、またはコンポーネントバージョンのアップグレード時に、リソースグループを初期化する必要があります。このステップにより、リソースグループが EMR にアクセスでき、リソースグループの現在の環境構成で EMR タスクを実行できるようになります。
[オープンソースクラスター] ページで、登録済みの EMR クラスターのタブを見つけ、右上隅にある [リソースグループの初期化] をクリックします。
必要なリソースグループを見つけて、[初期化] をクリックします。
サーバーレスリソースグループまたはスケジューリング用の専用リソースグループ (旧バージョン) を初期化できます。
初期化が完了するまで 1〜2 分待ってから、[OK] をクリックします。
初期化に失敗した場合は、接続性診断ツールを使用して原因のトラブルシューティングを行ってください。
リソースグループを初期化すると、実行中のタスクが失敗する可能性があります。リソースグループを直ちに再初期化する必要がある場合 (たとえば、クラスター設定の変更後に多くのタスクが失敗するのを防ぐため) を除き、オフピーク時にリソースグループを初期化することをお勧めします。
次のステップ
データ開発: データ開発プロセスガイドを参照して、関連するコンポーネント環境を設定します。
クラスター ID マッピングを設定する: EMR クラスターのデフォルトのアクセス ID が hadoop アカウントでない場合は、クラスター ID マッピングを設定して、RAM ユーザーが DataWorks でアクセスできるリソースを制御する必要があります。
グローバル YARN リソースキューを設定する: YARN リソースキューマッピングを使用して、各モジュールで使用される YARN キューを指定します。各モジュールの設定を上書きするかどうかを指定することもできます。
グローバル Spark パラメーターを設定する: Spark の公式ドキュメントを参照して、グローバル Spark パラメーターをカスタマイズします。ワークスペースレベルの Spark パラメーター設定が、同じ名前のパラメーターのモジュールレベルの設定を上書きするかどうかを指定することもできます。
Kyuubi 接続情報を設定する: カスタムアカウントとパスワードを使用して Kyuubi にログインし、タスクを実行する場合は、このドキュメントを参照して Kyuubi 接続情報をカスタマイズしてください。
