Apache Kyuubi は、分散型のマルチテナントゲートウェイで、Spark、Flink、Trino などのデータレイククエリエンジンに SQL クエリサービスを提供します。DataWorks の EMR Kyuubi ノードを使用すると、Kyuubi タスクを開発して定期的にスケジューリングし、他のジョブと統合できます。このトピックでは、データ開発のために EMR Kyuubi ノードを設定して使用する方法について説明します。
前提条件
-
Alibaba Cloud E-MapReduce (EMR) クラスターを作成し、DataWorks に登録済みであること。詳細については、「Data Studio: EMR コンピューティングリソースの関連付け」をご参照ください。
(オプション、RAM ユーザーに必要) タスク開発を担当する Resource Access Management (RAM) ユーザーをワークスペースに追加し、[Developer] または [Workspace Administrator] ロールを割り当てます。Workspace Administrator ロールは広範な権限を持つため、慎重に付与してください。メンバーの追加の詳細については、「ワークスペースにメンバーを追加」をご参照ください。
Alibaba Cloud アカウントを使用している場合は、このステップをスキップできます。
制限事項
これらのタスクは、サーバーレスリソースグループ (推奨) または専用スケジューリングリソースグループでのみ実行できます。
操作手順
-
EMR Kyuubi ノードの編集ページで、次の開発操作を実行します。
SQL コードの開発
SQL エディターで、タスクコードを開発します。コードでは、${variable_name} 形式を使用して変数を定義できます。右側のパネルで、Scheduling Settings セクションに移動し、Scheduling Parameters フィールドでこれらの変数に値を割り当てます。この方法を使用すると、定期実行中に動的パラメーターをコードに渡すことができます。スケジューリングパラメーターの詳細については、「スケジューリングパラメーターのソースと式」をご参照ください。次のコードは一例です。
SHOW TABLES; SELECT * FROM kyuubi040702 WHERE age >= '${a}'; -- スケジューリングパラメーターを使用できます。説明SQL ステートメントのサイズは 130 KB を超えることはできません。
(オプション) 詳細パラメーターの設定
右側のパネルで、Scheduling Settings > に移動します。
説明他の オープンソース Spark プロパティを設定するには、右側のパネルで Scheduling Settings > に移動します。
パラメーター
説明
queue
ジョブの YARN リソースキュー。デフォルトのキューは
defaultです。説明DataWorks ワークスペースに EMR クラスターを登録する際にワークスペースレベルの YARN リソースキュー が設定されている場合、Kyuubi タスクのキュー選択ルールは次のとおりです:
-
グローバル設定が優先されるかどうか が Yes に設定されている場合、EMR クラスターの登録時に設定されたスケジューリングキューが使用されます。
-
グローバル設定が優先されるかどうか が設定されていない場合、EMR Kyuubi ノードに設定されたスケジューリングキューが使用されます。
EMR YARN の詳細については、「基本的なキュー設定」をご参照ください。EMR クラスター登録時のキュー設定の詳細については、「グローバル YARN リソースキューの設定」をご参照ください。
priority
ジョブの優先度。デフォルト値は 1 です。
FLOW_SKIP_SQL_ANALYZE
SQL ステートメントの実行方法を指定します。有効な値:
-
true:複数の SQL ステートメントを一度に実行します。 -
false(デフォルト):一度に 1 つの SQL ステートメントを実行します。
説明このパラメーターは、データ開発環境でのテスト実行にのみ適用されます。
DATAWORKS_SESSION_DISABLE
開発環境での直接テスト実行に適用されます。有効な値:
-
true:SQL ステートメントを実行するたびに新しい JDBC 接続を作成します。 -
false(デフォルト):同じノード内で異なる SQL ステートメントを実行する場合、同じ JDBC 接続を再利用します。
説明このパラメーターを
falseに設定すると、Hive のYARN アプリケーション IDはログに出力されません。YARN アプリケーション IDを出力するには、このパラメーターをtrueに設定します。SQL タスクの実行
-
Compute Resource の Run Configuration セクションで、Compute Resource と DataWorks Resource Group を選択します。
説明-
タスクのリソース要件に基づいて、CUs for Scheduling を調整することもできます。デフォルト値は
0.25です。 -
パブリックネットワークまたは VPC 経由でデータソースにアクセスするには、そのデータソースへの接続が検証されたスケジューリングリソースグループを使用する必要があります。詳細については、「ネットワーク接続ソリューション」をご参照ください。
-
-
ツールバーのパラメーターダイアログボックスでデータソースを選択し、Run をクリックします。
-
-
ノードタスクをスケジュールどおりに実行するには、ビジネス要件に基づいてスケジューリング情報を設定します。詳細については、「ノードのスケジューリング設定」をご参照ください。
-
ノードを設定したら、デプロイします。詳細については、「ノードとワークフローのデプロイ」をご参照ください。
-
タスクがデプロイされた後、オペレーションセンターでその実行ステータスを表示できます。詳細については、「オペレーションセンター入門」をご参照ください。
よくある質問
-
Q:ノードが接続タイムアウトエラーで失敗します。どうすればよいですか。
A: リソースグループとクラスター間のネットワーク接続を確認します。コンピューティングリソースページに移動し、リソースを見つけて [リソースの初期化] をクリックします。表示されるダイアログボックスで、[再初期化] をクリックし、初期化が成功したことを確認します。
ダイアログボックスの上部にあるメッセージには、クラスターを初めてバインドするとき、または
hive-site.xmlの変更など、クラスターサービス設定が変更されたときに、リソースグループを初期化する必要がある旨が記載されています。そうしないと、タスクが失敗する可能性があります。初期化が成功すると、ステータス列に [正常に初期化されました] と表示され、完了時刻が表示されます。