DataWorks の E-MapReduce (EMR) Hive ノードは、分散システムに保存されている大規模データのバッチ分析をサポートします。このノードは、ビッグデータ処理を簡素化し、開発効率を向上させます。EMR Hive ノードでは、SQL ライクなステートメントを使用して、大規模なデータセットの読み取り、書き込み、管理ができます。これにより、大量のログデータを効率的に分析し、開発作業を完了させることができます。
前提条件
-
Alibaba Cloud E-MapReduce クラスターを作成し、DataWorks に登録します。詳細については、「新しい Data Studio:EMR 計算リソースのアタッチ」をご参照ください。
-
(オプション、RAM ユーザー向け) タスク開発用の Resource Access Management (RAM) ユーザーをワークスペースに追加し、Development ロールまたは スペース管理者 ロール (このロールには広範な権限が含まれるため、慎重に付与する必要があります) を割り当てる必要があります。詳細については、「ワークスペースへのメンバー追加」をご参照ください。
ルートアカウントを使用している場合は、このステップをスキップしてください。
-
DataWorks で Hive データソースを設定し、接続性テストに合格することを確認します。詳細については、「データソース管理」をご参照ください。
制限事項
-
このタイプのタスクは、サーバーレスリソースグループ (推奨) またはスケジューリング専用リソースグループでのみ実行できます。
-
DataWorks で DataLake またはカスタムクラスターのメタデータを管理するには、まずクラスターで EMR-HOOK を設定する必要があります。EMR-HOOK の設定方法の詳細については、「Hive 用の EMR-HOOK の設定」をご参照ください。
説明クラスターで EMR-HOOK を設定しない場合、DataWorks はメタデータをリアルタイムで表示したり、監査ログを生成したり、データリネージを表示したり、EMR 関連の管理タスクを実行したりすることができません。
ステップ1:EMR Hive ノードの開発
EMR Hive ノードの編集ページでノードを開発できます。
SQL コードの開発
SQL 編集エリアでタスクのコードを記述します。コード内で ${variable_name} 形式を使用して変数を定義し、ノード編集ページの右側にある Scheduling Settings の下の Scheduling Parameters セクションで各変数に値を割り当てることができます。これにより、スケジューリングシナリオでコードにパラメーターを動的に渡すことができます。スケジューリングパラメーターの詳細については、「スケジューリングパラメーターのソースと式」をご参照ください。以下に例を示します。
SHOW TABLES ;
SELECT '${var}'; --スケジューリングパラメーターと併用します。
SELECT * FROM userinfo ;
SQL ステートメントの最大サイズは 130 KB です。
ステップ2:EMR Hive ノードの設定
(オプション) 詳細パラメーターの設定
ノードの右側にある Scheduling Settings セクションの で、次の表に示すプロパティパラメーターを設定できます。
-
使用可能な詳細パラメーターは、次の表に示すように、EMR クラスターのタイプによって異なります。
-
ノードの右側にある Scheduling Settings セクションの で、その他の オープンソース 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 の Compute Resource で、Compute Resource と Resource Group を設定できます。
説明-
タスク実行に必要なリソースに基づいて、CUs for Scheduling を設定することもできます。デフォルトは
0.25です。 -
パブリックインターネット上または VPC 内のデータソースにアクセスするには、そのデータソースの接続性テストに合格したスケジューリングリソースグループを使用する必要があります。詳細については、「ネットワーク接続ソリューション」をご参照ください。
-
-
ツールバーのパラメーターダイアログボックスで、作成した Hive データソースを選択し、Run をクリックして SQL タスクを実行します。
説明EMR Hive ノードからデータをクエリする場合、クエリは
10000レコード、合計データサイズ10 MBに制限されます。 -
Save をクリックして、ノードタスクを保存できます。
次のステップ
-
ノードを設定した後、公開する必要があります。詳細については、「ノードまたはワークフローの公開」をご参照ください。
-
タスクが公開されると、オペレーションセンターで定期タスクのステータスを表示できます。詳細については、「オペレーションセンター入門」をご参照ください。
よくある質問
Q:ノード実行時に接続タイムアウト (ConnectException) が発生するのはなぜですか?
EMR execute task failed!
SQL: {"name":"dw20251018","type":"HIVE_SQL","launcher":{"allocationSpec":{}},"properties":{"envs":{"FLOW_SKIP_SQL_ANALYZE":false},"arguments":["select * from default.dim_customers"],"tags":[],"description":"DataWorks"}}
TASK-MESSAGE:
FAILED: Build connection error! Could not open client transport with JDBC Uri: jdbc:hive2://xxx:10000: java.net.ConnectException: Connection timed out
A:リソースグループとクラスターがネットワーク経由で相互に接続できることを確認してください。計算リソースリストに移動し、[リソースの初期化] をクリックします。表示されるダイアログボックスで、再度初期化 をクリックします。初期化が成功したことを確認してください。