本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在集群中运行脚本
Amazon EMR 可让您在集群的步骤处理期间随时运行脚本。您可以在创建集群时指定运行脚本的步骤,或者在集群处于 WAITING
状态时添加步骤。有关添加步骤的更多信息,请参阅 https://docs.amazonaws.cn/emr/latest/ManagementGuide/AddingStepstoaJobFlow.html 中的Amazon EMR 管理指南向集群提交工作。
要在步骤处理开始前运行脚本,请使用引导操作。有关引导操作的更多信息,请参阅 https://docs.amazonaws.cn/emr/latest/ManagementGuide/emr-plan-bootstrap.html 中的Amazon EMR 管理指南创建引导操作以安装其他软件。
使用 AWS CLI 提交自定义 JAR 步骤
您现在可以在多种情况下用 command-runner.jar 来代替 script-runner.jar。command-runner.jar 不需要具有 JAR 的完整路径。有关更多信息,请参阅 Command Runner。)
本节介绍如何添加步骤以运行脚本。script-runner.jar
接受脚本路径的参数以及脚本的任何额外参数。JAR 文件运行带有传递参数的脚本。
script-runner.jar
位于 s3://
其中 region
.elasticmapreduce/libs/script-runner/script-runner.jarregion
是EMR群集所在的区域。
包含运行脚本的步骤的集群看上去类似以下示例。
使用 AWS CLI 添加步骤以运行脚本
-
要运行脚本,请使用 AWS CLI,输入下列命令,替换
myKey
使用您的EC2密钥对名称并替换mybucket
S3bucket。当处理步骤时,集群会在主节点上运行脚本my_script.sh
。aws emr create-cluster --name "
Test cluster
" --release-labelemr-5.32.0
--applications Name=Hive
Name=Pig
--use-default-roles --ec2-attributes KeyName=myKey
--instance-typem5.xlarge
--instance-count3
--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://region
.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://mybucket/script-path/my_script.sh
"]如果不使用
--instance-groups
参数指定实例计数,则将启动单个主节点,其余实例将作为核心节点启动。所有节点都使用该命令中指定的实例类型。注意 如果您之前未创建默认 Amazon EMR 服务角色和 EC2 实例配置文件,请先键入 aws
emr create-default-roles
创建它们,然后再键入create-cluster
子命令。有关如何在 AWS CLI 中使用 Amazon EMR 命令的更多信息,请参阅 https://docs.amazonaws.cn/cli/latest/reference/emr。