2017-05-04 99 views
1

有没有办法在现有集群上的AWS Data Pipeline中运行EmrActivity?我们目前正在使用数据管道来使用EmrCluster和EmrActivity在AWS EMR中运行作业,但我们希望所有管道都在同一个群集上运行。我尝试阅读文档并在架构师中建立管道,但我似乎无法找到一种方法去做任何事情,但创建一个集群并在其上运行作业。似乎没有办法定义使用现有集群的新管道。如果有我该怎么做?我们目前使用CloudFormation来创建我们的管道,因此如果可能的话,使用CloudFormation的例子会更可取,但我会尽我所能。如何在现有的EMR集群上运行EmrActivity?

回答

1

是的,这是可能的。

  1. 启动您的EMR集群
  2. 开始TaskRunner与选项--workerGroup=name-of-the-worker-group
  3. 在您的管道的活动不指定runsOn参数,通过你的工人组,而不是主实例。

下面是使用CloudFormation定义与这样的参数活动的一个例子:

... 
{ 
     "Id": "S3ToRedshiftCopyActivity", 
     "Name": "S3ToRedshiftCopyActivity", 
     "Fields": [ 
      { 
      "Key": "type", 
      "StringValue": "RedshiftCopyActivity" 
      }, 
      { 
      "Key": "workerGroup", 
      "StringValue": "name-of-the-worker-group" 
      }, 
      { 
      "Key": "insertMode", 
      "StringValue": "#{myInsertMode}" 
      }, 
      { 
      "Key": "commandOptions", 
      "StringValue": "FORMAT CSV" 
      }, 
      { 
      "Key": "dependsOn", 
      "RefValue": "RedshiftTableCreateActivity" 
      }, 
      { 
      "Key": "input", 
      "RefValue": "S3StagingDataNode" 
      }, 
      { 
      "Key": "output", 
      "RefValue": "DestRedshiftTable" 
      } 
     ] 
} 
... 

你可以找到详细的文档如何做到这一点的位置: http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-how-task-runner-user-managed.html

相关问题