AWS Data Pipeline
開発者ガイド (API バージョン 2012-10-29)

EmrCluster

Amazon EMR クラスターの設定を表します。このオブジェクトは、EmrActivity によってクラスターを起動するために使用されます。

スケジューラー

スケジューラーは、Hadoop クラスター内のリソースの割り当てとジョブの優先順位付けを指定する方法を提供します。管理者またはユーザーは、ユーザーおよびアプリケーションのクラス別のスケジューラーを選択できます。スケジューラーは、キューを使用してユーザーおよびアプリケーションにリソースを割り当てることができます。キューは、クラスターを作成する際に設定します。次に、特定のタイプの作業やユーザー間の優先順位を設定できます。これにより、クラスターのリソースが効率的に使用され、複数のユーザーから作業をクラスターに送信できるようになります。次の 3 種類のスケジューラーを使用できます。

  • FairScheduler — 長期間にわたってリソースの均等なスケジュールを試みます。

  • CapacityScheduler — キューを使用し、クラスター管理者がさまざまな優先順位とリソース割り当てのキューにユーザーを割り当てられるようにします。

  • Default — クラスターで使用されます。サイトで設定可能です。

Amazon EMR 2.x、3.x と4.x プラットフォームの違い

AWS Data Pipeline は、リリースラベル emr-4.0.0 以降に基づいて Amazon EMR クラスターをサポートします。これにより、対応する EmrCluster オブジェクトで releaseLabel フィールドの使用が必要になります。AMI リリースと呼ばれる以前のプラットフォームでは、代わりに amiVersion フィールドを使用します。

リリースラベルを使用して自己管理型 EmrCluster オブジェクトを使用している場合は、最新の Task Runner を使用します。Task Runner の詳細については、「Task Runner の操作」を参照してください。Amazon EMR 設定のすべての分類に対してプロパティ値を設定できます。詳細については、Amazon EMR リリース ガイドの「アプリケーションの設定」、「EmrConfiguration」、および プロパティ オブジェクトリファレンスを参照してください。

Amazon EMR アクセス権限

カスタム IAM ロールを作成する場合は、クラスターが作業を実行するために必要な最小限のアクセス権限を慎重に検討します。Amazon S3 のファイルや Amazon RDS、Amazon Redshift、DynamoDB のデータなど、必要なリソースへのアクセス権を確実に付与します。visibleToAllUsers を False に設定する場合は、そのために必要なアクセス権限がロールに必要です。DataPipelineDefaultRole には、これらのアクセス権限がないことに注意してください。EmrCluster オブジェクトのロールとして DefaultDataPipelineResourceRoleDataPipelineDefaultRole のロールの結合を指定するか、この目的で独自のロールを作成する必要があります。

構文

オブジェクト呼び出しフィールド 説明 スロットタイプ
schedule このオブジェクトは、スケジュール期間の実行中に呼び出されます。このオブジェクトの依存関係の実行順序を設定するために、別のオブジェクトへのスケジュール参照を指定します。この要件を満たすには、オブジェクトのスケジュールを明示的に設定できます。たとえば、"schedule": {"ref": "DefaultSchedule"} と指定します。ほとんどの場合、すべてのオブジェクトがそのスケジュールを継承するように、スケジュール参照をデフォルトのパイプラインオブジェクトに配置することをお勧めします。または、パイプラインにスケジュールのツリー (マスタースケジュール内のスケジュール) がある場合は、スケジュール参照がある親オブジェクトを作成できます。オプションのスケジュール設定の例については、「https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html」を参照してください。 参照オブジェクト ( "schedule":{"ref":"myScheduleId"} など)

