Submit a Custom JAR Step - Amazon EMR
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Submit a Custom JAR Step

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

Submit a Custom JAR Step Using the Console

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

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

  1. 通过以下网址打开 Amazon EMR 控制台:https://console.amazonaws.cn/elasticmapreduce/

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

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

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

    • For Step type, choose Custom JAR.

    • For Name, accept the default name (Custom JAR) or type a new name.

    • For JAR S3 location, type or browse to the location of your JAR file. JAR location maybe a path into S3 or a fully qualified java class in the classpath..

    • For Arguments, type any required arguments as space-separated strings or leave the field blank.

    • For Action on failure, accept the default option (Continue).

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

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

Launching a cluster and submitting a custom JAR step using the AWS CLI

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

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

  • 要启动群集并提交自定义JAR步骤,请键入以下命令,然后更换 myKey 使用ec2密钥对的名称,然后更换 mybucket 您的桶名称。

    aws emr create-cluster --name "Test cluster" --release-label emr-5.31.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-roles 创建它们,然后再键入 create-cluster 子命令。

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

Third-party dependencies

有时,可能需要包含 MapReduce 类路径 JAR 以与您的程序结合使用。您有两个选项来执行此操作:

  • Include the --libjars s3://URI_to_JAR in the step options for the procedure in Launching a cluster and submitting a custom JAR step using the AWS CLI.

  • Launch the cluster with a modified mapreduce.application.classpath setting in mapred-site.xml using the mapred-site configuration classification. To create the cluster with the step using AWS CLI, this would look like the following:

    aws emr create-cluster --release-label emr-5.31.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" } } ]

    The comma-separated list of paths should be appended to the classpath for each task's JVM.