Amazon EMR
Amazon EMR 版本指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

提交 Pig 工作

此部分演示如何向 Amazon EMR 集群提交 Pig 工作。后面的示例会生成一个报告,其中包含已传输的字节总数、前 50 个 IP 地址的列表、前 50 个外部引用站点的列表以及前 50 个使用 Bing 和 Google 的搜索词。Pig 脚本位于 Amazon S3 存储段 s3://elasticmapreduce/samples/pig-apache/do-reports2.pig 中。输入数据位于 Amazon S3 存储段 s3://elasticmapreduce/samples/pig-apache/input 中。输出保存到 Amazon S3 存储桶。

重要

对于 EMR 4.x 或更高版本,您必须复制并修改 Pig 脚本 do-reports.pig 以使其工作。在修改的脚本中,将下面这行

register file:/home/hadoop/lib/pig/piggybank.jar

替换为:

register file:/usr/lib/pig/lib/piggybank.jar

然后在 Amazon S3 中您自己的存储桶中替换此脚本。

使用 Amazon EMR 控制台提交 Pig 工作

此示例介绍如何使用 Amazon EMR 控制台向集群添加 Pig 步骤。

提交 Pig 步骤

  1. Open the Amazon EMR console at https://console.amazonaws.cn/elasticmapreduce/.

  2. Cluster List 中,选择您的集群的名称。

  3. 滚动到 Steps 部分并展开它,然后选择 Add step

  4. Add step 对话框中:

    • 对于 Step type,选择 Pig program

    • 对于 Name,接受默认名称 (Pig program) 或键入新名称。

    • 对于 Script S3 location,键入 Pig 脚本的位置。例如:s3://elasticmapreduce/samples/pig-apache/do-reports2.pig

    • 对于 Input S3 location,键入输入数据的位置。例如:s3://elasticmapreduce/samples/pig-apache/input

    • 对于 Output S3 location,键入或浏览到您的 Amazon S3 输出存储桶的名称。

    • 对于 Arguments,将该字段保留为空白。

    • 对于 Action on failure,接受默认选项 (Continue)。

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

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

使用 AWS CLI 提交 Pig 工作

使用 AWS CLI 提交 Pig 步骤

使用 AWS CLI 启动集群时,请使用 --applications 参数安装 Pig。要提交 Pig 步骤,请使用 --steps 参数。

  • 要启动安装了 Pig 的集群和提交 Pig 步骤,请键入以下命令,使用您的 EC2 密钥对替换 myKey,并用您的 Amazon S3 存储桶名称替换 mybucket

    • aws emr create-cluster --name "Test cluster" --release-label emr-5.13.0 --applications Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m4.large --instance-count 3 \ --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://mybucket/pig-apache/output]

      注意

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

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

    注意

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

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