オプションのフィールド 説明 スロットタイプ
actionOnResourceFailure このリソースに対するリソースの失敗後に実行されるアクション。有効な値は retryall (指定した期間内にクラスターに対してすべてのタスクを再試行する) と retrynone です。 文字列
actionOnTaskFailure このリソースに対するタスクの失敗後に実行されるアクション。有効な値は "continue"(クラスターを終了しない)と "terminate" です。 文字列
additionalMasterSecurityGroupIds EMR クラスターの追加マスターセキュリティグループの ID (sg-01XXXX6a の形式)。詳細については、Amazon EMR 管理ガイドの「Amazon EMR の追加セキュリティグループ」を参照してください。 文字列
additionalSlaveSecurityGroupIds EMR クラスターの追加スレーブセキュリティグループの ID(sg-01XXXX6a の形式)。 文字列
amiVersion クラスターノードをインストールするために Amazon EMR で使用する Amazon マシンイメージ (AMI) のバージョン。詳細については、『Amazon EMR 管理ガイド』を参照してください。 文字列
applications カンマ区切りの引数を指定してクラスターにインストールするアプリケーション。Hive と Pig がデフォルトでインストールされます。このパラメータは Amazon EMR バージョン 4.0 以降でのみ適用できます。 文字列
attemptStatus リモートアクティビティから最も最近報告されたステータス。 文字列
attemptTimeout リモートの作業完了のタイムアウト。設定された場合、設定された開始時間内に完了しなかったリモートアクティビティを再試行することができます。 間隔
availabilityZone クラスターを実行するアベイラビリティーゾーン。 文字列
bootstrapAction クラスターの開始時に実行するアクション。カンマで区切って引数を指定できます。アクションを複数(最大 255 個)指定するには、bootstrapAction フィールドを複数追加します。ブートストラップアクションを使用しないでクラスターを開始するのが、デフォルトの動作です。 文字列
設定 Amazon EMR クラスターの設定。このパラメータは Amazon EMR バージョン 4.0 以降でのみ適用できます。 参照オブジェクト ("configuration":{"ref":"myEmrConfigurationId"} など)
coreInstanceBidPrice 最大スポット料金は、 Amazon EC2 インスタンスに対して支払う上限価格です。入札価格が指定されている場合、Amazon EMR では、インスタンスグループのスポットインスタンスが使用されます。USD で指定。また、OnDemandPrice の値は、最大スポット料金がオンデマンド価格と同じ価格に設定されていることを示します。coreInstanceCount とともに使用する必要があります。 文字列
coreInstanceCount クラスターに使用するコアノードの数。 整数
coreInstanceType コアノードに使用する Amazon EC2 インスタンスのタイプ。「Amazon EMR クラスターでサポートされる Amazon EC2 インスタンス 」を参照してください。 文字列
coreGroupConfiguration Amazon EMR クラスターのコアインスタンスグループの設定。このパラメータは Amazon EMR バージョン 4.0 以降でのみ適用できます。 参照オブジェクト (“configuration”: {“ref”: “myEmrConfigurationId”} など)
coreEbsConfiguration Amazon EMR クラスターのコアグループの各コアノードにアタッチされる Amazon EBS ボリュームの設定。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「EBS 最適化をサポートするインスタンスタイプ」を参照してください。 参照オブジェクト (“coreEbsConfiguration”: {“ref”: “myEbsConfiguration”} など)
EbsBlockDeviceConfig

インスタンスグループに関連付けられる、要求された Amazon EBS ブロックデバイスの設定。指定したボリューム数をインスタンスグループ内の各インスタンスに関連付けるためのvolumesPerInstancevolumeSpecification が含まれます。

  • volumesPerInstance は、EBS ボリュームの数を示します。インスタンスグループ内の各インスタンスに特定のボリューム設定が関連付けられます。

  • volumeSpecification は、Amazon EMR クラスター内の EC2 インスタンスにアタッチされた EBS ボリュームに要求される Amazon EBS ボリューム仕様 (ボリュームタイプ、IOPS、サイズ (GiB) など) です。

