AWS Data Pipeline は、新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS Data Pipeline 引き続き使用できます。詳細はこちら
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
EmrActivity
EMR クラスターを実行します。
AWS Data Pipeline は、Amazon とは異なる形式のステップを使用しますEMR。たとえば、EmrActivity
ステップフィールドJARの名前の後にカンマ区切りの引数 AWS Data Pipeline を使用します。次の例は、Amazon 用にフォーマットされたステップとEMR、それに AWS Data Pipeline 続く同等のステップを示しています。
s3://example-bucket/MyWork.jar arg1 arg2 arg3
"s3://example-bucket/MyWork.jar,arg1,arg2,arg3"
例
以下は、このオブジェクト型の例です。この例では、古いバージョンの Amazon を使用していますEMR。この例が正しいかどうかは、使用している Amazon EMRクラスターのバージョンで確認してください。
このオブジェクトは、同じパイプライン定義ファイルで定義した他のオブジェクトを 3 つ参照します。MyEmrCluster
は EmrCluster
オブジェクトで、MyS3Input
と MyS3Output
は S3DataNode
オブジェクトです。
注記
この例では、 step
フィールドを目的のクラスター文字列に置き換えることができます。これは、Pig スクリプト、Hadoop ストリーミングクラスター、パラメータJARを含む独自のカスタムなどです。
Hadoop 2.x (AMI 3.x)
{ "id" : "MyEmrActivity", "type" : "EmrActivity", "runsOn" : { "ref" : "MyEmrCluster" }, "preStepCommand" : "scp remoteFiles localFiles", "step" : ["s3://mybucket/myPath/myStep.jar,firstArg,secondArg,-files,s3://mybucket/myPath/myFile.py,-input,s3://myinputbucket/path,-output,s3://myoutputbucket/path,-mapper,myFile.py,-reducer,reducerName","s3://mybucket/myPath/myotherStep.jar,..."], "postStepCommand" : "scp localFiles remoteFiles", "input" : { "ref" : "MyS3Input" }, "output" : { "ref" : "MyS3Output" } }
注記
引数を 1 ステップでアプリケーションに渡すには、以下の例のように、スクリプトのパスに Region を指定する必要があります。さらに、渡す引数をエスケープすることが必要になる場合があります。たとえば、script-runner.jar
を使ってシェルスクリプトを実行する場合、スクリプトに引数を渡すには、引数を区切るカンマをエスケープする必要があります。次のステップスロットはそれを行う方法を示しています。
"step" : "s3://
eu-west-1
.elasticmapreduce/libs/script-runner/script-runner.jar,s3://datapipeline/echo.sh,a\\\\,b\\\\,c"
このステップでは、script-runner.jar
を使って echo.sh
シェルスクリプトを実行し、a
、b
、c
を単一の引数としてスクリプトに渡します。最初のエスケープ文字は結果として生じる引数から削除されるので再度エスケープする必要があります。例えば、 で引数File\.gz
として がある場合JSON、 を使用してエスケープできますFile\\\\.gz
。ただし、最初のエスケープは破棄されるため、File\\\\\\\\.gz
を使う必要があります。
構文
オブジェクト呼び出しフィールド | 説明 | スロットタイプ |
---|---|---|
schedule | このオブジェクトは、スケジュール期間の実行中に呼び出されます。このオブジェクトの依存関係の実行順序を設定するために、別のオブジェクトへのスケジュール参照を指定します。この要件を満たすには、オブジェクトのスケジュールを明示的に設定できます。たとえば、"schedule": {"ref":
"DefaultSchedule"} と指定します。ほとんどの場合、すべてのオブジェクトがそのスケジュールを継承するように、スケジュール参照をデフォルトのパイプラインオブジェクトに配置することをお勧めします。または、パイプラインにスケジュールのツリー (マスタースケジュール内のスケジュール) がある場合は、スケジュール参照がある親オブジェクトを作成できます。オプションのスケジュール設定の例については、「https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html」を参照してください。 |
リファレンスオブジェクト、例えば「schedule」:{「ref"myScheduleId」} |
必須のグループ (次のいずれかが必要です) | 説明 | スロットタイプ |
---|---|---|
runsOn | このジョブを実行する Amazon EMRクラスター。 | リファレンスオブジェクト、例:runsOn「」:{「ref"myEmrClusterId」} |
workerGroup | ワーカーグループ。これはルーティングタスクに使用されます。値 runsOn を指定して、workerGroup がある場合、workerGroup は無視されます。 |
文字列 |
オプションのフィールド | 説明 | スロットタイプ |
---|---|---|
attemptStatus | リモートアクティビティから最も最近報告されたステータス。 | 文字列 |
attemptTimeout | リモートの作業完了のタイムアウト。設定された場合、設定された開始時間内に完了しなかったリモートアクティビティを再試行することができます。 | [Period] (期間) |
dependsOn | 実行可能な別のオブジェクトで依存関係を指定します。 | リファレンスオブジェクト、例:dependsOn「」:{「ref"myActivityId」} |
failureAndRerunモード | 依存関係が失敗または再実行されたときのコンシューマーノードの動作を示します。 | 一覧表 |
input | 入力データの場所。 | リファレンスオブジェクト、例えば「input」:{「ref"myDataNodeId」} |
lateAfterTimeout | オブジェクトが完了しなければならない、パイプライン開始からの経過時間。スケジュールタイプが ondemand に設定されていない場合にのみトリガーされます。 |
[Period] (期間) |
maxActiveInstances | コンポーネントで同時にアクティブになるインスタンスの最大数。再実行はアクティブなインスタンスの数にはカウントされません。 | 整数 |
maximumRetries | 失敗時の最大再試行回数。 | 整数 |
onFail | 現在のオブジェクトが失敗したときに実行するアクション。 | リファレンスオブジェクト、例:onFail「」:{「ref"myActionId」} |
onLateAction | オブジェクトが予定されていないか、まだ完了していない場合にトリガーされるアクション。 | リファレンスオブジェクト、例:onLateAction「」:{「ref"myActionId」} |
onSuccess | 現在のオブジェクトが成功したときに実行するアクション。 | リファレンスオブジェクト、例:onSuccess「」:{「ref"myActionId」} |
output | 出力データの場所。 | リファレンスオブジェクト、例:「output」:{「ref"myDataNodeId」} |
parent | スロットの継承元となる現在のオブジェクトの親。 | リファレンスオブジェクト、例:「parent」:{「ref"myBaseObjectId」} |
pipelineLogUri | パイプラインのログをアップロードするための 's3:///Prefix/' などの Amazon S3 。 URIBucketName | 文字列 |
postStepCommand | すべてのステップが完了した後に実行するシェルスクリプト。スクリプトを複数(最大 255 個)指定するには、postStepCommand フィールドを複数追加します。 |
文字列 |
precondition | オプションで前提条件を定義します。データノードは、すべての前提条件が満たされREADYるまで「」とマークされません。 | リファレンスオブジェクト、例:「precondition」:{「ref"myPreconditionId」} |
preStepCommand | ステップを実行する前に実行するシェルスクリプト。スクリプトを複数(最大 255 個)指定するには、preStepCommand フィールドを複数追加します。 |
文字列 |
reportProgressTimeout | reportProgress へのリモート作業の連続した呼び出しのタイムアウト。設定された場合、指定された期間の進捗状況を報告しないリモートアクティビティは停止されたと見なし、再試行できます。 |
[Period] (期間) |
resizeClusterBefore実行中 |
入力または出力として指定された DynamoDB テーブルに対応するため、このアクティビティを実行する前にクラスターのサイズを変更します。 注記
|
ブール値 |
resizeClusterMaxインスタンス | サイズ変更アルゴリズムによってリクエストできるインスタンスの最大数の制限。 | 整数 |
retryDelay | 2 回の再試行の間のタイムアウト期間。 | [Period] (期間) |
scheduleType | スケジュールタイプでは、パイプライン定義のオブジェクトを間隔の最初にスケジュールするか、間隔の最後にスケジュールするかを指定できます。値は、cron 、ondemand 、および timeseries です。timeseries スケジューリングでは、インスタンスを各間隔の最後にスケジュールします。cron スケジューリングでは、インスタンスを各間隔の最初にスケジュールします。ondemand スケジュールにより、アクティベーションごとに 1 回パイプラインを実行することができます。パイプラインを再実行するために、クローンしたり再作成したりする必要はありません。ondemand スケジュールを使用する場合は、デフォルトオブジェクトで指定し、パイプラインのオブジェクトに対して指定される唯一の scheduleType である必要があります。ondemand パイプラインを使用するには、それ以降の実行ごとに、ActivatePipeline オペレーションを呼び出します。 |
一覧表 |
ステップ | クラスターが実行する 1 つ以上のステップ。ステップを複数 (最大 255 個) 指定するには、ステップフィールドを複数追加します。JAR 名前の後にカンマ区切りの引数を使用します。例:s3://example-bucket/MyWork.jar,arg1,arg2,arg3 「」。 |
文字列 |
実行時フィールド | 説明 | スロットタイプ |
---|---|---|
@activeInstances | 現在スケジュールされているアクティブなインスタンスオブジェクトのリスト。 | リファレンスオブジェクト、例: "activeInstances":{"ref"myRunnableObjectId"} |
@actualEndTime | このオブジェクトの実行が終了した時刻。 | DateTime |
@actualStartTime | このオブジェクトの実行が開始された時刻。 | DateTime |
cancellationReason | このオブジェクト cancellationReason がキャンセルされた場合の 。 | 文字列 |
@cascadeFailedOn | オブジェクトが失敗した際の依存関係チェーンの説明。 | リファレンスオブジェクト、例:cascadeFailedOn「」:{「ref"myRunnableObjectId」} |
emrStepLog | EMR アクティビティの試行でのみ使用できる Amazon EMR ステップログ | 文字列 |
errorId | このオブジェクトが失敗した場合は errorId 。 |
文字列 |
errorMessage | このオブジェクトが失敗した場合は errorMessage 。 |
文字列 |
errorStackTrace | このオブジェクトが失敗した場合は、エラースタックトレース。 | 文字列 |
@finishedTime | このオブジェクトが実行を終了した時刻。 | DateTime |
hadoopJobLog | EMRベースのアクティビティの試行で使用可能な Hadoop ジョブログ。 | 文字列 |
@healthStatus | 終了状態に達した最後のオブジェクトインスタンスの成功または失敗を反映する、オブジェクトのヘルスステータス。 | 文字列 |
@healthStatusFromInstanceId | 終了状態に達した最後のインスタンスオブジェクトの ID。 | 文字列 |
@healthStatusUpdatedTime | ヘルス状態が最後に更新された時間。 | DateTime |
hostname | タスクの試行を取得したクライアントのホスト名。 | 文字列 |
@lastDeactivatedTime | このオブジェクトが最後に非アクティブ化された時刻。 | DateTime |
@latestCompletedRunTime | 実行が完了した最後の実行の時刻。 | DateTime |
@latestRunTime | 実行がスケジュールされた最後の実行の時刻。 | DateTime |
@nextRunTime | 次回にスケジュールされた実行の時刻。 | DateTime |
reportProgressTime | リモートアクティビティで進捗状況が報告された最新の時刻。 | DateTime |
@scheduledEndTime | オブジェクトの予定された終了時刻。 | DateTime |
@scheduledStartTime | オブジェクトの予定された開始時刻。 | DateTime |
@status | このオブジェクトのステータス。 | 文字列 |
@version | オブジェクトを作成したパイプラインのバージョン。 | 文字列 |
@waitingOn | このオブジェクトが待機している依存関係のリストの説明。 | リファレンスオブジェクト、例:waitingOn「」:{「ref"myRunnableObjectId」} |
システムフィールド | 説明 | スロットタイプ |
---|---|---|
@error | 形式が正しくないオブジェクトを説明するエラー。 | 文字列 |
@pipelineId | このオブジェクトが属するパイプラインの ID。 | 文字列 |
@sphere | オブジェクトの球は、ライフサイクルにおける場所を示します。コンポーネントオブジェクトにより、試行オブジェクトを実行するインスタンスオブジェクトが発生します。 | 文字列 |