EMR V3.45.0 以降のマイナーバージョン、または EMR V5.11.0 以降のマイナーバージョンを実行している EMR クラスターは、Spark 3 ジョブで JDK 11 をサポートします。デフォルトでは、Spark は JDK 8 を使用します。このトピックでは、Spark 3 を JDK 11 に切り替える方法と、JDK 8 に戻す方法について説明します。
前提条件
開始する前に、ご利用の EMR クラスターが EMR V3.45.0 以降のマイナーバージョン、または EMR V5.11.0 以降のマイナーバージョンを実行していることを確認してください。
注意事項
EMR Doctor の非互換性: EMR Doctor は JDK 11 をサポートしていません。JDK 11 に切り替える際は、3 つの設定項目 (spark.yarn.am.extraJavaOptions、spark.driver.extraJavaOptions、spark.executor.extraJavaOptions) から EMR Doctor エージェントを削除してください。JDK 8 に戻す際は、これらのエントリを元に戻してください。
JDK 11 への切り替え
Spark3 サービスページの [設定] タブで、以下の設定項目を設定します。設定項目の変更方法については、「設定項目の管理」をご参照ください。
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.driverEnv.JAVA_HOME |
/usr/lib/jvm/java-11 |
spark.executorEnv.JAVA_HOME |
/usr/lib/jvm/java-11 |
JDK 8 への切り替え
Spark3 サービスページの [設定] タブで、以下の設定項目を設定します。設定項目の変更手順については、「設定項目の管理」をご参照ください。
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.driverEnv.JAVA_HOME |
/usr/lib/jvm/java-1.8.0 |
spark.executorEnv.JAVA_HOME |
/usr/lib/jvm/java-1.8.0 |