使用 EMR Serverless 自定义镜像运行报错

0

【以下的问题经过翻译处理】 你好,团队,

我想在 EMR Serverless 上运行使用 JDK 11 构建的 Spark 应用程序。由于默认映像不支持 JDK 11,因此我根据以下链接创建了自定义映像:

Use case 2 : https://aws.amazon.com/ru/blogs/big-data/add-your-own-libraries-and-application-dependencies-to-spark-and-hive-on-amazon-emr-serverless-with-custom-images/

https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/using-custom-images.html

这是我的 DockerFile 的内容(我使用的是 M1 Mac):

FROM--platform=linux/amd64 public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest
USER root
# install JDK 11
RUN sudo amazon-linux-extras install java-openjdk11
# EMRS will run the image as hadoop
USER hadoop:hadoop

将映像上传到 ECR 后,我使用相同的自定义映像创建了 EMR Serverless 应用程序(x86_64)。接下来,我尝试提交使用 JDK 11 构建的 jar 文件的作业,但是,它失败了,并出现了以下错误:

The job run failed to be submitted to the application or it completed unsuccessfully.

然后,根据上述第二个链接,我在配置作业时尝试了给出以下两个 Spark 配置:

--conf spark.executorEnv.JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.amzn2.0.1.x86_64 
--conf spark.driverEnv.JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.amzn2.0.1.x86_64

我仍然遇到以下错误:

Job failed, please check complete logs in configured logging destination. ExitCode: 1. Last few exceptions: Caused by: java.lang.UnsupportedClassVersionError: <ClassName> has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version

profile picture
EXPERTE
gefragt vor 5 Monaten51 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 我可以在JDK11环境中运行我的jar包。JAVA_HOME的正确驱动程序环境变量是spark.emr-serverless.driverEnv.JAVA_HOME。同时,部署的最新JDK版本为java-11-openjdk-11.0.18.0.10-1.amzn2.0.1.x86_64

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen

Relevanter Inhalt