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

提交 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 步骤

  1. 通过以下链接打开 Amazon EMR 控制台:https://console.aws.amazon.com/elasticmapreduce/

  2. 选择创建集群以创建安装有 Pig 的集群。有关如何创建群集的步骤,请参阅规划和配置 Amazon EMR 集群

  3. 按照使用 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
  4. 在控制台中,点击 Cluster List (集群列表),并选择您创建的集群。

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

  6. 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 (继续)

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

  8. 步骤的状态会随着步骤的运行从“Pending”变为“Running”,再变为“Completed”。要更新状态,请选择 Actions (操作) 列上方的 Refresh (刷新) 图标。步骤完成后,请检查 Amazon S3 存储桶以确认 Pig 步骤的输出文件存在。

使用 Amazon CLI 提交 Pig 工作

使用 Amazon CLI 提交 Pig 步骤

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

  1. 要启动安装有 Pig 的群集,请键入以下命令,用您的 EC2 key pair 和 Amazon S3 存储桶的名称替换 myKeyDOC-EXAMPLE-BUCKET/

    aws emr create-cluster \ --name "Test cluster" \ --log-uri s3://DOC-EXAMPLE-BUCKET/ \ --release-label emr-5.34.0 \ --applications Name=Pig \ --use-default-roles \ --ec2-attributes KeyName=myKey \ --instance-type m5.xlarge \ --instance-count 3
    注意

    为了便于读取,包含 Linux 行继续符 (\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号 (^)。

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

    注意

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

  2. 要提交 Pig 步骤,请输入以下命令,使用您的群集 ID 和 Amazon S3 存储桶的名称替换 myClusterIdDOC-EXAMPLE-BUCKET

    aws emr add-steps \ --cluster-id myClusterId \ --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://DOC-EXAMPLE-BUCKET/pig-apache/output]

    此命令将返回一个步骤 ID,您可以用它来检查您的步骤的 State

  3. 使用带有 describe-step 命令的步骤,查询步骤的状态。

    aws emr describe-step --cluster-id myClusterId --step-id s-1XXXXXXXXXXA

    随着步骤的运行,步骤的 StatePENDING 变为 RUNNING 再变为 COMPLETED。步骤完成后,请检查 Amazon S3 存储桶以确认 Pig 步骤的输出文件存在。

有关在 Amazon CLI 中使用 Amazon EMR 命令的更多信息,请参阅 Amazon CLI 命令参考