AWS Data Pipelineで管理されるリソースのTask Runner - AWS Data Pipeline

AWS Data Pipelineで管理されるリソースのTask Runner

AWS Data Pipelineによってリソースが起動および管理される場合、ウェブサービスはパイプラインのタスクを処理するそのリソースにTask Runnerを自動的にインストールします。アクティビティオブジェクトのrunsOnフィールドに、コンピューティングリソース(Amazon EC2インスタンスまたはAmazon EMRクラスター)を指定します。AWS Data Pipelineは、このリソースを起動するときに、そのリソースにTask Runnerをインストールし、runsOnフィールドがそのリソースに設定されている、すべてのアクティビティオブジェクトを処理するよう設定します。AWS Data Pipelineがリソースを終了すると、シャットダウン前に、Task RunnerのログがAmazon S3の場所に発行されます。


                    AWS Data Pipelineで管理されるリソースでのTask Runnerのライフサイクル

たとえば、パイプラインでEmrActivityを使用するばあいは、runsOnフィールドでEmrClusterリソースを指定します。AWS Data Pipelineは、このアクティビティを処理するときに、Amazon EMRクラスターを起動し、Task Runnerをマスターノードにインストールします。次に、このTask Runnerは、runsOnフィールドがそのEmrClusterオブジェクトに設定されている、アクティビティのタスクを処理します。次のパイプライン定義の抜粋は、2つのオブジェクト間のこの関係を示します。

{ "id" : "MyEmrActivity", "name" : "Work to perform on my data", "type" : "EmrActivity", "runsOn" : {"ref" : "MyEmrCluster"}, "preStepCommand" : "scp remoteFiles localFiles", "step" : "s3://myBucket/myPath/myStep.jar,firstArg,secondArg", "step" : "s3://myBucket/myPath/myOtherStep.jar,anotherArg", "postStepCommand" : "scp localFiles remoteFiles", "input" : {"ref" : "MyS3Input"}, "output" : {"ref" : "MyS3Output"} }, { "id" : "MyEmrCluster", "name" : "EMR cluster to perform the work", "type" : "EmrCluster", "hadoopVersion" : "0.20", "keypair" : "myKeyPair", "masterInstanceType" : "m1.xlarge", "coreInstanceType" : "m1.small", "coreInstanceCount" : "10", "taskInstanceType" : "m1.small", "taskInstanceCount": "10", "bootstrapAction" : "s3://elasticmapreduce/libs/ba/configure-hadoop,arg1,arg2,arg3", "bootstrapAction" : "s3://elasticmapreduce/libs/ba/configure-other-stuff,arg1,arg2" }

このアクティビティの実行の詳細および例については、「EmrActivity」を参照してください。

パイプラインに複数のAWS Data Pipelineで管理されるリソースがある場合、Task Runnerは各リソースにインストールされ、そのすべてがAWS Data Pipelineに対して、処理するタスクをポーリングします。