E-MapReduce(EMR)は、データサイエンティストやデータアナリスト向けのアドホッククエリをサポートしています。SQL ステートメントを実行して、アドホッククエリを実行できます。アドホッククエリジョブを実行すると、関連するログとクエリ結果がジョブページの下部に表示されます。このトピックでは、EMR コンソール の [アドホッククエリ] ページでジョブを作成、構成、実行、およびロックする方法について説明します。
背景情報
前提条件
プロジェクトが作成されていること。詳細については、「プロジェクトの管理」をご参照ください。
ジョブの作成
- [データプラットフォーム] タブに移動します。
- Alibaba Cloud アカウントを使用して、Alibaba Cloud EMR コンソール にログオンします。
- 上部のナビゲーションバーで、クラスターが存在するリージョンを選択 し、ビジネス要件に基づいてリソースグループを選択します。
- [データプラットフォーム] タブをクリックします。
- [プロジェクト] セクションで、作成したプロジェクトを見つけ、[アクション] 列の [ジョブの編集] をクリックします。
- アドホッククエリのジョブを作成します。
- ページの左側にある
アイコンをクリックします。 - 左側の [アドホッククエリ] ペインで、ジョブを作成するフォルダーを右クリックし、[ジョブの作成] を選択します。説明 フォルダーを右クリックして、[サブフォルダーの作成]、[フォルダー名の変更]、または [フォルダーの削除] を選択して、必要な操作を実行することもできます。
- [インタラクティブジョブの作成] ダイアログボックスで、[名前] と [説明] を指定し、[ジョブタイプ] ドロップダウンリストからジョブタイプを選択します。EMR は、Shell、Spark SQL、Spark Shell、および Hive SQL に基づくアドホッククエリをサポートしています。重要 ジョブの作成後、ジョブのタイプを変更することはできません。
- [OK] をクリックします。
- ページの左側にある
ジョブの構成
各ジョブタイプの開発および構成方法の詳細については、「ジョブ」をご参照ください。このセクションでは、[ジョブ設定] パネルの [基本設定]、[詳細設定]、[共有ライブラリ]、および [アラート設定] タブでジョブのパラメーターを構成する方法について説明します。
- [ジョブ] ページの右上隅にある [ジョブ設定] をクリックします。
- [ジョブ設定] パネルの [基本設定] タブでパラメーターを構成します。
セクション パラメーターと説明 [ジョブの概要] - [名前]: ジョブの名前。
- [ジョブタイプ]: ジョブのタイプ。
- [説明]: ジョブの説明。このパラメーターの右側にある [編集] をクリックして、説明を変更できます。
[リソース] ジョブの実行に必要なリソース(JAR パッケージ、ユーザー定義関数(UDF)など)。右側の
アイコンをクリックして、リソースを追加します。最初にリソースをオブジェクトストレージサービス(OSS)にアップロードします。その後、ジョブに追加できます。
[構成パラメーター] ジョブスクリプトで参照する変数。${変数名} の形式でジョブスクリプト内の変数を参照できます。 右側の
アイコンをクリックして、キーと値のペア形式で変数を追加します。ビジネス要件に基づいて、[パスワード] を選択して値を非表示にすることができます。キーは変数の名前を示します。値は変数の値を示します。さらに、スケジュールの開始時刻に基づいて時間変数を構成できます。詳細については、「ジョブの日時を構成する」をご参照ください。 - [詳細設定] タブをクリックして、パラメーターを構成します。
セクション パラメーターと説明 [モード] - [ジョブ送信ノード]: ジョブを送信するモード。詳細については、「ジョブ送信モード」をご参照ください。有効な値:
- [ワーカーノード]: ランチャーを使用してジョブが YARN に送信され、YARN はジョブを実行するためのリソースを割り当てます。
- [ヘッダー/ゲートウェイノード]: ジョブは、割り当てられたノードでプロセスとして実行されます。
- [推定最大期間]: ジョブの推定最大実行時間。有効な値:0 ~ 10800。単位:秒。
[環境変数] ジョブの実行に使用される環境変数。ジョブスクリプトから環境変数をエクスポートすることもできます。 - 例 1:
echo ${ENV_ABC}というコードで Shell ジョブを構成します。ENV_ABC 変数を12345に設定すると、echoコマンドを実行した後に12345の値が返されます。 - 例 2:
java -jar abc.jarというコードで Shell ジョブを構成します。abc.jar パッケージの内容:public static void main(String[] args) {System.out.println(System.getEnv("ENV_ABC"));}ENV_ABC 変数を 12345 に設定すると、ジョブを実行した後に12345の値が返されます。[環境変数] セクションで ENV_ABC 変数を設定する効果は、次のスクリプトを実行するのと同じです。export ENV_ABC=12345 java -jar abc.jar
[スケジューリングパラメーター] ジョブのスケジュールに使用されるパラメーター(キュー、メモリ(MB)、vCores、優先度、実行者など)。これらのパラメーターを構成しない場合は、Hadoop クラスターのデフォルト設定が使用されます。 説明 メモリ(MB)パラメーターは、ランチャーのメモリクォータを指定します。 - [ジョブ送信ノード]: ジョブを送信するモード。詳細については、「ジョブ送信モード」をご参照ください。有効な値:
- [共有ライブラリ] タブをクリックします。[依存ライブラリ] セクションで、[ライブラリ] を指定します。
ジョブの実行は、データソースに関連する一部のライブラリファイルに依存します。EMR は、ライブラリを依存ライブラリとしてスケジューリングセンターのリポジトリに公開します。ジョブを作成するときは、依存ライブラリを指定する必要があります。依存ライブラリを指定するには、
sharedlibs:streamingsql:datasources-bundle:2.0.0などの参照文字列を入力します。 - [アラート設定] タブをクリックして、アラートパラメーターを構成します。
パラメーター 説明 [実行失敗] ジョブが失敗した場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。 [起動タイムアウト時のアクション] ジョブの起動がタイムアウトした場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。 [ジョブの実行がタイムアウトしました。] ジョブの実行がタイムアウトした場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。
ジョブの実行
- 作成したジョブを実行します。
- [ジョブ] ページの右上隅にある [実行] をクリックして、ジョブを実行します。
- [ジョブの実行] ダイアログボックスで、リソースグループと作成したクラスターを選択します。
- [OK] をクリックします。
- 操作ログを表示します。
- ジョブを実行した後、ジョブページの下部にある [ログ] タブで操作ログを表示できます。
- [レコード] タブをクリックして、ジョブインスタンスの実行レコードを表示します。
- ジョブインスタンスの [アクション] 列の [詳細] をクリックして、[スケジューリングセンター] タブに移動します。このタブで、ジョブインスタンスの詳細を表示できます。
ジョブのロック
ジョブを編集するときに、ジョブページの右上隅にある [ロック] をクリックして、ジョブをロックできます。これにより、使用しているアカウントのみがジョブを編集できます。プロジェクトの他のメンバーは、ジョブのロックが解除された後にのみ、このジョブを編集できます。