Amazon EMR
管理ガイド

256 を超えるステップをクラスターに追加する

AMI 3.1.1(Hadoop 2.x)および AMI 2.4.8(Hadoop 1.x)以降、長時間稼働するクラスターが存続する間は、送信できるステップの数に制限はありませんが、任意の時点でアクティブまたは保留中にできるステップは 256 ステップまでです。それ以前の AMI バージョンの場合は、クラスターで処理できるステップの総数が 256 に制限されます(Hive のインストールや Pig のインストールなどのシステムステップを含む)。詳細については、「クラスターへの作業の送信」を参照してください。

3.1.1 より前および 2.4.8 より前の AMI での 256 ステップの制限を回避するために、次のいくつかの方法のうちのいずれかを使用できます。

  1. 各ステップから Hadoop に複数のジョブを送信する。これによって、3.1.1 および 2.4.8 よりも前のバージョンの AMI におけるステップ数が無制限になるわけではありませんが、256 を超えるステップの数が決まっている場合には最も簡単な方法です。

  2. 長時間稼働クラスター上のステップ内で実行されるワークフロープログラムを記述し、ジョブを Hadoop に送信する。ワークフロープログラムは、次のいずれかを行うようにすることが考えられます。

    • Amazon SQS キューをリッスンして、実行すべき新しいステップに関する情報を受け取る。

    • 実行すべき新しいステップに関する情報を含むファイルがないか、定期的なスケジュールで Amazon S3 バケットをチェックする。

  3. EC2 インスタンス上で実行されるワークフロープログラムを Amazon EMR 外で作成し、SSH を使用して長時間稼働クラスターにジョブを送信します。

  4. SSH 経由で長時間稼働クラスターに接続し、Hadoop API を使用して Hadoop ジョブを送信します。詳細については、http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/JobClient.html を参照してください。

  5. SSH クライアント(PuTTY や OpenSSH など)を使用してマスターノードに接続し、手動でジョブをクラスターに送信するか、AWS CLI で ssh サブコマンドを使用して接続とジョブの送信の両方を行います。マスターノードとの SSH 接続を確立する方法の詳細については、「SSH を使用してマスターノードに接続する」を参照してください。インタラクティブに Hadoop ジョブを送信する方法の詳細については、「Hadoop ジョブのインタラクティブな送信」を参照してください。