Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración de aplicaciones para utilizar una máquina virtual de Java específica
EMRLas versiones de Amazon tienen diferentes versiones predeterminadas de Java Virtual Machine (JVM). En esta página se explica la JVM compatibilidad con diferentes versiones y aplicaciones.
Consideraciones
Para obtener información sobre las versiones de Java compatibles con las aplicaciones, consulte las páginas de aplicaciones de la Amazon EMR Release Guide.
-
Amazon EMR solo admite la ejecución de una versión de tiempo de ejecución en un clúster y no admite la ejecución de diferentes nodos o aplicaciones en diferentes versiones de tiempo de ejecución del mismo clúster.
-
En Amazon EMR 7.x, la máquina virtual Java predeterminada (JVM) es Java 17 para las aplicaciones compatibles con Java 17, con la excepción de Apache Livy. Para obtener más información sobre las JDK versiones compatibles de las aplicaciones, consulta la página de lanzamiento correspondiente en la Guía de versiones de AmazonEMR.
-
A partir de Amazon EMR 7.1.0, Flink admite Java 17 y está configurado en Java 17 de forma predeterminada. Para usar una versión diferente del motor de ejecución de Java, anule la configuración de.
flink-conf
Para obtener más información sobre cómo configurar Flink para que utilice Java 8 o Java 11, consulte Configurar Flink para que se ejecute con Java 11. -
Para Amazon EMR 5.x y 6.x, la máquina virtual Java predeterminada (JVM) es Java 8.
-
Para las EMR versiones 6.12.0 y posteriores de Amazon, algunas aplicaciones también son compatibles con Java 11 y 17.
-
Para las EMR versiones 6.9.0 y superiores de Amazon, Trino es compatible con Java 17 de forma predeterminada. Para obtener más información sobre Java 17 con Trino, consulte Trino updates to Java 17
en el blog de Trino.
-
Tenga en cuenta las siguientes consideraciones específicas de la aplicación al elegir la versión del tiempo de ejecución:
Aplicación | Notas de configuración de Java |
---|---|
Spark |
Para ejecutar Spark con una versión de Java no predeterminada, debe configurar tanto Spark como Hadoop. Para ver ejemplos, consulte Anule la JVM.
|
Spark RAPIDS |
Puede ejecutarlo RAPIDS con la versión Java configurada para Spark. |
Iceberg |
Puede ejecutar Iceberg con la versión de Java configurada de la aplicación que lo utiliza. |
Delta |
Puede ejecutar Delta con la versión Java configurada de la aplicación que la utiliza. |
Hudi |
Puede ejecutar Hudi con la versión Java configurada de la aplicación que la utiliza. |
Hadoop |
Para actualizarlo JVM para Hadoop, modifíquelo. |
Hive |
Para establecer la versión de Java en 11 o 17 para Hive, configure la JVM configuración de Hadoop en función de la versión de Java que desee utilizar. |
HBase |
Para actualizar el formulario, JVM modifíqueloHBase. |
Flink |
Para actualizarlo JVM para Flink, modifíquelo. |
Oozie |
A fin de configurar Oozie para que se ejecute en Java 11 o 17, configure el servidor de Oozie, Oozie LauncherAM Launcher AM y cambie las configuraciones de los trabajos y los ejecutables del cliente. También puede configurar |
Pig | Pig solo es compatible con Java 8. No puede usar Java 11 ni 17 con Hadoop y ejecutar Pig en el mismo clúster. |
Anule la JVM
Para anular la JVM configuración de una EMR versión de Amazon (por ejemplo, para usar Java 17 con un clúster que utilice la EMR versión 6.12.0 de Amazon), introduzca la JAVA_HOME
configuración en su clasificación de entorno, que es
para todas las aplicaciones excepto Flink. En el caso de Flink, la clasificación de entorno es application
-envflink-conf
. Para ver los pasos de configuración del tiempo de ejecución de Java con Flink, consulte Configuración de Flink para que se ejecute con Java 11.
Temas
Anule la configuración con Apache Spark JVM
Cuando usas Spark con las EMR versiones 6.12 y posteriores de Amazon, si escribes un controlador para su envío en modo clúster, el controlador usa Java 8, pero puedes configurar el entorno para que los ejecutores usen Java 11 o 17. Y cuando usas Spark con EMR versiones de Amazon anteriores a 5.x y escribes un controlador para enviarlo en modo clúster, el controlador usa Java 7. Sin embargo, defina el entorno para asegurarse de que los ejecutores utilizan Java 8.
Para sustituir la JVM de Spark, te recomendamos que establezcas las clasificaciones de Hadoop y 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": {} }
Anule la configuración con Apache JVM HBase
HBasePara configurar el uso de Java 11, puede establecer la siguiente configuración al lanzar el clúster.
[ { "Classification": "hbase-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-11" } } ], "Properties": {} } ]
Anule la JVM configuración con Apache Hadoop y Hive
El siguiente ejemplo muestra cómo configurarlo en la versión 17 JVM para Hadoop y Hive.
[ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-17" } } ], "Properties": {} } ]
Puertos de servicio
Los siguientes son puertos de servicioYARN. HDFS Estos ajustes reflejan los valores predeterminados de Hadoop. Otros servicios de aplicaciones se alojan en puertos predeterminados a menos que se documente lo contrario. Para obtener más información, consulte la documentación del proyecto de la aplicación.
Opción | Nombre de host/puerto |
---|---|
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
predeterminado ( |
|
|
nota
El término emrDeterminedIP
es una dirección IP generada por el plano de EMR control de Amazon. En la versión más reciente, esta convención se ha eliminado, excepto para la configuración yarn.resourcemanager.hostname
y fs.default.name
.
Usuarios de la aplicación
Las aplicaciones ejecutarán procesos como su propio usuario. Por ejemplo, Hive JVMs se ejecuta como usuariohive
, se MapReduce JVMs ejecuta comomapred
, etc. Esto se demuestra en el siguiente ejemplo del estado de proceso.
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