提交自定义JAR步骤 - Amazon EMR

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

提交自定义JAR步骤

自定义JAR运行已编译的 Java 程序,您可以将其上传到 Amazon S3。您应该根据要启动的 Hadoop 版本编译程序,然后向您的 Ama EMR zon 集群提交一个CUSTOM_JAR步骤。有关如何编译JAR文件的更多信息,请参阅使用 Amazon EMR 构建二进制文件

有关构建 Hadoop MapReduce 应用程序的更多信息,请参阅 Apache Hadoop 文档中的MapReduce 教程

本节介绍在 Amazon 中提交自定义JAR步骤的基础知识EMR。通过提交自定义JAR步骤,您可以编写脚本来使用 Java 编程语言处理数据。

使用控制台提交自定义JAR步骤

此示例介绍如何使用 Amazon EMR 控制台向正在运行的集群提交自定义JAR步骤。

使用控制台提交自定义JAR步骤
  1. 打开亚马逊EMR控制台,网址为 https://console.aws.amazon.com/emr

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

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

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

    • 对于步骤类型,选择自定义JAR

    • 对于 “名称”,接受默认名称(自定义JAR)或键入新名称。

    • 要查看 JARS3 位置,请键入或浏览至JAR文件所在的位置。JAR位置可能是指向 S3 的路径或类路径中的完全限定的 java 类...

    • 对于参数,以空格分隔的字符串形式键入任何所需参数,或将该字段保留为空白。

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

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

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

启动集群并使用提交自定义JAR步骤 AWS CLI

要启动集群并提交自定义JAR步骤,请使用 AWS CLI

要启动集群并使用提交自定义JAR步骤 AWS CLI,请键入带--steps参数的create-cluster子命令。

  • 要启动集群并提交自定义JAR步骤,请键入以下命令,替换 myKey 用你的 EC2 key pair 的名字,然后替换 mybucket 使用您的存储桶名称。

    aws emr create-cluster --name "Test cluster" --release-label emr-7.2.0 \ --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \ --steps Type=CUSTOM_JAR,Name="Custom JAR Step",ActionOnFailure=CONTINUE,Jar=pathtojarfile,Args=["pathtoinputdata","pathtooutputbucket","arg1","arg2"]
    注意

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

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

    注意

    如果您之前没有创建默认的 Amazon EMR 服务角色和EC2实例配置文件,请在键aws emr create-default-rolescreate-cluster子命令之前键入创建它们。

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

第三方依赖项

有时可能需要在 MapReduce 类路径JARs中包含以便与您的程序一起使用。您有两个选项来执行此操作:

  • --libjars s3://URI_to_JAR 包含在启动集群并使用提交自定义JAR步骤 AWS CLI中的过程的步骤选项中。

  • 使用 mapred-site.xml 中修改过的 mapreduce.application.classpath 设置启动集群。使用 mapred-site 配置分类。要使用步骤创建集群 AWS CLI,如下所示:

    aws emr create-cluster --release-label emr-7.2.0 \ --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --instance-type m5.xlarge --instance-count 2 --ec2-attributes KeyName=myKey \ --steps Type=CUSTOM_JAR,Name="Custom JAR Step",ActionOnFailure=CONTINUE,Jar=pathtojarfile,Args=["pathtoinputdata","pathtooutputbucket","arg1","arg2"] \ --configurations https://s3.amazonaws.com/mybucket/myfolder/myConfig.json

    myConfig.json:

    [ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "path1,path2" } } ]

    应将以逗号分隔的路径列表附加到每个任务的JVM类路径中。