Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration des applications pour l'utilisation d'une machine virtuelle Java spécifique
Les EMR versions d'Amazon proposent différentes versions par défaut de Java Virtual Machine (JVM). Cette page explique la JVM prise en charge des différentes versions et applications.
Considérations
Pour plus d'informations sur les versions Java prises en charge pour les applications, consultez les pages relatives aux applications dans le Amazon EMR Release Guide.
-
Amazon EMR ne prend en charge que l'exécution d'une seule version d'exécution dans un cluster, et ne prend pas en charge l'exécution de différents nœuds ou applications sur différentes versions d'exécution sur le même cluster.
-
Pour Amazon EMR 7.x, la machine virtuelle Java par défaut (JVM) est Java 17 pour les applications compatibles avec Java 17, à l'exception d'Apache Livy. Pour plus d'informations sur les JDK versions prises en charge pour les applications, consultez la page de publication correspondante dans le Amazon EMR Release Guide.
-
À partir d'Amazon EMR 7.1.0, Flink prend en charge Java 17 et est configuré sur Java 17 par défaut. Pour utiliser une version différente de l'environnement d'exécution Java, remplacez les paramètres définis dans
flink-conf
. Pour plus d'informations sur la configuration de Flink pour utiliser Java 8 ou Java 11, voir Configurer Flink pour fonctionner avec Java 11. -
Pour Amazon EMR 5.x et 6.x, la machine virtuelle Java par défaut (JVM) est Java 8.
-
Pour les EMR versions 6.12.0 et supérieures d'Amazon, certaines applications prennent également en charge Java 11 et 17.
-
Pour les EMR versions 6.9.0 et supérieures d'Amazon, Trino prend en charge Java 17 par défaut. Pour plus d'informations sur Java 17 avec Trino, consultez Trino updates to Java 17
sur le blog de Trino.
-
Tenez compte des considérations spécifiques à l'application suivantes lorsque vous choisissez votre version d'exécution :
Application | Notes sur la configuration de Java |
---|---|
Spark |
Pour exécuter Spark avec une version de Java autre que celle par défaut, vous devez configurer à la fois Spark et Hadoop. Pour obtenir des exemples, consultez Remplacez le JVM.
|
Étincelle RAPIDS |
Vous pouvez exécuter RAPIDS avec la version Java configurée pour Spark. |
Iceberg |
Vous pouvez exécuter Iceberg avec la version Java configurée de l'application qui l'utilise. |
Delta |
Vous pouvez exécuter Delta avec la version Java configurée de l'application qui l'utilise. |
Hudi |
Vous pouvez exécuter Hudi avec la version Java configurée de l'application qui l'utilise. |
Hadoop |
Pour mettre à jour le JVM pour Hadoop, modifiez. |
Hive |
Pour définir la version Java sur 11 ou 17 pour Hive, configurez le JVM paramètre Hadoop sur la version Java que vous souhaitez utiliser. |
HBase |
Pour mettre à jour le JVM formulaireHBase, modifiez-le |
Flink |
Pour mettre à jour le JVM for Flink, |
Oozie |
Pour configurer Oozie pour qu'il fonctionne sur Java 11 ou 17, configurez Oozie Server, le Oozie LauncherAM Launcher AM et modifiez les configurations de vos exécutables et tâches côté client. Vous pouvez également configurer |
Pig | Pig ne supporte que Java 8. Vous ne pouvez pas utiliser Java 11 ou 17 avec Hadoop et exécuter Pig sur le même cluster. |
Remplacez le JVM
Pour remplacer le JVM paramètre d'une EMR version d'Amazon (par exemple, pour utiliser Java 17 avec un cluster utilisant la EMR version 6.12.0 d'Amazon), fournissez le JAVA_HOME
paramètre correspondant à sa classification d'environnement, qui s'applique à toutes
les applications sauf Flink. Pour Flink, la classification de l'environnement est application
-envflink-conf
. Pour connaître les étapes de configuration de l'environnement d'exécution Java avec Flink, consultez Configurer Flink pour qu'il fonctionne avec Java 11.
Rubriques
Remplacer le JVM paramètre par Apache Spark
Lorsque vous utilisez Spark avec les EMR versions 6.12 et supérieures d'Amazon, si vous écrivez un pilote à soumettre en mode cluster, le pilote utilise Java 8, mais vous pouvez configurer l'environnement de telle sorte que les exécuteurs utilisent Java 11 ou 17. Et lorsque vous utilisez Spark avec des EMR versions d'Amazon inférieures à la version 5.x et que vous écrivez un pilote à soumettre en mode cluster, le pilote utilise Java 7. Vous pouvez toutefois configurer l'environnement de manière à ce que les exécuteurs utilisent Java 8.
Pour remplacer le JVM for Spark, nous vous recommandons de définir à la fois les classifications Hadoop et Spark.
{ "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": {} }
Remplacer le JVM paramètre par Apache HBase
Pour configurer HBase pour utiliser Java 11, vous pouvez définir la configuration suivante lorsque vous lancez le cluster.
[ { "Classification": "hbase-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-11" } } ], "Properties": {} } ]
Remplacez le JVM paramètre par Apache Hadoop et Hive
L'exemple suivant montre comment définir la JVM version 17 pour Hadoop et Hive.
[ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-17" } } ], "Properties": {} } ]
Ports de service
Les ports suivants sont YARN des ports HDFS de service. Ces paramètres reflètent les valeurs par défaut de Hadoop. D'autres services d'applications sont hébergés sur les ports par défaut, sauf indication contraire. Pour de plus amples informations, veuillez consulter la documentation du projet de l'application.
Paramètre | Nom d'hôte/Port |
---|---|
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
par défaut ( |
|
|
Note
Le terme emrDeterminedIP
est une adresse IP générée par le plan de EMR contrôle Amazon. Dans la version la plus récente, cette convention a été supprimée, sauf pour les paramètres yarn.resourcemanager.hostname
et fs.default.name
.
Utilisateurs de l'application
Les applications exécutent des processus comme s’il s’agissait de leur propre utilisateur. Par exemple, Hive JVMs s'exécute en tant qu'utilisateurhive
, MapReduce JVMs exécute en tant qu'utilisateurmapred
, etc. Ceci est illustré dans l'exemple d'état des processus suivant.
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