Spark3使用JDK 11
EMR-3.45.0及后續(xù)版本、EMR-5.11.0及后續(xù)版本的Spark 3,支持使用JDK 11運(yùn)行作業(yè)。本文為您介紹如何使用JDK 11,以及使用JDK 11后如何切換為默認(rèn)的JDK 8。
注意事項(xiàng)
目前EMR Doctor不支持JDK 11,當(dāng)Spark作業(yè)使用JDK 11時(shí),需要同時(shí)修改EMR Doctor相關(guān)的配置項(xiàng)spark.yarn.am.extraJavaOptions、spark.driver.extraJavaOptions和spark.executor.extraJavaOptions,具體修改請(qǐng)參見使用JDK 11。
使用JDK 11
在Spark服務(wù)的配置頁(yè)面,修改以下配置項(xiàng)。修改配置項(xiàng)的具體操作,請(qǐng)參見管理配置項(xiàng)。
配置文件 | 配置項(xiàng) | 配置值 |
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 | 刪除 | |
spark.driver.extraJavaOptions | 刪除 | |
spark.executor.extraJavaOptions | 刪除 |
如果需要使用Spark Thrift Server,還需修改以下配置項(xiàng)。
配置文件 | 配置項(xiàng) | 配置值 |
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
如果您希望繼續(xù)使用EMR默認(rèn)的JDK 8,則可以回滾配置或者重新配置為JDK 8版本。
在Spark服務(wù)的配置頁(yè)面,修改以下配置項(xiàng)。修改配置項(xiàng)的具體操作,請(qǐng)參見管理配置項(xiàng)。
配置文件 | 配置項(xiàng) | 配置值 |
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 | 添加 | |
spark.driver.extraJavaOptions | 添加 | |
spark.executor.extraJavaOptions | 添加 |
如果使用了Spark Thrift Server,還需回滾配置或者重新配置以下配置項(xiàng)。
配置文件 | 配置項(xiàng) | 配置值 |
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 |