在AWS Data Pipeline中将EmrActivity转换为HadoopActivity

时间:2018-05-30 17:13:33

标签: amazon-web-services amazon-data-pipeline

想象一下AWS Data Pipeline设置只包含以下内容:

  • 2个EmrActivities,myEmrActivity1myEmrActivity2,它们使用command-runner.jar,spark-submit和一些其他参数,如Python版本。每个活动的参数都不同。
  • 2个参数,每个EmrActivity一个

因此,例如,MyEmrActivity1运行一个计算给定年份缺勤总数的spark作业,因此该作业的EmrActivity的示例参数可能是:

myEmrActivity1: command-runner.jar,spark-submit,--master,yarn-cluster,--deploy-mode,cluster,PYTHON=python36,s3://amznhadoopactivity/school-attendance-python36/calculate_attendance_for_year.py,2017

其中2017表示提供给Python脚本的年份。

但是,HadoopActivity的结构与EmrActivity的结构略有不同。 HadoopActivity使用s3://dynamodb-emr-<region>/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar填写的Jar URI,插入我的区域 - 让我们称之为myHadoopActivity1。但是,我不知道如何将一个步骤链接到一个活动,就像我使用参数一样 - 我将如何使用HadoopActivity对象重新创建我使用数据管道中的EmrActivity设置的行为?我应该使用不同的.jar文件吗?

1 个答案:

答案 0 :(得分:0)

事实证明这很容易实现,虽然不是很明显。首先要做的事情 - 我 应该使用不同的.jar URI: /var/lib/aws/emr/step-runner/hadoop-jars/command-runner.jar 。改变之后,接下来的步骤非常简单。如果您正在运行:

command-runner.jar,spark-submit,--master,yarn-cluster

作为EMR活动,只需添加一个HadoopActivity,放入上面提到的.jar,然后添加其他参数来复制&#34;步骤&#34;一个EmrActivity:

Argument: command-runner.jar
Argument: spark-submit
Argument: --master
Argument: yarn-cluster
等等等等。所以,并不是那么困难,但它并不明显。希望这可以帮助将来的某个人。