API コールの一般的な考え方 - Amazon EMR

API コールの一般的な考え方

Amazon EMR API を呼び出すアプリケーションを作成する際、SDK のラッパー関数のいずれかを呼び出す場合に適用されるいくつかの概念があります。

Amazon EMR におけるエンドポイント

エンドポイントは、ウェブサービスのエントリポイントとなる URL です。ウェブサービスの各リクエストには、1 つずつエンドポイントが含まれている必要があります。エンドポイントは、クラスターが作成、記述、または終了される AWS リージョンを指定します。これは、elasticmapreduce.regionname.amazonaws.com という形式です。全般的なエンドポイント (elasticmapreduce.amazonaws.com) を指定すると、Amazon EMR はリクエストをデフォルトのリージョンのエンドポイントに送信します。2013 年 3 月 8 日以降に作成されたアカウントの場合、デフォルトのリージョンは us-west-2; です。それ以前のアカウントの場合、デフォルトのリージョンは us-east-1 です。

Amazon EMR のエンドポイントの詳細については、「Amazon Web Services 全般のリファレンス」の「リージョンとエンドポイント」を参照してください。

Amazon EMR でのクラスターパラメータの指定

Instances パラメータを使用すると、データを処理するために作成する EC2 インスタンスのタイプと数を設定できます。Hadoop は、データの処理を複数のクラスターノードに分配します。マスターノードには、コアノードおよびタスクノードが正常であるかどうかを追跡することと、ジョブの結果ステータスをノードに問い合わせるという責任があります。コアノードとタスクノードが実際のデータ処理を実行します。クラスターが単一のノードで処理される場合は、そのノードがマスターノードとコアノードの両方として機能します。

KeepJobAlive リクエストにおける RunJobFlow パラメータは、実行するクラスターステップがなくなったクラスターを終了するかどうかを決定します。クラスターが予定どおりに実行されていることが確かである場合は、この値を False に設定します。ジョブフローをトラブルシューティングしていて、クラスターの実行が中断されている間にステップを追加している場合は、この値を True に設定します。これにより、ステップを修正した後でクラスターを再開するために繰り返されるだけの処理である、Amazon Simple Storage Service (Amazon S3) への結果のアップロードにかかる時間やコストを減らすことができます。

KeepJobAlivetrue である場合は、クラスターの作業が正常に完了した後で TerminateJobFlows リクエストを送信する必要があります。送信しないと、クラスターが引き続き実行されて AWS の料金が発生します。

RunJobFlow 独自のパラメータの詳細については、RunJobFlow を参照してください。リクエストの一般的なパラメータの詳細については、「リクエストの一般的なパラメータ」を参照してください。

Amazon EMR のアベイラビリティーゾーン

Amazon EMR は、クラスターを処理するノードとして EC2 インスタンスを使用します。この EC2 インスタンスには、アベイラビリティーゾーンとリージョンから構成される場所が含まれます。リージョンは、独立した地理的領域に分散して存在します。アベイラビリティーゾーンはリージョン内の特定の場所であり、他のアベイラビリティーゾーン内で障害が発生しても影響を受けません。各アベイラビリティーゾーンには、同一リージョン内の他のアベイラビリティーゾーンとの間に低コストでレイテンシーの少ないネットワーク接続が用意されています。Amazon EMR のリージョンとエンドポイントの一覧については、「Amazon Web Services 全般のリファレンス」の「リージョンとエンドポイント」を参照してください。

AvailabilityZone パラメータは、クラスターのおおよその場所を指定します。このパラメータはオプションであり、原則として使用しないことをお勧めします。Amazon EMR で AvailabilityZone を指定しないと、クラスターにとって最適な AvailabilityZone 値が自動的に選択されます。このパラメータは、インスタンスを既存の実行中のインスタンスやクラスターと同じ場所に置いて、それらのインスタンスのデータを読み書きする必要がある場合、役立つことがあります。詳細については、「Linux インスタンス用Amazon EC2 ユーザーガイド」を参照してください。

Amazon EMR クラスターで追加のファイルおよびライブラリを使用する方法

マッパーまたはリデューサーアプリケーションで、追加のファイルや独自のライブラリを使用したいことがあります。たとえば、PDF ファイルをプレーンテキストに変換するライブラリを使用する場合が考えられます。

Hadoop ストリーミングの使用中にマッパーまたはリデューサー向けのファイルをキャッシュするには
  • JAR args フィールドで、以下の引数を追加します。

    -cacheFile s3://bucket/path_to_executable#local_path

    local_path ファイルは、ファイルを参照できるマッパーの作業ディレクトリにあります。