想象一下AWS Data Pipeline设置只包含以下内容:
myEmrActivity1
和myEmrActivity2
,它们使用command-runner.jar,spark-submit和一些其他参数,如Python版本。每个活动的参数都不同。因此,例如,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文件吗?
答案 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
等等等等。所以,并不是那么困难,但它并不明显。希望这可以帮助将来的某个人。