すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:アドホッククエリの実行

最終更新日:Jan 11, 2025

E-MapReduce(EMR)は、データサイエンティストやデータアナリスト向けのアドホッククエリをサポートしています。SQL ステートメントを実行して、アドホッククエリを実行できます。アドホッククエリジョブを実行すると、関連するログとクエリ結果がジョブページの下部に表示されます。このトピックでは、EMR コンソール の [アドホッククエリ] ページでジョブを作成、構成、実行、およびロックする方法について説明します。

背景情報

[アドホッククエリ] ページでは、次の操作を実行できます。

前提条件

プロジェクトが作成されていること。詳細については、「プロジェクトの管理」をご参照ください。

ジョブの作成

  1. [データプラットフォーム] タブに移動します。
    1. Alibaba Cloud アカウントを使用して、Alibaba Cloud EMR コンソール にログオンします。
    2. 上部のナビゲーションバーで、クラスターが存在するリージョンを選択 し、ビジネス要件に基づいてリソースグループを選択します
    3. [データプラットフォーム] タブをクリックします。
  2. [プロジェクト] セクションで、作成したプロジェクトを見つけ、[アクション] 列の [ジョブの編集] をクリックします。
  3. アドホッククエリのジョブを作成します。
    1. ページの左側にある search_temp アイコンをクリックします。
    2. 左側の [アドホッククエリ] ペインで、ジョブを作成するフォルダーを右クリックし、[ジョブの作成] を選択します。
      説明 フォルダーを右クリックして、[サブフォルダーの作成][フォルダー名の変更]、または [フォルダーの削除] を選択して、必要な操作を実行することもできます。
    3. [インタラクティブジョブの作成] ダイアログボックスで、[名前][説明] を指定し、[ジョブタイプ] ドロップダウンリストからジョブタイプを選択します。
      EMR は、Shell、Spark SQL、Spark Shell、および Hive SQL に基づくアドホッククエリをサポートしています。
      重要 ジョブの作成後、ジョブのタイプを変更することはできません。
    4. [OK] をクリックします。

ジョブの構成

各ジョブタイプの開発および構成方法の詳細については、「ジョブ」をご参照ください。このセクションでは、[ジョブ設定] パネルの [基本設定][詳細設定][共有ライブラリ]、および [アラート設定] タブでジョブのパラメーターを構成する方法について説明します。

  1. [ジョブ] ページの右上隅にある [ジョブ設定] をクリックします。
  2. [ジョブ設定] パネルの [基本設定] タブでパラメーターを構成します。
    セクションパラメーターと説明
    [ジョブの概要]
    • [名前]: ジョブの名前。
    • [ジョブタイプ]: ジョブのタイプ。
    • [説明]: ジョブの説明。このパラメーターの右側にある [編集] をクリックして、説明を変更できます。
    [リソース]ジョブの実行に必要なリソース(JAR パッケージ、ユーザー定義関数(UDF)など)。右側の Plus sign アイコンをクリックして、リソースを追加します。

    最初にリソースをオブジェクトストレージサービス(OSS)にアップロードします。その後、ジョブに追加できます。

    [構成パラメーター]ジョブスクリプトで参照する変数。${変数名} の形式でジョブスクリプト内の変数を参照できます。

    右側の Plus sign アイコンをクリックして、キーと値のペア形式で変数を追加します。ビジネス要件に基づいて、[パスワード] を選択して値を非表示にすることができます。キーは変数の名前を示します。値は変数の値を示します。さらに、スケジュールの開始時刻に基づいて時間変数を構成できます。詳細については、「ジョブの日時を構成する」をご参照ください。

  3. [詳細設定] タブをクリックして、パラメーターを構成します。
    セクションパラメーターと説明
    [モード]
    • [ジョブ送信ノード]: ジョブを送信するモード。詳細については、「ジョブ送信モード」をご参照ください。有効な値:
      • [ワーカーノード]: ランチャーを使用してジョブが 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)パラメーターは、ランチャーのメモリクォータを指定します。
  4. [共有ライブラリ] タブをクリックします。
    [依存ライブラリ] セクションで、[ライブラリ] を指定します。

    ジョブの実行は、データソースに関連する一部のライブラリファイルに依存します。EMR は、ライブラリを依存ライブラリとしてスケジューリングセンターのリポジトリに公開します。ジョブを作成するときは、依存ライブラリを指定する必要があります。依存ライブラリを指定するには、sharedlibs:streamingsql:datasources-bundle:2.0.0 などの参照文字列を入力します。

  5. [アラート設定] タブをクリックして、アラートパラメーターを構成します。
    パラメーター説明
    [実行失敗]ジョブが失敗した場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。
    [起動タイムアウト時のアクション]ジョブの起動がタイムアウトした場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。
    [ジョブの実行がタイムアウトしました。]ジョブの実行がタイムアウトした場合に、アラート連絡先グループまたは DingTalk アラートグループに通知を送信するかどうかを指定します。

ジョブの実行

  1. 作成したジョブを実行します。
    1. [ジョブ] ページの右上隅にある [実行] をクリックして、ジョブを実行します。
    2. [ジョブの実行] ダイアログボックスで、リソースグループと作成したクラスターを選択します。
    3. [OK] をクリックします。
  2. 操作ログを表示します。
    1. ジョブを実行した後、ジョブページの下部にある [ログ] タブで操作ログを表示できます。
    2. [レコード] タブをクリックして、ジョブインスタンスの実行レコードを表示します。
    3. ジョブインスタンスの [アクション] 列の [詳細] をクリックして、[スケジューリングセンター] タブに移動します。このタブで、ジョブインスタンスの詳細を表示できます。

ジョブのロック

ジョブを編集するときに、ジョブページの右上隅にある [ロック] をクリックして、ジョブをロックできます。これにより、使用しているアカウントのみがジョブを編集できます。プロジェクトの他のメンバーは、ジョブのロックが解除された後にのみ、このジョブを編集できます。

説明 ジョブをロックした RAM ユーザーと Alibaba Cloud アカウントのみがジョブのロックを解除できます。