Amazon EMR
管理ガイド

Hadoop ジョブのインタラクティブな送信

クラスターにステップを追加する他に、SSH クライアントまたは AWS CLI を使用してマスターノードに接続し、インタラクティブに Hadoop ジョブを送信できます。たとえば、PuTTY を使用してマスターノードとの SSH 接続を確立し、1 つ以上の Hadoop ジョブにコンパイルされるインタラクティブな Hive クエリを送信できます。

Hadoop ジョブをインタラクティブに送信するには、マスターノードへの SSH 接続を確立するか(PuTTY または OpenSSH などの SSH クライアントを使用)、AWS CLI で ssh サブコマンドを使用します。クラスターで実行しているアクティブなステップが 256 ある場合でも、マスターノードにジョブをインタラクティブに送信できます。ただし、インタラクティブに送信されるジョブに関連付けられているログレコードが、現在実行されているステップのコントローラログの [step created jobs] セクションに含まれることに注意してください。ステップログの詳細については、「ログファイルを表示する」を参照してください。

以下の例は、マスターノードに Hadoop ジョブと Hive ジョブをインタラクティブに送信する方法を示しています。他のプログラミングフレームワーク(Pig など)でジョブを送信するプロセスも、これらの例と同様です。

AWS CLI を使用してインタラクティブに Hadoop ジョブを送信するには

  • AWS CLI を使用して、CLI コマンドで SSH 接続を確立することによって(ssh サブコマンドを使用)、インタラクティブに Hadoop ジョブを送信できます。ローカルの Windows マシンからマスターノードのファイルシステムに JAR ファイルをコピーするには、次のコマンドを入力します。j-2A6HXXXXXXL7J をクラスター ID に、mykey.ppk をキーペアファイルの名前に、myjar.jar を JAR ファイルの名前に置き換えます。

    aws emr put --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --src "C:\Users\username\myjar.jar"

    SSH 接続を作成し、Hadoop ジョブ myjar.jar を送信するには、次のコマンドを入力します。

    aws emr ssh --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --command "hadoop jar myjar.jar"

AWS CLI での Amazon EMR コマンドの使用方法の詳細については、「https://docs.aws.amazon.com/cli/latest/reference/emr」を参照してください。

AWS CLI を使用してインタラクティブに Hive ジョブを送信するには

JAR ファイルを通じてマスターノードにジョブを送信するだけでなく、マスターノード上で実行されている Hadoop プログラミングフレームワークのいずれかとやり取りすることによって、ジョブを送信することもできます。たとえば、コマンドラインで Hive クエリまたは Pig 変換をインタラクティブに送信できます。または、スクリプトをクラスターに送信して処理できます。その場合、コマンドまたはスクリプトは、1 つ以上の Hadoop ジョブにコンパイルされます。

次の手順は、AWS CLI を使用して Hive スクリプトを実行する方法を示しています。

  1. クラスターに Hive がインストールされていない場合は、次のコマンドを入力してインストールします。j-2A6HXXXXXXL7J をクラスター ID に置き換えます。

    aws emr install-applications --cluster-id j-2A6HXXXXXXL7J --apps Name=Hive
  2. 実行するクエリまたはコマンドを含む Hive スクリプトファイルを作成します。次の my-hive.q という名前のサンプルスクリプトでは、aTableanotherTable という 2 つのテーブルを作成し、aTable の内容を anotherTable にコピーして、すべてのデータを置き換えます。

    ---- sample Hive script file: my-hive.q ---- create table aTable (aColumn string) ; create table anotherTable like aTable; insert overwrite table anotherTable select * from aTable
  3. 次のコマンドを入力して、コマンドラインから ssh サブコマンドを使用してスクリプトを実行します。

    Windows マシンからクラスターに my-hive.q をコピーするには、次のコマンドを入力します。j-2A6HXXXXXXL7J をクラスター ID に、mykey.ppk をキーペアファイルの名前に置き換えます。

    aws emr put --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --src "C:\Users\username\my-hive.q"

    SSH 接続を作成し、Hive スクリプト my-hive.q を送信するには、次のコマンドを入力します。

    aws emr ssh --cluster-id j-2A6HXXXXXXL7J --key-pair-file "C:\Users\username\Desktop\Keys\mykey.ppk" --command "hive -f my-hive.q"

AWS CLI での Amazon EMR コマンドの使用方法の詳細については、「https://docs.aws.amazon.com/cli/latest/reference/emr」を参照してください。