Amazon EMR
Amazon EMR 版本指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

在集群中运行脚本

Amazon EMR 可让您在集群的步骤处理期间随时运行脚本。您可以在创建集群时指定运行脚本的步骤,或者在集群处于 WAITING 状态时添加步骤。有关添加步骤的更多信息,请参阅 向集群提交工作

要在步骤处理开始前运行脚本,请使用引导操作。有关引导操作的更多信息,请参阅 (可选) 创建引导操作以安装其他软件

使用 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.jar,其中 region 是您的 EMR 集群所在的区域。

包含运行脚本的步骤的集群看上去类似以下示例。

使用 AWS CLI 添加步骤以运行脚本

  • 要使用 AWS CLI 运行脚本,请键入以下命令,将 myKey 替换为您 EC2 密钥对的名称,并将 mybucket 替换为您的 S3 存储桶。当处理步骤时,集群会在主节点上运行脚本 my_script.sh

    aws emr create-cluster --name "Test cluster" –-release-label emr-5.4.0 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m3.xlarge --instance-count 3 --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 命令的更多信息,请参阅 http://docs.amazonaws.cn/cli/latest/reference/emr