参照オブジェクト (“EbsBlockDeviceConfig”: {“ref”: “myEbsBlockDeviceConfig”} など)
emrManagedMasterSecurityGroupId Amazon EMR クラスターのマスターセキュリティグループの識別子 (sg-01XXXX6a の形式)。詳細については、Amazon EMR 管理ガイドの「セキュリティグループの設定」を参照してください。 文字列
emrManagedSlaveSecurityGroupId Amazon EMR クラスターのスレーブセキュリティグループの識別子 (sg-01XXXX6a の形式)。 文字列
enableDebugging Amazon EMR クラスターでのデバッグを有効にします。 文字列
failureAndRerunMode 依存関係が失敗または再実行されたときのコンシューマーノードの動作を示します。 一覧表
hadoopSchedulerType クラスターのスケジューラータイプ。有効なタイプは、 PARALLEL_FAIR_SCHEDULING PARALLEL_CAPACITY_SCHEDULING DEFAULT_SCHEDULER です。 一覧表
httpProxy クライアントが AWS サービスに接続するために使用するプロキシホスト。 参照オブジェクト ("httpProxy":{"ref":"myHttpProxyId"} など)
initTimeout リソースが起動するまでの待機時間。 間隔
keyPair Amazon EMR クラスターのマスターノードにログインするための Amazon EC2 キーペア。 文字列
lateAfterTimeout オブジェクトが開始する必要がある、パイプライン開始後の経過時間。スケジュールタイプが ondemand に設定されていない場合にのみトリガーされます。 間隔
masterInstanceBidPrice 最大スポット料金は、 Amazon EC2 インスタンスに対して支払う上限価格です。0~20.00 の 10 進数のみ (排他的) です。USD で指定。この値を設定すると、Amazon EMR クラスターマスターノードのスポットインスタンスが有効になります。入札価格が指定されている場合、Amazon EMR では、インスタンスグループのスポットインスタンスが使用されます。また、OnDemandPrice の値は、最大スポット料金がオンデマンド価格と同じ価格に設定されていることを示します。 文字列
masterInstanceType マスターノードに使用する Amazon EC2 インスタンスのタイプ。「Amazon EMR クラスターでサポートされる Amazon EC2 インスタンス 」を参照してください。 文字列
masterGroupConfiguration Amazon EMR クラスターのマスターインスタンスグループの設定。このパラメータは Amazon EMR バージョン 4.0 以降でのみ適用できます。 参照オブジェクト (“configuration”: {“ref”: “myEmrConfigurationId”} など)
masterEbsConfiguration Amazon EMR クラスターのマスターグループの各マスターノードにアタッチされる Amazon EBS ボリュームの設定。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「EBS 最適化をサポートするインスタンスタイプ」を参照してください。 参照オブジェクト (“masterEbsConfiguration”: {“ref”: “myEbsConfiguration”} など)
maxActiveInstances コンポーネントで同時にアクティブになるインスタンスの最大数。再実行はアクティブなインスタンスの数にはカウントされません。 整数
maximumRetries 失敗時の最大再試行回数. 整数
onFail 現在のオブジェクトが失敗したときに実行するアクション。 参照オブジェクト ("onFail":{"ref":"myActionId"} など)
onLateAction オブジェクトが予定されていないか、まだ完了していない場合にトリガーされるアクション。 参照オブジェクト ("onLateAction":{"ref":"myActionId"} など)
onSuccess 現在のオブジェクトが成功したときに実行するアクション。 参照オブジェクト ("onSuccess":{"ref":"myActionId"} など)
parent スロットの継承元となる現在のオブジェクトの親。 参照オブジェクト ("parent":{"ref":"myBaseObjectId"} など)
pipelineLogUri パイプラインのログをアップロードするための Amazon S3 URI (s3://BucketName/Key/ など)。 文字列
リージョン Amazon EMR クラスターを実行するリージョンのコード。デフォルトでは、クラスターはパイプラインと同じリージョンで実行されます。依存するデータセットと同じリージョンでクラスターを実行することもできます。 一覧表
releaseLabel EMR クラスター用のリリースラベル。 文字列
reportProgressTimeout reportProgress へのリモート作業の連続した呼び出しのタイムアウト。設定された場合、指定された期間の進捗状況を報告しないリモートアクティビティは停止されたと見なし、再試行できます。 間隔
resourceRole AWS Data Pipeline が Amazon EMR クラスターを作成するために使用する IAM ロール。デフォルトのロールは DataPipelineDefaultRole です。 文字列
retryDelay 2 回の再試行の間のタイムアウト期間。 間隔
ロール EC2 ノードを作成するために Amazon EMR に渡される IAM ロール。 文字列
runsOn このフィールドはこのオブジェクトでは使用できません。 参照オブジェクト ("runsOn":{"ref":"myResourceId"} など)
serviceAccessSecurityGroupId Amazon EMR クラスターのサービスアクセスセキュリティグループの識別子。 文字列。形式は sg-01XXXX6a です (例: sg-1234abcd)。
scheduleType スケジュールタイプでは、パイプライン定義のオブジェクトを間隔の最初にスケジュールするか、間隔の最後にスケジュールするかを指定できます。値は、cronondemand、および timeseries です。timeseries スケジューリングでは、インスタンスを各間隔の最後にスケジュールします。cron スケジューリングでは、インスタンスを各間隔の最初にスケジュールします。ondemand スケジュールにより、アクティベーションごとに 1 回パイプラインを実行することができます。パイプラインを再実行するために、クローンしたり再作成したりする必要はありません。ondemand スケジュールを使用する場合は、デフォルトオブジェクトで指定し、パイプラインのオブジェクトに対して指定される唯一の scheduleType である必要があります。ondemand パイプラインを使用するには、それ以降の実行ごとに、ActivatePipeline オペレーションを呼び出します。 一覧表
subnetId Amazon EMR クラスターを起動するサブネットの識別子。 文字列
supportedProducts Amazon EMR クラスターにサードパーティーソフトウェアをインストールするパラメータ (Hadoop のサードパーティーディストリビューションなど)。 文字列
taskInstanceBidPrice 最大スポット料金は、 EC2 インスタンスに対して支払うスポット料金です。0~20.00 の 10 進数のみ。USD で指定。入札価格が指定されている場合、Amazon EMR では、インスタンスグループのスポットインスタンスが使用されます。また、OnDemandPrice の値は、最大スポット料金がオンデマンド価格と同じ価格に設定されていることを示します。この値を設定すると、Amazon EMR クラスターのタスクノードのスポットインスタンスが有効になります。 文字列
taskInstanceCount Amazon EMR クラスターに使用するタスクノードの数。 整数
taskInstanceType タスクノードで使用する Amazon EC2 インスタンスのタイプ。 文字列
taskGroupConfiguration Amazon EMR クラスターのタスクインスタンスグループの設定。このパラメータは Amazon EMR バージョン 4.0 以降でのみ適用できます。 参照オブジェクト (“configuration”: {“ref”: “myEmrConfigurationId”} など)
taskEbsConfiguration Amazon EMR クラスターのタスクグループの各タスクノードにアタッチされる Amazon EBS ボリュームの設定。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「EBS 最適化をサポートするインスタンスタイプ」を参照してください。 参照オブジェクト (“taskEbsConfiguration”: {“ref”: “myEbsConfiguration”} など)
terminateAfter これらの多くの時間が経過した後でリソースを終了します。 整数
VolumeSpecification

Amazon EMR クラスター内の Amazon EC2 インスタンスにアタッチされた Amazon EBS ボリュームに要求される Amazon EBS ボリューム仕様 (ボリュームタイプ、IOPS、サイズ (GiB) など)。ノードは、コア、マスター、またはタスクノードです。

VolumeSpecification には以下が含まれます。

  • iops() 整数。Amazon EBS ボリュームがサポートする 1 秒あたりの I/O オペレーション (IOPS) の数 (1,000 など)。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「EBS I/O 特性」を参照してください。

  • sizeinGB()。整数。Amazon EBS ボリュームサイズ (GiB) (500 など)。ボリュームタイプとハードドライブサイズの有効な組み合わせについては、Linux インスタンス用 Amazon EC2 ユーザーガイドの「EBS ボリュームタイプ」を参照してください。

  • volumetType。文字列。Amazon EBS ボリュームタイプ (gp2 など)。サポートされているボリュームタイプには、標準、gp2、io1、st1、sc1 などがあります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「EBS ボリュームタイプ」を参照してください。

参照オブジェクト (“VolumeSpecification”: {“ref”: “myVolumeSpecification”} など)
useOnDemandOnLastAttempt リソースをリクエストする最後の試行で、スポットインスタンスではなくオンデマンドインスタンスのリクエストを作成します。これにより、以前の試行がすべて失敗した場合に、最後の試行は中断されません。 Boolean
workerGroup このオブジェクトで使用できないフィールド. 文字列

実行時フィールド 説明 スロットタイプ
@activeInstances 現在スケジュールされているアクティブなインスタンスオブジェクトのリスト。 参照オブジェクト ("activeInstances":{"ref":"myRunnableObjectId"} など)
@actualEndTime このオブジェクトの実行が終了した時刻。 DateTime
@actualStartTime このオブジェクトの実行が開始された時刻。 DateTime
cancellationReason このオブジェクトがキャンセルされた場合の cancellationReason。 文字列
@cascadeFailedOn オブジェクトが失敗した依存関係のチェーンの説明。 参照オブジェクト ("cascadeFailedOn":{"ref":"myRunnableObjectId"} など)
emrStepLog Amazon EMR アクティビティの試行でのみ使用可能なステップログ。 文字列
errorId このオブジェクトが失敗した場合はエラー ID。 文字列
errorMessage このオブジェクトが失敗した場合はエラーメッセージ。 文字列
errorStackTrace このオブジェクトが失敗した場合は、エラースタックトレース。 文字列
@failureReason リソースの失敗の理由。 文字列
@finishedTime このオブジェクトが実行を終了した時刻。 DateTime
hadoopJobLog Amazon EMR アクティビティで試みることができる Hadoop ジョブのログ。 文字列
@healthStatus 終了状態に達した最後のオブジェクトインスタンスの成功または失敗を反映する、オブジェクトのヘルスステータス。 文字列
@healthStatusFromInstanceId 終了状態に達した最後のインスタンスオブジェクトの ID。 文字列
@healthStatusUpdatedTime ヘルス状態が最後に更新された時間。 DateTime
hostname タスクの試行を取得したクライアントのホスト名。 文字列
@lastDeactivatedTime このオブジェクトが最後に非アクティブ化された時刻。 DateTime
@latestCompletedRunTime 実行が完了した最後の実行の時刻。 DateTime
@latestRunTime 実行がスケジュールされた最後の実行の時刻。 DateTime
@nextRunTime 次回にスケジュールされた実行の時刻。 DateTime
reportProgressTime リモートアクティビティで進捗状況が報告された最新の時刻。 DateTime
@scheduledEndTime オブジェクトの予定された終了時刻. DateTime
@scheduledStartTime オブジェクトの予定された開始時刻. DateTime
@status このオブジェクトのステータス。 文字列
@バージョン オブジェクトが作成されたパイプラインのバージョン。 文字列
@waitingOn このオブジェクトが待機している依存関係のリストの説明。 参照オブジェクト ("waitingOn":{"ref":"myRunnableObjectId"} など)

システムフィールド 説明 スロットタイプ
@error 形式が正しくないオブジェクトを説明するエラー. 文字列
@pipelineId このオブジェクトが属するパイプラインの ID。 文字列
@sphere ライフサイクル内のオブジェクトの場所です。コンポーネントオブジェクトにより、試行オブジェクトを実行するインスタンスオブジェクトが発生します。 文字列

以下の資料も参照してください。