提交流式处理步骤 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

提交流式处理步骤

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

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

使用控制台提交流式处理步骤

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

提交流式处理步骤

  1. 从打开 Amazon EMR 控制台https://console.aws.amazon.com/elasticmapreduce/

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

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

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

    • 对于 Step type (步骤类型),选择 Streaming program (流式程序)

    • 对于 Name (名称),请接受默认名称(流式程序)或键入新名称。

    • 对于映射器,键入或浏览到 Hadoop 中映射器类所在的位置或映射器可执行文件(如 Python 程序)所在的 S3 存储桶。该路径值的形式必须是:BucketName/path/MapperExecutable

    • 对于 Reducer,键入或浏览到 Hadoop 中 Reducer 类所在的位置或 Reducer 可执行文件(如 Python 程序)所在的 S3 存储桶。该路径值的形式必须是:BucketName/path/MapperExecutable。亚马逊 EMR 支持aggregate关键字。有关更多信息,请转到 Hadoop 提供的 Aggregate 库。

    • 对于 Input S3 location (输入 S3 位置),键入或浏览到输入数据的位置。

    • 适用于输出 S3 位置中,键入或浏览到您的 Amazon S3 输出存储桶的名称。

    • 对于 Arguments (参数),将该字段保留为空白。

    • 对于 Action on failure (出现故障时的操作),接受默认选项 Continue (继续)

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

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

Amazon CLI

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

要使用创建群集并提交流式处理步骤Amazon CLI

  • 要使用 Amazon CLI 创建集群并提交 Streaming 步骤,请键入以下命令,将 myKey 替换为您的 EC2 密钥对的名称。

    aws emr create-cluster --name "Test cluster" --release-label emr-5.33.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 实例配置文件,请键入 awsemr create-default-roles来创建它们,然后键入create-cluster子命令。

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