「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
EmrCluster
Amazon EMR クラスターの設定を表します。このオブジェクトは、クラスターの起動EmrActivityに HadoopActivity および によって使用されます。
Schedulers
スケジューラーは、Hadoop クラスター内のリソースの割り当てとジョブの優先順位付けを指定する方法を提供します。管理者またはユーザーは、ユーザーおよびアプリケーションのクラス別のスケジューラーを選択できます。スケジューラーは、キューを使用してユーザーおよびアプリケーションにリソースを割り当てることができます。キューは、クラスターを作成する際に設定します。次に、特定のタイプの作業やユーザー間の優先順位を設定できます。これにより、クラスターのリソースが効率的に使用され、複数のユーザーから作業をクラスターに送信できるようになります。次の 3 種類のスケジューラーを使用できます。
-
長期間にわたってリソースの均等なスケジュールをFairScheduler
—試みます。 -
CapacityScheduler
—キューを使用して、クラスター管理者がさまざまな優先度とリソース割り当てのキューにユーザーを割り当てられるようにします。 -
Default — クラスターで使用されます。サイトで設定可能です。
Amazon EMR リリースバージョン
Amazon EMRリリースは、ビッグデータエコシステムからの一連のオープンソースのアプリケーションです。各リリースは異なるビッグデータアプリケーション、コンポーネント、および機能で構成され、クラスターを作成するときに
Amazon EMRでインストールして設定することを選択します。リリースラベルを使用してリリースバージョンを指定します。リリースラベルの形式は emr-
です。 たとえば、リリースラベルx.x.x
emr-5.30.0
およびそれ以降に基づく Amazon EMR emr-4.0.0
クラスターは、 releaseLabel
プロパティを使用して、 EmrCluster
オブジェクトのリリースラベルを指定します。以前のバージョンでは、amiVersion
プロパティを使用しています。
リリースバージョン 5.22.0 以降を使用して作成されたすべての Amazon EMR クラスターでは、署名バージョン 4 を使用して Amazon S3 へのリクエストを認証します。以前の一部のリリースバージョンでは、署名バージョン 2 を使用しています。署名バージョン 2 のサポートは中止されています。詳細については、「Amazon S3 SigV2 の更新 - 拡張および変更済みの廃止期間」を参照してください
考慮事項と制約事項
Task Runner の最新バージョンを使用する
リリースラベルを持つ自己管理型EmrCluster
オブジェクトを使用している場合は、最新の Task Runner を使用します。Task Runner の詳細については、「Task Runner の操作」を参照してください。Amazon EMR 設定のすべての分類に対してプロパティ値を設定できます。詳細については、 、 Amazon EMR リリース ガイド 、および オブジェクトリファレンスEmrConfigurationの「アプリケーションPropertyの設定」を参照してください。
Amazon EMR6.0.0 はサポートされていません
AWS Data PipelineはAmazon EMR、リリースバージョン 6.0.0 (emr-6.0.0) をサポートしていません。このバージョンの Amazon EMRは Apache Pig をサポートしていないためです。
Amazon EMR6.x リリースと Hadoop 3.x Jar 依存関係
Amazon EMR6.x リリースシリーズでは、Hadoop バージョン 3.x を使用しています。これにより、Hadoop のバージョン 2.x と比較して、Hadoop のクラスパスの評価方法が大幅に変更されます。Joda-Time などの共通ライブラリがクラスパスから削除されました。
Hadoop 3.x で削除されたライブラリに依存関係がある Jar ファイルEmrActivityを実行HadoopActivityした場合、ステップはエラーjava.lang.NoClassDefFoundError
または で失敗しますjava.lang.ClassNotFoundException
。 5.x リリースバージョンを使用しても問題なく実行された Jar ファイルでこれが発生する可能性があります。Amazon EMR
この問題を解決するには、 EmrCluster
または を開始する前に、EmrActivity
オブジェクトの Hadoop クラスパスに Jar ファイルの依存関係をコピーする必要がありますHadoopActivity
。 これを行うための bash スクリプトが用意されています。bash スクリプトは次の場所で使用できます。MyRegion
は、 AWS オブジェクトが実行される EmrCluster
リージョンです ( など)us-west-2
。
s3://datapipeline-
MyRegion
/MyRegion
/bootstrap-actions/latest/TaskRunner/copy-jars-to-hadoop-classpath.sh
スクリプトを実行する方法は、 が管理するリソースでEmrActivity
実行されるか、自己管理型リソースで実行されるHadoopActivity
かによって異なります。AWS Data Pipeline
によって管理されるリソースを使用する場合は、AWS Data PipelineオブジェクトbootstrapAction
に を追加します。EmrCluster
bootstrapAction
は、コピーするスクリプトと Jar ファイルを引数として指定します。bootstrapAction
オブジェクトごとに最大 255 のEmrCluster
フィールドを追加できます。また、既にブートストラップアクションを持つbootstrapAction
オブジェクトにEmrCluster
フィールドを追加できます。
このスクリプトをブートストラップアクションとして指定するには、次の構文を使用します。ここで、 JarFileRegion
は Jar ファイルが保存される リージョンであり、各 は MyJarFilen
は、Hadoop クラスパスにコピーされる Jar ファイル内の絶対パスです。Amazon S3デフォルトでは、Hadoop クラスパスにある Jar ファイルを指定しないでください。
s3://datapipeline-
MyRegion
/MyRegion
/bootstrap-actions/latest/TaskRunner/copy-jars-to-hadoop-classpath.sh,JarFileRegion
,MyJarFile1
,MyJarFile2
[, ...]
次の例では、 で 2 つの Jar ファイルをコピーするブートストラップアクションを指定しますAmazon S3。my-jar-file.jar
および emr-dynamodb-tool-4.14.0-jar-with-dependencies.jar
。 この例で使用されているリージョンは、us-west-2 です。
{ "id" : "
MyEmrCluster
", "type" : "EmrCluster", "keyPair" : "my-key-pair
", "masterInstanceType" : "m5.xlarge
", "coreInstanceType" : "m5.xlarge
", "coreInstanceCount" : "2
", "taskInstanceType" : "m5.xlarge
", "taskInstanceCount": "2
", "bootstrapAction" : ["s3://datapipeline-us-west-2
/us-west-2
/bootstrap-actions/latest/TaskRunner/copy-jars-to-hadoop-classpath.sh,us-west-2
,s3://path/to/my-jar-file.jar,s3://dynamodb-dpl-us-west-2
/emr-ddb-storage-handler/4.14.0/emr-dynamodb-tools-4.14.0-jar-with-dependencies.jar"] }
新しい変更を有効にするには、パイプラインを保存してアクティブ化する必要があります。bootstrapAction
自己管理型リソースを使用する場合は、クラスターインスタンスにスクリプトをダウンロードし、SSH を使用してコマンドラインから実行できます。スクリプトは、 という名前のディレクトリ/etc/hadoop/conf/shellprofile.d
と、そのディレクトリdatapipeline-jars.sh
内のファイルを作成します。コマンドライン引数として提供される jar ファイルは、スクリプトによって作成されるディレクトリ ( ) /home/hadoop/datapipeline_jars
にコピーされます。 クラスターの設定が異なる場合は、ダウンロード後にスクリプトを適切に変更してください。
コマンドラインでスクリプトを実行するための構文は、前の例に示されている の使用とは若干異なります。bootstrapAction
次の例に示すように、引数間にカンマの代わりにスペースを使用します。
./copy-jars-to-hadoop-classpath.sh
us-west-2
s3://path/to/my-jar-file.jar s3://dynamodb-dpl-us-west-2
/emr-ddb-storage-handler/4.14.0/emr-dynamodb-tools-4.14.0-jar-with-dependencies.jar
Amazon EMR のアクセス許可
カスタム IAM ロールを作成する場合は、クラスターが作業を実行するために必要な最小限のアクセス権限を慎重に検討します。のファイルAmazon S3や 、 Amazon
RDS 、 のデータなど、必要なリソースへのアクセス権を確実に付与Amazon Redshiftします。DynamoDBvisibleToAllUsers
を False に設定する場合は、そのために必要なアクセス権限がロールに必要です。DataPipelineDefaultRole
には、これらのアクセス権限がないことに注意してください。DefaultDataPipelineResourceRole
オブジェクトのロールとして とDataPipelineDefaultRole
ロールの結合を指定するか、この目的で独自のロールを作成する必要があります。EmrCluster