1

您好,我想在 Amazon EMR 上运行一个每日数据导入猪脚本。我应该使用简单工作流还是数据管道来安排和监控作业?我尝试通过数据管道,但它似乎需要一个输出。如果我正在运行自定义猪脚本,这个输出会进入什么?他们是否希望您为数据导入任务/作业使用默认的预制猪脚本?

在我的例子中,我有一个猪脚本,它从 S3 输入中获取并执行一些数据转换,然后推送到 dynamodb。试图在数据管道中安排这个猪脚本,我看到有一个猪活动类型和一个 s3 到 dynamodb 模板,但我不知道如何自定义/修改它,以便它运行我的猪脚本并在它去之前转换数据发电机分贝。这个过程中s3和dynamodb映射设置在哪里?由于 pig 脚本从 s3 导入并单独导出到 dynamodb,这是否是多余的?

4

1 回答 1

1

简单工作流对于管理工作流很有用。简单来说,它是一个具有许多功能的队列,例如历史跟踪、信令、计时器等。

当您需要 ETL 类型的引擎时,Data Pipeline 很有用。它为您提供了定期调度任务、处理不同任务之间的依赖关系和故障重试处理的能力。它还让您不必担心启动和关闭 EMR / EC2 等资源。

您始终可以通过编写自己的状态机在 SWF 之上构建所有这些东西。但是 IMO,最好将 Data Pipeline 用于您的用例。


要使用 Data Pipeline 运行自定义 Pig 作业,您应该能够禁用暂存。

阶段 = 假

'stage' 是 PigActivity 上的可选字段。

{
  "name": "DefaultActivity",
  "id": "ActivityId_1",
  "type": "PigActivity",
  "stage": "false",
  "scriptUri": "s3://bucket/query",
  "scriptVariable": [
    "param1=value1",
    "param2=value2"
  ],
  "schedule": {
    "ref": "ScheduleId_l"
  },
  "runsOn": {
    "ref": "EmrClusterId_1"
  }
}
于 2015-02-18T20:42:25.717 回答