Spark3使用JDK 11

EMR-3.45.0及后续版本、EMR-5.11.0及后续版本的Spark 3,支持使用JDK 11运行作业。本文为您介绍如何使用JDK 11,以及使用JDK 11后如何切换为默认的JDK 8。

注意事项

目前EMR Doctor不支持JDK 11,当Spark作业使用JDK 11时,需要同时修改EMR Doctor相关的配置项spark.yarn.am.extraJavaOptionsspark.driver.extraJavaOptionsspark.executor.extraJavaOptions,具体修改请参见使用JDK 11

使用JDK 11

在Spark服务的配置页面,修改以下配置项。修改配置项的具体操作,请参见管理配置项

配置文件

配置项

配置值

spark-env.sh

spark_java_home

/usr/lib/jvm/java-11

spark-defaults.conf

spark.yarn.appMasterEnv.JAVA_HOME

/usr/lib/jvm/java-11

spark.driverEnv.JAVA_HOME

/usr/lib/jvm/java-11

spark.executorEnv.JAVA_HOME

/usr/lib/jvm/java-11

spark.yarn.am.extraJavaOptions

删除-noverify -javaagent:/opt/apps/TAIHAODOCTOR/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=spark-3.2

spark.driver.extraJavaOptions

删除-noverify -javaagent:/opt/apps/TAIHAODOCTOR/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=spark-3.2

spark.executor.extraJavaOptions

删除-noverify -javaagent:/opt/apps/TAIHAODOCTOR/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=spark-3.2

如果需要使用Spark Thrift Server,还需修改以下配置项。

配置文件

配置项

配置值

spark-thriftserver.conf

spark.yarn.appMasterEnv.JAVA_HOME

/usr/lib/jvm/java-11

spark-thriftserver.conf

spark.driverEnv.JAVA_HOME

/usr/lib/jvm/java-11

spark-thriftserver.conf

spark.executorEnv.JAVA_HOME

/usr/lib/jvm/java-11

JDK 11切换回JDK 8

如果您希望继续使用EMR默认的JDK 8,则可以回滚配置或者重新配置为JDK 8版本。

在Spark服务的配置页面,修改以下配置项。修改配置项的具体操作,请参见管理配置项

配置文件

配置项

配置值

spark-env.sh

spark_java_home

/usr/lib/jvm/java-1.8.0

spark-defaults.conf

spark.yarn.appMasterEnv.JAVA_HOME

/usr/lib/jvm/java-1.8.0

spark.driverEnv.JAVA_HOME

/usr/lib/jvm/java-1.8.0

spark.executorEnv.JAVA_HOME

/usr/lib/jvm/java-1.8.0

spark.yarn.am.extraJavaOptions

添加-noverify -javaagent:/opt/apps/TAIHAODOCTOR/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=spark-3.2

spark.driver.extraJavaOptions

添加-noverify -javaagent:/opt/apps/TAIHAODOCTOR/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=spark-3.2

spark.executor.extraJavaOptions

添加-noverify -javaagent:/opt/apps/TAIHAODOCTOR/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=spark-3.2

如果使用了Spark Thrift Server,还需回滚配置或者重新配置以下配置项。

配置文件

配置项

配置值

spark-thriftserver.conf

spark.yarn.appMasterEnv.JAVA_HOME

/usr/lib/jvm/java-1.8.0

spark-thriftserver.conf

spark.driverEnv.JAVA_HOME

/usr/lib/jvm/java-1.8.0

spark-thriftserver.conf

spark.executorEnv.JAVA_HOME

/usr/lib/jvm/java-1.8.0