

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 搭配 Amazon EMR Serverless 使用 Java 17
<a name="using-java-runtime"></a>

在 Amazon EMR 6.11.0 版及更高版本中，設定 EMR Serverless Spark 任務以使用 Java 虛擬機器 (JVM) 的 Java 17 執行時間。使用下列其中一種方法來使用 Java 17 設定 Spark。

## `JAVA_HOME`
<a name="using-java-runtime-java-home"></a>

若要覆寫 EMR Serverless 6.11.0 及更高版本的 JVM 設定，請將`JAVA_HOME`設定提供給其 `spark.emr-serverless.driverEnv`和`spark.executorEnv`環境分類。

------
#### [ x86\$164 ]

設定必要的屬性，將 Java 17 指定為 Spark 驅動程式和執行器的`JAVA_HOME`組態：

```
--conf spark.emr-serverless.driverEnv.JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto.x86_64/ 
--conf spark.executorEnv.JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto.x86_64/
```

------
#### [ arm\$164 ]

設定必要的屬性，將 Java 17 指定為 Spark 驅動程式和執行器的`JAVA_HOME`組態：

```
--conf spark.emr-serverless.driverEnv.JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto.aarch64/
--conf spark.executorEnv.JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto.aarch64/
```

------

## `spark-defaults`
<a name="using-java-runtime-spark-defaults"></a>

或者，您可以在 `spark-defaults`分類中指定 Java 17，以覆寫 EMR Serverless 6.11.0 和更新版本的 JVM 設定。

------
#### [ x86\$164 ]

在 `spark-defaults`分類中指定 Java 17：

```
{
"applicationConfiguration": [ 
         { 
            "classification": "spark-defaults",
            "properties": { 
               "spark.emr-serverless.driverEnv.JAVA_HOME" : "/usr/lib/jvm/java-17-amazon-corretto.x86_64/",
               "spark.executorEnv.JAVA_HOME": "/usr/lib/jvm/java-17-amazon-corretto.x86_64/" 
            }
         }
      ]
}
```

------
#### [ arm\$164 ]

在 `spark-defaults`分類中指定 Java 17：

```
{
"applicationConfiguration": [ 
         { 
            "classification": "spark-defaults",
            "properties": { 
               "spark.emr-serverless.driverEnv.JAVA_HOME" : "/usr/lib/jvm/java-17-amazon-corretto.aarch64/",
               "spark.executorEnv.JAVA_HOME": "/usr/lib/jvm/java-17-amazon-corretto.aarch64/" 
            }
         }
      ]
}
```

------