如何在 spark-submit 命令中指定要使用的 java 版本?

2022-09-03 01:24:30

我想在远程服务器上的 yarn 集群上运行 spark 流应用程序。默认的java版本是1.7,但我想为我的应用程序使用1.8,它也在服务器中,但不是默认值。有没有办法通过spark-submit指定java 1.8的位置,这样我就不会得到主要的.次要错误?


答案 1

JAVA_HOME在我们的例子中是不够的,驱动程序是在java 8中运行的,但是我后来发现YARN中的Spark workers是使用java 7启动的(hadoop节点安装了两个java版本)。

我不得不添加.请注意,您可以在命令行中随 提供它。spark.executorEnv.JAVA_HOME=/usr/java/<version available in workers>spark-defaults.conf--conf

查看 http://spark.apache.org/docs/latest/configuration.html#runtime-environment


答案 2

尽管您可以强制驱动程序代码在特定的 Java 版本 ( ) 上运行,但工作线程将使用工作计算机中 yarn 用户的 PATH 中的默认 Java 版本执行代码。export JAVA_HOME=/path/to/jre/ && spark-submit ...

您可以做的是通过编辑文件(文档)将每个Spark实例设置为使用特定实例。JAVA_HOMEspark-env.sh


推荐