本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定應用程式以使用特定 Java 虛擬機器
Amazon EMR 版本具有不同的默認 Java 虛擬機器(JVM)版本。此頁面說明對不同版本和應用程式的JVM支援。
考量事項
如需有關應用程式支援的 Java 版本的資訊,請參閱 Amazon EMR 版本指南中的應用程式頁面。
-
Amazon EMR 僅支援在叢集中執行一個執行階段版本,不支援在同一叢集上的不同執行階段版本上執行不同的節點或應用程式。
-
對於 Amazon EMR 7.x,對於支持 Java 17 的應用程序,默認的 Java 虛擬機器(JVM)是 Java 17,但阿帕奇利維除外。如需有關應用程式支援JDK版本的詳細資訊,請參閱 Amazon 版本指南中對應的EMR版本頁面。
-
從 Amazon EMR 7.1.0 開始,Flink 支持並默認設置為 Java 17。若要使用不同版本的 Java 執行階段,請覆寫中的設定
flink-conf
。如需有關將快顯連結設定為使用 Java 8 或 Java 11 的詳細資訊,請參閱將快顯連結設定為使用 Java 11 執行。 -
對於 Amazon EMR 5.x 和 6.x,默認的 Java 虛擬機(JVM)是 Java 8。
-
對於 Amazon 6.12.0 及更高EMR版本,某些應用程式也支援 Java 11 和 17。
-
對於 Amazon 6.9.0 及更高EMR版本,天合金支持 Java 17 作為默認版本。如需有關 Java 17 與 Trino 的詳細資訊,請參閱 Trino 部落格上的 Trino 對 Java 17 的更新
。
-
在選擇執行期版本時,請記住下列應用程式特定的考量事項:
應用程式特定的 Java 組態注意事項 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
應用程式 | Java 組態注意事項 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Spark |
若要使用非預設 Java 版本執行 Spark,您必須同時設定 Spark 和 Hadoop。如需範例,請參閱 覆寫 JVM。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
火花 RAPIDS |
您可以RAPIDS使用配置的 Java 版本為星火運行。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iceberg |
您可以透過正在使用 Iceberg 的應用程式的已設定 Java 版本執行 Iceberg。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Delta |
您可以透過正在使用 Delta 的應用程式的已設定 Java 版本執行 Delta。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hudi |
您可以透過正在使用 Hudi 的應用程式的已設定 Java 版本執行 Hudi。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hadoop |
若要更新的 Hadoop 的,JVM請修改 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hive |
若要將 Java 版本設定為 11 或 17 的蜂巢,請將 Hadoop JVM 設定設定為您要使用的 Java 版本。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HBase |
若要更新JVM的HBase,請修改 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Flink |
若要更新 Flink 的,JVM請修改 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Oozie |
若要將 Oozie 設定為在 Java 11 或 17 上執行,請設定 Oozie 伺服器和 Oozie Launcher AM,並變更用戶端可執行檔和作業組態。您也可以將 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pig | Pig 僅支援 Java 8。您無法將 Java 11 或 17 與 Hadoop 搭配使用並在相同叢集上執行 Pig。 |
覆寫 JVM
若要覆寫 Amazon EMR 版本的JVM設定 (例如,將 Java 17 與使用 Amazon EMR 版本 6.12.0 的叢集搭配使用),請將設定提供給其環境分類,該JAVA_HOME
設定
適用於除 Flink 以外的所有應用程式。對於 Flink,環境分類為 application
-envflink-conf
。如需使用 Flink 設定 Java 執行期的步驟,請參閱 將 Flink 設定為使用 Java 11 執行。
覆蓋與阿帕奇星火JVM設置
當您在 Amazon 6.12 及更高EMR版本中使用 Spark 時,如果您在叢集模式下編寫提交的驅動程式,則驅動程式會使用 Java 8,但是您可以設定環境,以便執行者使用 Java 11 或 17。當您將 Spark 與 Amazon EMR 版本低於 5.x 的版本一起使用時,並且在集群模式下編寫用於提交的驅動程序時,驅動程序使用 Java 7。不過,您可以設定環境來確保執行程式使用 Java 8。
要覆蓋星火,我們建議您同時設置 Hadoop 和星火分類。JVM
{ "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} }, { "Classification": "spark-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} }
使用阿帕奇覆蓋JVM設置 HBase
若HBase要設定為使用 Java 11,您可以在啟動叢集時設定下列組態。
[ { "Classification": "hbase-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-11" } } ], "Properties": {} } ]
覆蓋與阿帕奇 Hadoop 和蜂巢的JVM設置
下面的示例演示了如何設置JVM為版本 17 的 Hadoop 和蜂巢。
[ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-17" } } ], "Properties": {} } ]
服務連接埠
以下是YARN和HDFS服務端口。這些設定反映出 Hadoop 的預設值。其他應用程式服務託管於預設連接埠上,除非另有說明。如需詳細資訊,請參閱應用程式的專案文件。
和的連接埠設YARN定 HDFS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
設定 | 主機名稱/連接埠 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
默認( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
注意
該術語 emrDeterminedIP
是由 Amazon EMR 控制平面生成的 IP 地址。在較新的版本中,已移除此慣例,但 yarn.resourcemanager.hostname
和 fs.default.name
設定除外。
應用程式使用者
應用程式會以本身擁有的使用者身分執行程序。例如,蜂巢以用戶身份JVMs運 MapReduce JVMs行hive
,運行身份mapred
,等等。這會在下列程序狀態範例中示範。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
hive 6452 0.2 0.7 853684 218520 ? Sl 16:32 0:13 /usr/lib/jvm/java-openjdk/bin/java -Xmx256m -Dhive.log.dir=/var/log/hive -Dhive.log.file=hive-metastore.log -Dhive.log.threshold=INFO -Dhadoop.log.dir=/usr/lib/hadoop
hive 6557 0.2 0.6 849508 202396 ? Sl 16:32 0:09 /usr/lib/jvm/java-openjdk/bin/java -Xmx256m -Dhive.log.dir=/var/log/hive -Dhive.log.file=hive-server2.log -Dhive.log.threshold=INFO -Dhadoop.log.dir=/usr/lib/hadoop/l
hbase 6716 0.1 1.0 1755516 336600 ? Sl Jun21 2:20 /usr/lib/jvm/java-openjdk/bin/java -Dproc_master -XX:OnOutOfMemoryError=kill -9 %p -Xmx1024m -ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Dhbase.log.dir=/var/
hbase 6871 0.0 0.7 1672196 237648 ? Sl Jun21 0:46 /usr/lib/jvm/java-openjdk/bin/java -Dproc_thrift -XX:OnOutOfMemoryError=kill -9 %p -Xmx1024m -ea -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Dhbase.log.dir=/var/
hdfs 7491 0.4 1.0 1719476 309820 ? Sl 16:32 0:22 /usr/lib/jvm/java-openjdk/bin/java -Dproc_namenode -Xmx1000m -Dhadoop.log.dir=/var/log/hadoop-hdfs -Dhadoop.log.file=hadoop-hdfs-namenode-ip-10-71-203-213.log -Dhadoo
yarn 8524 0.1 0.6 1626164 211300 ? Sl 16:33 0:05 /usr/lib/jvm/java-openjdk/bin/java -Dproc_proxyserver -Xmx1000m -Dhadoop.log.dir=/var/log/hadoop-yarn -Dyarn.log.dir=/var/log/hadoop-yarn -Dhadoop.log.file=yarn-yarn-
yarn 8646 1.0 1.2 1876916 385308 ? Sl 16:33 0:46 /usr/lib/jvm/java-openjdk/bin/java -Dproc_resourcemanager -Xmx1000m -Dhadoop.log.dir=/var/log/hadoop-yarn -Dyarn.log.dir=/var/log/hadoop-yarn -Dhadoop.log.file=yarn-y
mapred 9265 0.2 0.8 1666628 260484 ? Sl 16:33 0:12 /usr/lib/jvm/java-openjdk/bin/java -Dproc_historyserver -Xmx1000m -Dhadoop.log.dir=/usr/lib/hadoop/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/usr/lib/hadoop