DataWorks の E-MapReduce (EMR) Hive ノードは、大規模なクラウドデータのバッチ分析を可能にします。SQLライクなステートメントを使用して分散システム内のデータを操作することで、ビッグデータワークフローを簡素化し、開発効率を向上させることができます。このプロセスは、ログデータなどの大規模なデータセットの読み取り、書き込み、管理、分析に効果的です。
前提条件
Alibaba Cloud E-MapReduce (EMR) クラスターを作成し、DataWorks に登録済みであること。詳細については、「Data Studio: EMR コンピューティングリソースの関連付け」をご参照ください。
(オプション、RAM ユーザーに必要) タスク開発を担当する Resource Access Management (RAM) ユーザーをワークスペースに追加し、[Developer] または [Workspace Administrator] ロールを割り当てます。Workspace Administrator ロールは広範な権限を持つため、慎重に付与してください。メンバーの追加の詳細については、「ワークスペースにメンバーを追加」をご参照ください。
Alibaba Cloud アカウントを使用している場合は、このステップをスキップできます。
DataWorks で Hive データソースを構成し、接続テストに合格済みであること。詳細については、「データソース管理」をご参照ください。
制限事項
このノードタイプは、サーバーレスリソースグループ (推奨) または専用スケジューリングリソースグループでのみ実行できます。
DataWorks で DataLake またはカスタムクラスターのメタデータを管理するには、まずクラスターで EMR-HOOK を構成する必要があります。詳細については、「Hive 用 EMR-HOOK の構成」をご参照ください。
説明クラスターで EMR-HOOK が構成されていない場合、DataWorks はメタデータをリアルタイムで表示したり、監査ログを生成したり、データリネージを表示したり、EMR 関連のデータガバナンスを実行したりすることはできません。
ステップ 1: EMR Hive ノードを開発する
EMR Hive ノードエディターページで、次のステップを実行します。
SQL コードの開発
SQL エディターで、タスクコードを記述します。`${variable_name}` 形式を使用して変数を定義できます。その後、[スケジュール設定] セクションの [スケジュールパラメーター] タブでこれらの変数に値を割り当てることができます。これにより、スケジュールされた実行中にパラメーターをコードに動的に渡すことができます。スケジュールパラメーターの詳細については、 をご参照ください。次のコードは例を示しています。
SHOW TABLES ;
SELECT '${var}'; -- スケジュールパラメーターと組み合わせて使用します。
SELECT * FROM userinfo ;SQL ステートメントのサイズは 130 KB を超えることはできません。
ステップ 2: EMR Hive ノードを構成する
(オプション) 詳細設定を構成する
[スケジュール] タブで、 で次のプロパティを構成できます。
利用可能な詳細パラメーターは、以下の表に示すように、EMR クラスタータイプによって異なる場合があります。
タブの [Spark パラメーター] セクションの [EMR ノードパラメーター] で、さらに多くの オープンソース Spark プロパティを構成できます。
DataLake およびカスタムクラスター: EMR on ECS
パラメーター | 説明 |
queue | ジョブ送信のスケジューリングキュー。デフォルトキューは `default` です。EMR YARN の詳細については、「基本キュー構成」をご参照ください。 |
priority | ジョブの優先度。デフォルト値は 1 です。 |
FLOW_SKIP_SQL_ANALYZE | SQL ステートメントの実行モードを指定します。有効な値:
説明 このパラメーターは、開発環境でのテスト実行のみを対象としています。 |
DATAWORKS_SESSION_DISABLE | 開発環境でのテスト実行に適用されます。有効な値:
説明 このパラメーターが |
その他 | 詳細設定でカスタム Hive 接続パラメーターを追加することもできます。 |
Hadoop クラスター: EMR on ECS
パラメーター | 説明 |
queue | ジョブ送信のスケジューリングキュー。デフォルトキューは `default` です。EMR YARN の詳細については、「基本キュー構成」をご参照ください。 |
priority | ジョブの優先度。デフォルト値は 1 です。 |
FLOW_SKIP_SQL_ANALYZE | SQL ステートメントの実行モードを指定します。有効な値:
説明 このパラメーターは、開発環境でのテスト実行のみを対象としています。 |
USE_GATEWAY | ゲートウェイクラスターを介してジョブを送信するかどうかを指定します。有効な値:
説明 このノードが属するクラスターがゲートウェイクラスターに関連付けられていない場合、このパラメーターを |
ノードを定期的に実行する必要がある場合は、ビジネス要件に基づいてスケジュールプロパティを構成します。詳細については、「ノードスケジュール構成」をご参照ください。
ステップ 3: ノードのデバッグ
SQL タスクの実行
右側の Run Configuration [コンピューティングリソース] セクションで、[コンピューティングリソース] と [リソースグループ] を指定します。
説明タスクに必要なリソースに基づいて、[スケジューリング CU] の数を調整できます。デフォルト値は
0.25CU です。パブリックネットワークまたは Virtual Private Cloud (VPC) 内のデータソースにアクセスするには、データソースの接続性テストに合格した専用スケジューリングリソースグループを使用する必要があります。詳細については、「ネットワーク接続性ソリューション」をご参照ください。
ツールバーのパラメーターダイアログボックスで、ご利用の Hive データソースを選択し、[実行] をクリックします。
説明EMR Hive ノードを使用してデータをクエリする場合、クエリは最大
10,000行のデータを返し、合計データサイズは10 MBを超えることはできません。[保存] をクリックします。
次のステップ
ノードを構成した後、デプロイします。詳細については、「ノードとワークフローのデプロイメント」をご参照ください。
ノードをデプロイした後、オペレーションセンターでスケジュールされたタスクのステータスを表示できます。詳細については、「オペレーションセンターの開始」をご参照ください。
よくある質問
Q: ノードの実行時に接続タイムアウト (ConnectException) が発生します。どうすればよいですか?

A: リソースグループとクラスター間のネットワーク接続を確認します。コンピューティングリソースページに移動し、リソースを見つけて [リソースの初期化] をクリックします。表示されるダイアログボックスで、[再初期化] をクリックし、初期化が成功したことを確認します。

