本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
提交 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 存储桶。
使用 Amazon EMR 控制台提交 Pig 工作
此示例介绍如何使用 Amazon EMR 控制台向集群添加 Pig 步骤。
提交 Pig 步骤
-
选择创建集群以创建安装有 Pig 的集群。有关如何创建群集的步骤,请参阅规划和配置 Amazon EMR 集群。
-
按照使用 SSH 连接主节点中概述的步骤,打开终端并 SSH 连接到集群的主节点。完成此操作后,请运行以下步骤。
sudo mkdir -p /home/hadoop/lib/pig/ sudo aws s3 cp s3://elasticmapreduce/libs/pig/0.3/piggybank-0.3-amzn.jar /home/hadoop/lib/pig/piggybank.jar -
在控制台中,点击 Cluster List (集群列表),并选择您创建的集群。
-
滚动到 Steps (步骤) 部分并展开它,然后选择 Add step (添加步骤)。
-
在 Add step (添加步骤) 对话框中:
-
对于 Step type (步骤类型),选择 Pig program (Pig 程序)。
-
对于 Name (名称),接受默认名称 (Pig program) 或键入新名称。
-
对于 Script S3 location (脚本 S3 位置),键入 Pig 脚本的位置。例如:
s3://elasticmapreduce/samples/pig-apache/do-reports2.pig。 -
对于 Input S3 location (输入 S3 位置),键入输入数据的位置。例如:
s3://elasticmapreduce/samples/pig-apache/input。 -
对于 Output S3 location (输出 S3 位置),键入或浏览到您的 Amazon S3 输出存储桶的名称。
-
对于 Arguments (参数),将该字段保留为空白。
-
对于 Action on failure (出现故障时的操作),接受默认选项 Continue (继续)。
-
-
选择添加。步骤会出现在控制台中,其状态为“Pending”。
-
步骤的状态会随着步骤的运行从“Pending”变为“Running”,再变为“Completed”。要更新状态,请选择 Actions (操作) 列上方的 Refresh (刷新) 图标。步骤完成后,请检查 Amazon S3 存储桶以确认 Pig 步骤的输出文件存在。
使用提交 Pig 作品 Amazon CLI
要提交 Pig 步骤,请使用 Amazon CLI
使用启动集群时 Amazon CLI,使用--applications参数安装 Pig。要提交 Pig 步骤,请使用 --steps 参数。
-
要启动安装了 Pig 的集群,请键入以下命令,将
myKey和amzn-s3-demo-bucket/替换为 EC2 密钥对和 Amazon S3 存储桶的名称。aws emr create-cluster \ --name "Test cluster" \ --log-uri s3://amzn-s3-demo-bucket/\ --release-labelemr-5.36.2\ --applications Name=Pig \ --use-default-roles \ --ec2-attributes KeyName=myKey\ --instance-typem5.xlarge\ --instance-count3注意
为了便于读取,包含 Linux 行继续符(\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号 (^)。
如果不使用
--instance-groups参数指定实例计数,则将启动单个主节点,其余实例将作为核心节点启动。所有节点都使用该命令中指定的实例类型。注意
如果您之前没有创建默认 EMR 服务角色和 EC2 实例配置文件,请在键
aws emr create-default-roles入子命令之前键入创建它们。create-cluster -
要提交 Pig 步骤,请输入以下命令,将
myClusterId和amzn-s3-demo-bucket替换为您的集群 ID 和 Amazon S3 存储桶的名称。aws emr add-steps \ --cluster-idmyClusterId\ --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://amzn-s3-demo-bucket/pig-apache/output]此命令将返回一个步骤 ID,您可以用它来检查您的步骤的
State。 -
使用带有
describe-step命令的步骤,查询步骤的状态。aws emr describe-step --cluster-idmyClusterId--step-ids-1XXXXXXXXXXA随着步骤的运行,步骤的
State从PENDING变为RUNNING再变为COMPLETED。步骤完成后,请检查 Amazon S3 存储桶以确认 Pig 步骤的输出文件存在。
有关在中使用 Amazon EMR 命令的更多信息 Amazon CLI,请参阅Amazon CLI 命令参考。