本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
提交自定义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步骤
打开亚马逊EMR控制台,网址为 https://console.aws.amazon.com/emr
。 -
在 Cluster List (集群列表) 中,选择您的集群的名称。
-
滚动到 Steps (步骤) 部分并展开它,然后选择 Add step (添加步骤)。
-
在 Add step (添加步骤) 对话框中:
-
对于步骤类型,选择自定义JAR。
-
对于 “名称”,接受默认名称(自定义JAR)或键入新名称。
-
要查看 JARS3 位置,请键入或浏览至JAR文件所在的位置。JAR位置可能是指向 S3 的路径或类路径中的完全限定的 java 类...
-
对于参数,以空格分隔的字符串形式键入任何所需参数,或将该字段保留为空白。
-
对于 Action on failure (出现故障时的操作),接受默认选项 Continue (继续)。
-
-
选择添加。步骤会出现在控制台中,其状态为“Pending”。
-
步骤的状态会随着步骤的运行从“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-labelemr-7.2.0
\ --applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --ec2-attributes KeyName=myKey
--instance-typem5.xlarge
--instance-count3
\ --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
子命令之前键入创建它们。有关在中使用 Amazon EMR 命令的更多信息 AWS CLI,请参阅https://docs.aws.amazon.com/cli/latest/reference/emr。
第三方依赖项
有时可能需要在 MapReduce 类路径JARs中包含以便与您的程序一起使用。您有两个选项来执行此操作:
-
将
--libjars s3://
包含在启动集群并使用提交自定义JAR步骤 AWS CLI中的过程的步骤选项中。URI_to_JAR
-
使用
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.jsonmyConfig.json
:[ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "
path1
,path2
" } } ]应将以逗号分隔的路径列表附加到每个任务的JVM类路径中。