Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Anwendungen für die Verwendung einer bestimmten Java Virtual Machine konfigurieren
EMRAmazon-Versionen haben unterschiedliche Standardversionen von Java Virtual Machine (JVM). Auf dieser Seite wird die JVM Unterstützung für verschiedene Versionen und Anwendungen erklärt.
Überlegungen
Informationen zu den unterstützten Java-Versionen für Anwendungen finden Sie auf den Anwendungsseiten im Amazon EMR Release Guide.
-
Amazon unterstützt EMR nur die Ausführung einer Runtime-Version in einem Cluster und unterstützt nicht die Ausführung verschiedener Knoten oder Anwendungen auf verschiedenen Runtime-Versionen auf demselben Cluster.
-
Für Amazon EMR 7.x ist Java 17 die standardmäßige Java Virtual Machine (JVM) für Anwendungen, die Java 17 unterstützen, mit Ausnahme von Apache Livy. Weitere Informationen zu den unterstützten JDK Versionen für Anwendungen finden Sie auf der entsprechenden Release-Seite im Amazon EMR Release Guide.
-
Ab Amazon EMR 7.1.0 unterstützt Flink Java 17 und ist standardmäßig auf Java 17 eingestellt. Um eine andere Version der Java-Runtime zu verwenden, überschreiben Sie die Einstellungen in.
flink-conf
Weitere Informationen zur Konfiguration von Flink für die Verwendung von Java 8 oder Java 11 finden Sie unter Konfigurieren von Flink für die Ausführung mit Java 11. -
Für Amazon EMR 5.x und 6.x ist Java 8 die standardmäßige Java Virtual Machine (JVM).
-
Für EMR Amazon-Versionen 6.12.0 und höher unterstützen einige Anwendungen auch Java 11 und 17.
-
Für EMR Amazon-Versionen 6.9.0 und höher unterstützt Trino standardmäßig Java 17. Weitere Informationen über Java 17 mit Trino finden Sie unter Trino-Updates für Java 17
im Trino-Blog.
-
Beachten Sie bei der Auswahl Ihrer Laufzeit-Version die folgenden anwendungsspezifischen Überlegungen:
Anwendung | Hinweise zur Java-Konfigurationen |
---|---|
Spark |
Um Spark mit einer nicht standardmäßigen Java-Version auszuführen, müssen Sie sowohl Spark als auch Hadoop konfigurieren. Beispiele finden Sie unter Überschreiben Sie die JVM.
|
Spark RAPIDS |
Sie können RAPIDS mit der konfigurierten Java-Version für Spark arbeiten. |
Iceberg |
Sie können Iceberg mit der konfigurierten Java-Version der Anwendung ausführen, die es verwendet. |
Delta |
Sie können Delta mit der konfigurierten Java-Version der Anwendung ausführen, die es verwendet. |
Hudi |
Sie können Hudi mit der konfigurierten Java-Version der Anwendung ausführen, die es verwendet. |
Hadoop |
Um das JVM für Hadoop zu aktualisieren, ändern Sie |
Hive |
Um die Java-Version für Hive auf 11 oder 17 festzulegen, konfigurieren Sie die JVM Hadoop-Einstellung auf die Java-Version, die Sie verwenden möchten. |
HBase |
Um das JVM für zu aktualisierenHBase, ändern Sie es. |
Flink |
Um das JVM für Flink zu aktualisieren, ändern Sie. |
Oozie |
Um Oozie für die Ausführung unter Java 11 oder 17 zu konfigurieren, konfigurieren Sie Oozie Server, den Oozie LauncherAM Launcher AM und ändern Sie Ihre clientseitigen ausführbaren Dateien und Auftragskonfigurationen. Sie können |
Pig | Pig unterstützt nur Java 8. Sie können Java 11 oder 17 nicht mit Hadoop verwenden und Pig auf demselben Cluster ausführen. |
Überschreiben Sie die JVM
Um die JVM Einstellung für eine EMR Amazon-Version zu überschreiben — zum Beispiel um Java 17 mit einem Cluster zu verwenden, der Amazon EMR Version 6.12.0 verwendet — geben Sie die JAVA_HOME
Einstellung an die Umgebungsklassifizierung an, die
für alle Anwendungen außer Flink gilt. Für Flink lautet die Umgebungsklassifizierung application
-envflink-conf
. Schritte zur Konfiguration der Java-Laufzeit mit Flink finden Sie unter Flink für die Ausführung mit Java 11 konfigurieren.
Themen
Überschreiben Sie die JVM Einstellung mit Apache Spark
Wenn Sie Spark mit EMR Amazon-Versionen 6.12 und höher verwenden und einen Treiber für die Einreichung im Cluster-Modus schreiben, verwendet der Treiber Java 8, aber Sie können die Umgebung so einstellen, dass die Executoren Java 11 oder 17 verwenden. Und wenn Sie Spark mit EMR Amazon-Versionen unter 5.x verwenden und einen Treiber für die Einreichung im Cluster-Modus schreiben, verwendet der Treiber Java 7. Die Umgebung kann dann aber so eingestellt werden, dass die Executors Java 8 verwenden.
Um den JVM für Spark zu überschreiben, empfehlen wir, dass Sie sowohl die Hadoop- als auch die Spark-Klassifizierung festlegen.
{ "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": {} }
Überschreiben Sie die JVM Einstellung mit Apache HBase
Um die Verwendung von Java 11 HBase zu konfigurieren, können Sie beim Starten des Clusters die folgende Konfiguration festlegen.
[ { "Classification": "hbase-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-11" } } ], "Properties": {} } ]
Überschreiben Sie die JVM Einstellung mit Apache Hadoop und Hive
Das folgende Beispiel zeigt, wie Sie die für Hadoop und Hive JVM auf Version 17 setzen.
[ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-17" } } ], "Properties": {} } ]
Service-Ports
Im Folgenden sind YARN HDFS Service-Ports aufgeführt. Diese Einstellungen stellen die Hadoop-Standardwerte dar. Andere Anwendungsservices werden bei Standard-Ports gehostet, sofern nicht anders dokumentiert. Weitere Informationen enthält die Projektdokumentation der Anwendung.
Einstellung | Hostname/Port |
---|---|
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
Standard ( |
|
|
Anmerkung
Der Begriff emrDeterminedIP
ist eine IP-Adresse, die von der EMR Amazon-Steuerebene generiert wird. In der neueren Version wurde diese Konvention entfernt, mit Ausnahme der Einstellungen yarn.resourcemanager.hostname
und fs.default.name
.
Anwendungsbenutzer
Die Anwendungen führen Prozesse als deren eigene Benutzer aus. Zum Beispiel Hive „Als Benutzer JVMs ausführen“ hive
mapred
, „ MapReduce JVMsAusführen als“ usw. Dies wird im folgenden Prozessstatusbeispiel gezeigt.
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