Submit a Streaming Step - Amazon EMR
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Submit a Streaming Step

本节介绍向集群提交流式处理步骤的基本知识。Streaming 应用程序会从标准输入读取输入内容,然后针对每个输入运行脚本或可执行文件 (称为映射器)。每个输入的结果都会保存在本地,通常位于 Hadoop 分布式文件系统 (HDFS) 分区上。所有输入经过映射器处理后,第二个脚本或可执行文件 (名为 Reducer) 会处理映射器结果。将 Reducer 的结果发送到标准输出。您可以将一系列 Streaming 步骤串联起来,让一个步骤的输出作为另一个步骤的输入。

映射器和 Reducer 都能够以文件的形式进行引用,或者您也可以提供一个 Java 类。您能够以任一种受支持的语言 (包括 Ruby、Perl、Python、PHP 或 Bash) 来执行映射器和 Reducer。

Submit a Streaming Step Using the Console

此示例介绍如何使用 Amazon EMR 控制台向正在运行的集群提交流式处理步骤。

提交流式处理步骤

  1. 通过以下网址打开 Amazon EMR 控制台:https://console.amazonaws.cn/elasticmapreduce/

  2. Cluster List (集群列表) 中,选择您的集群的名称。

  3. 滚动到 Steps (步骤) 部分并展开它,然后选择 Add step (添加步骤)

  4. Add Step (添加步骤) 对话框中:

    • For Step type, choose Streaming program.

    • For Name, accept the default name (Streaming program) or type a new name.

    • For Mapper, type or browse to the location of your mapper class in Hadoop, or an S3 bucket where the mapper executable, such as a Python program, resides. The path value must be in the form BucketName/path/MapperExecutable.

    • For Reducer, type or browse to the location of your reducer class in Hadoop, or an S3 bucket where the reducer executable, such as a Python program, resides. The path value must be in the form BucketName/path/MapperExecutable. Amazon EMR supports the special aggregate keyword. For more information, go to the Aggregate library supplied by Hadoop.

    • For Input S3 location, type or browse to the location of your input data.

    • For Output S3 location, type or browse to the name of your Amazon S3 output bucket.

    • For Arguments, leave the field blank.

    • For Action on failure, accept the default option (Continue).

  5. 选择添加。步骤会出现在控制台中,其状态为“Pending”。

  6. 步骤的状态会随着步骤的运行从“Pending”变为“Running”,再变为“Completed”。要更新状态,请选择 Actions (操作) 列上方的 Refresh (刷新) 图标。

AWS CLI

这些示例演示如何使用 AWS CLI 创建集群并提交流式处理步骤。

使用 AWS CLI 创建集群并提交 Streaming 步骤

  • 如何创建群集并使用 AWS CLI,键入以下命令并更换 myKey 您的ec2密钥对的名称。

    aws emr create-cluster --name "Test cluster" --release-label emr-5.31.0 --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \ --steps Type=STREAMING,Name="Streaming Program",ActionOnFailure=CONTINUE,Args=[--files,pathtoscripts,-mapper,mapperscript,-reducer,reducerscript,aggregate,-input,pathtoinputdata,-output,pathtooutputbucket]
    注意

    包含了 Linux 行继续符 (\) 以提高可读性。可以在 Linux 命令中删除或使用它们。对于 Windows,请删除它们或将其替换为脱字号 (^)。

    如果不使用 --instance-groups 参数指定实例计数,则将启动单个主节点,其余实例将作为核心节点启动。所有节点都使用该命令中指定的实例类型。

    注意

    如果您之前未创建默认 Amazon EMR 服务角色和 EC2 实例配置文件,请先键入 aws emr create-default-roles 创建它们,然后再键入 create-cluster 子命令。

    有关如何在 AWS CLI 中使用 Amazon EMR 命令的更多信息,请参阅 https://docs.amazonaws.cn/cli/latest/reference/emr