当前位置: 首页 > 知识库问答 >
问题:

AWS EMR Spark没有使用自定义Jar加载MainClass

胡光霁
2023-03-14

我试图用一个自定义步骤创建一个emr spark集群。集群创建成功,但是步骤没有正确定义。

更新

我试图通过web控制台使用相同的集群,并获得相同的结果。当我在保存步骤时指定Jar位置时,Jar位置被设置为command-runner.Jar,并且提供的Jar路径被添加到参数列表中。

aws emr create-cluster --name 'emr-test' \
--applications Name=Spark \
--release-label emr-5.11.1 \
--auto-terminate \
--instance-type m3.xlarge \
--instance-count 1 \
--ec2-attributes SubnetId=subnet-000000 \
--steps '[{
    "Type": "SPARK",
    "Name": "spark-program",
    "Args": ["--class","--init-keyspaces"],
    "Jar": "s3://mybucket/snapshots/0.1.0-SNAPSHOT/2.11/my-spark-assembly-0.1.0-SNAPSHOT.jar",
    "ActionOnFailure": "TERMINATE_CLUSTER",
    "MainClass":"com.myspark.data.consumers.jobs.MyJob"
}]' \
--use-default-roles \
--log-uri 's3://mybucket/logs' \
--tags Name='spark-program' Environment='test'
JAR location: command-runner.jar
Main class: None
Arguments: spark-submit --class --init-keyspaces
Action on failure: Terminate cluster
JAR location: s3://mybucket/snapshots/0.1.0-SNAPSHOT/2.11/my-spark-assembly-0.1.0-SNAPSHOT.jar
Main class: com.myspark.data.customer.jobs.MyJob
Arguments: spark-submit --class --init-keyspaces
Action on failure: Terminate cluster

共有1个答案

白高逸
2023-03-14

发现我的期望是不正确的。当通过CLI创建一个新作业并且只包含JAR ARG时,就会创建一个自定义JAR项目。如果spark args(即--conf)也传递给CLI,则创建spark作业。

web控制台中的这两种作业类型看起来不同。例如,对于Spark作业,JAR位置被设置为command-runner.JAR,而对于自定义JAR则被设置为s3 bucket的路径。

AWS自定义Spark Step文档https://docs.AWS.amazon.com/emr/latest/releaseguide/emr-spark-submit-step.html

 类似资料:
  • 问题内容: 在Keras中,如果您需要自定义损失以及其他参数,我们可以像https://datascience.stackexchange.com/questions/25029/custom- loss-function-with-additional-parameter-in- 凯拉斯 当我训练模型时,上述方法有效。但是,一旦训练了模型,我将很难加载模型。当我尝试在load_model中使用c

  • 问题内容: 我有一个Java类,它在启动时基于javassist类加载器创建自定义类加载器,然后运行实际的程序类。我收到以下错误: 该问题与以下事实有关:一个对象是由原始类加载器创建的,而另一个是由自定义类创建的。 有没有办法解决此错误? 在此先感谢 Avner 问题答案: 请尝试将-Dlog4j.ignoreTCL =true设置为希望有帮助。关于log4j的类似问题

  • 我一直在Java玩简单的自定义类加载器,到目前为止,对于非模块相关的类来说,一切都按照预期工作。但是,我似乎找不到任何方法来使用我的类加载器从模块加载类,即使与模块相关的方法已经被重载。我尝试做的是从模块“HelloModularWorld”加载一个类,并运行它的main。然而,当我指定包所在的目录时,它将“正常”加载,并报告为在未命名模块中。我错过了什么? 类加载器只是从文件系统的其他地方加载类

  • 我的Spring启动应用程序有问题。它似乎不加载自定义css文件。我把它放在资源/静态/css下,我也尝试过在资源/公共/css下,但它也不起作用。 我把我的项目留在git hub帐户上,这样你就可以检查出什么问题了。 GitHub项目 另外,当我打开chrome控制台下的登录页面时,会出现一个警告 资源被解释为样式表,但使用 MIME 类型文本/纯文本传输:“http://localhost:8

  • 问题内容: 是否可以为javac(或某些替代的Java编译器)指定自定义类加载器? 我很喜欢这种壮举,因为它可以让我编译使用仅由我的特殊类加载器找到的类的类。 对于那些好奇的人:我将编写一个连接数据库的classloder,并根据找到的表创建类。 问题答案: 运行javac时,您可以像这样指定类加载器:

  • 本文向大家介绍android自定义ProgressDialog加载效果,包括了android自定义ProgressDialog加载效果的使用技巧和注意事项,需要的朋友参考一下 用来记录自己所用到的知识 前两天在做项目的时候发现有时候在访问网络数据的时候由于后台要做的工作较多,给我们返回数据的时间较长,所以老大叫我加了一个加载中的logo图用来提高用户体验. 于是就在网上找了许多大神写的案例,再结合