

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EMR API コールの一般的な考え方
<a name="emr-common-programming-concepts"></a>

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

**Topics**
+ [Amazon EMR におけるエンドポイント](#endpoints)
+ [Amazon EMR でのクラスターパラメータの指定](#API_SpecifyingParameters)
+ [Amazon EMR のアベイラビリティーゾーン](#AvailabilityZones)
+ [Amazon EMR クラスターで追加のファイルおよびライブラリを使用する方法](#HowtoUseAdditionalFilesandLibrariesWiththeMapperorReducer)

## Amazon EMR におけるエンドポイント
<a name="endpoints"></a>

エンドポイントは、ウェブサービスのエントリポイントとなる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 全般のリファレンス」の「[リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#emr_region)」を参照してください。

## Amazon EMR でのクラスターパラメータの指定
<a name="API_SpecifyingParameters"></a>

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

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

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

 `RunJobFlow` 独自のパラメータの詳細については、[RunJobFlow](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow.html) を参照してください。リクエストの一般的なパラメータの詳細については、「[リクエストの一般的なパラメータ](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/CommonParameters.html)」を参照してください。

## Amazon EMR のアベイラビリティーゾーン
<a name="AvailabilityZones"></a>

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

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

## Amazon EMR クラスターで追加のファイルおよびライブラリを使用する方法
<a name="HowtoUseAdditionalFilesandLibrariesWiththeMapperorReducer"></a>

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

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

  ```
  1. -cacheFile s3://bucket/path_to_executable#local_path
  ```

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