本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
提交流式处理步骤
本节介绍向集群提交流式处理步骤的基本知识。Streaming 应用程序会从标准输入读取输入内容,然后针对每个输入运行脚本或可执行文件(称为映射器)。每个输入的结果都会保存在本地,通常位于 Hadoop Distributed File System(HDFS)分区上。所有输入经过映射器处理后,第二个脚本或可执行文件 (名为 Reducer) 会处理映射器结果。将 Reducer 的结果发送到标准输出。您可以将一系列 Streaming 步骤串联起来,让一个步骤的输出作为另一个步骤的输入。
映射器和 Reducer 都能够以文件的形式进行引用,或者您也可以提供一个 Java 类。您能够以任一种受支持的语言 (包括 Ruby、Perl、Python、PHP 或 Bash) 来执行映射器和 Reducer。
使用控制台提交流式处理步骤
此示例介绍如何使用 Amazon EMR 控制台向正在运行的集群提交流式处理步骤。
提交流式处理步骤
在 /emr 上打开亚马逊 EMR 控制台。https://console.aws.amazon.com
-
在 Cluster List (集群列表) 中,选择您的集群的名称。
-
滚动到 Steps (步骤) 部分并展开它,然后选择 Add step (添加步骤)。
-
在 Add Step (添加步骤) 对话框中:
-
对于 Step type (步骤类型),选择 Streaming program (流式程序)。
-
对于 Name (名称),请接受默认名称(流式程序)或键入新名称。
-
对于映射器,键入或浏览到 Hadoop 中映射器类所在的位置或映射器可执行文件(如 Python 程序)所在的 S3 存储桶。路径值必须采用
BucketName
/path
/的形式MapperExecutable
。 -
对于 Reducer,键入或浏览到 Hadoop 中 Reducer 类所在的位置或 Reducer 可执行文件(如 Python 程序)所在的 S3 存储桶。路径值必须采用
BucketName
/path
/的形式MapperExecutable
。Amazon EMR 支持特殊 aggregate 关键字。有关更多信息,请转到 Hadoop 提供的 Aggregate 库。 -
对于 Input S3 location (输入 S3 位置),键入或浏览到输入数据的位置。
-
对于 Output S3 location (输出 S3 位置),键入或浏览到您的 Amazon S3 输出存储桶的名称。
-
对于 Arguments (参数),将该字段保留为空白。
-
对于 Action on failure (出现故障时的操作),接受默认选项 Continue (继续)。
-
-
选择 添加。步骤会出现在控制台中,其状态为“Pending”。
-
步骤的状态会随着步骤的运行从“Pending”变为“Running”,再变为“Completed”。要更新状态,请选择 Actions (操作) 列上方的 Refresh (刷新) 图标。
AWS CLI
这些示例演示了 AWS CLI 如何使用创建集群和提交流式处理步骤。
要创建集群并提交流式处理步骤,请使用 AWS CLI
-
要创建集群并使用提交流式处理步骤 AWS CLI,请键入以下命令并
myKey
替换为EC2 密钥对的名称。请注意,--files
的实际参数应该是指向您脚本位置的 Amazon S3 路径,并且-mapper
和-reducer
的实际参数应该是各自脚本文件的名称。aws emr create-cluster --name "
Test cluster
" --release-labelemr-7.7.0
--applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --ec2-attributes KeyName=myKey
--instance-typem5.xlarge
--instance-count3
\ --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 实例配置文件,请在键入子命令之前键入 aw
emr create-default-roles
s 进行创建。create-cluster
有关在中使用 Amazon EMR 命令的更多信息 AWS CLI,请参阅。https://docs.aws.amazon.com/cli/latest/reference/emr