Configurazione delle applicazioni per l'uso di una macchina virtuale Java specifica - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione delle applicazioni per l'uso di una macchina virtuale Java specifica

Le EMR versioni di Amazon hanno diverse versioni predefinite di Java Virtual Machine (JVM). Questa pagina spiega il JVM supporto per diverse versioni e applicazioni.

Considerazioni

Per informazioni sulle versioni Java supportate per le applicazioni, consulta le pagine delle applicazioni nella Amazon EMR Release Guide.

  • Amazon supporta EMR solo l'esecuzione di una versione di runtime in un cluster e non supporta l'esecuzione di nodi o applicazioni diversi su versioni di runtime diverse sullo stesso cluster.

  • Per Amazon EMR 7.x, la Java Virtual Machine (JVM) predefinita è Java 17 per le applicazioni che supportano Java 17, ad eccezione di Apache Livy. Per ulteriori informazioni sulle JDK versioni supportate per le applicazioni, consulta la pagina di rilascio corrispondente nella Amazon EMR Release Guide.

  • A partire da Amazon EMR 7.1.0, Flink supporta ed è impostato su Java 17 per impostazione predefinita. Per utilizzare una versione diversa del runtime Java, sovrascrivi le impostazioni in. flink-conf Per ulteriori informazioni sulla configurazione di Flink per l'utilizzo di Java 8 o Java 11, consulta Configurare Flink per l'esecuzione con Java 11.

  • Per Amazon EMR 5.x e 6.x, la Java Virtual Machine (JVM) predefinita è Java 8.

    • Per le EMR versioni di Amazon 6.12.0 e successive, alcune applicazioni supportano anche Java 11 e 17.

    • Per le EMR versioni di Amazon 6.9.0 e successive, Trino supporta Java 17 come impostazione predefinita. Per ulteriori informazioni su Java 17 con Trino, consulta Aggiornamenti di Trino a Java 17 sul blog di Trino.

Ricorda le seguenti considerazioni specifiche dell'applicazione quando scegli la versione di runtime:

Note sulla configurazione Java per applicazioni specifiche
Applicazione Note sulla configurazione Java

Spark

Per eseguire Spark con una versione Java non predefinita, devi configurare sia Spark che Hadoop. Per alcuni esempi, consulta Sovrascrivi il JVM.

  • Configura JAVA_HOME in spark-env per aggiornare il runtime Java dei processi dell'istanza primaria. Ad esempio, spark-submit, spark-shell e Spark History Server.

  • Modifica la configurazione Hadoop per aggiornare il runtime Java degli esecutori Spark e il YARN ApplicationMaster

Spark RAPIDS

Puoi eseguirlo RAPIDS con la versione Java configurata per Spark.

Iceberg

Puoi eseguire Iceberg con la versione Java configurata dell'applicazione che lo utilizza.

Delta

Puoi eseguire Delta con la versione Java configurata dell'applicazione che lo utilizza.

Hudi

Puoi eseguire Hudi con la versione Java configurata dell'applicazione che lo utilizza.

Hadoop

Per aggiornare il file JVM per Hadoop, modifica. hadoop-env Per alcuni esempi, consulta Sovrascrivi il JVM.

Hive

Per impostare la versione Java su 11 o 17 per Hive, configura l'JVMimpostazione Hadoop sulla versione Java che desideri utilizzare.

HBase

Per aggiornare il modulo, JVM modifica. HBase hbase-env Per impostazione predefinita, Amazon EMR imposta Hadoop in HBase JVM base alla JVM configurazione, a meno che tu non sovrascriva le impostazioni in. hbase-env Per alcuni esempi, consulta Sovrascrivi il JVM.

Flink

Per aggiornare il JVM for Flink, modifica. flink-conf Per impostazione predefinita, Amazon EMR imposta Flink in JVM base alla JVM configurazione per Hadoop, a meno che tu non sovrascriva le impostazioni in. flink-conf Per ulteriori informazioni, consulta Configurazione di Flink per l'esecuzione con Java 11.

Oozie

Per configurare Oozie per l'esecuzione su Java 11 o 17, configura Oozie Server, Oozie LauncherAM Launcher AM e modifica le configurazioni degli eseguibili e dei processi sul lato client. Puoi anche configurare EmbeddedOozieServer per l'esecuzione su Java 17. Per ulteriori informazioni, consulta Configurazione della versione Java per Oozie.

Pig

Pig supporta solo Java 8. Non puoi usare Java 11 o 17 con Hadoop ed eseguire Pig sullo stesso cluster.

Sovrascrivi il JVM

Per sovrascrivere l'JVMimpostazione per una EMR versione di Amazon, ad esempio per utilizzare Java 17 con un cluster che utilizza la EMR versione Amazon 6.12.0, fornisci l'JAVA_HOMEimpostazione alla relativa classificazione dell'ambiente, che è application-env per tutte le applicazioni tranne Flink. Per Flink, la classificazione dell'ambiente è flink-conf. Per i passaggi per configurare il runtime Java con Flink, consulta Configurazione di Flink per l'esecuzione con Java 11.

Sostituisci l'impostazione con Apache Spark JVM

Quando usi Spark con le EMR versioni 6.12 e successive di Amazon, se scrivi un driver per l'invio in modalità cluster, il driver utilizza Java 8, ma puoi impostare l'ambiente in modo che gli esecutori utilizzino Java 11 o 17. E quando usi Spark con EMR versioni di Amazon precedenti alla 5.x e scrivi un driver da inviare in modalità cluster, il driver utilizza Java 7. Tuttavia, puoi impostare l'ambiente per garantire che gli esecutori utilizzino Java 8.

Per sostituire quella di Spark, ti consigliamo di impostare entrambe le classificazioni Hadoop e Spark. 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": {} }

JVMSostituisci l'impostazione con Apache HBase

HBasePer configurare l'utilizzo di Java 11, è possibile impostare la seguente configurazione all'avvio del cluster.

[ { "Classification": "hbase-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-11" } } ], "Properties": {} } ]

Sostituisci l'JVMimpostazione con Apache Hadoop e Hive

L'esempio seguente mostra come impostare la versione 17 per JVM Hadoop e Hive.

[ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Configurations": [], "Properties": { "JAVA_HOME": "/usr/lib/jvm/jre-17" } } ], "Properties": {} } ]

Porte di servizio

Di seguito sono riportate le porte di YARN servizioHDFS. Queste impostazioni riflettono i valori predefiniti di Hadoop. Gli altri servizi applicativi sono ospitati su porte predefinite, a meno che non sia diversamente documentato. Per ulteriori informazioni, consulta la documentazione di progetto dell'applicazione.

Impostazioni delle porte per YARN e HDFS
Impostazione Nome host/Porta

fs.default.name

impostazione predefinita (hdfs://emrDeterminedIP:8020)

dfs.datanode.address

impostazione predefinita (0.0.0.0:50010)

dfs.datanode.http.address

impostazione predefinita (0.0.0.0:50075)

dfs.datanode.https.address

impostazione predefinita (0.0.0.0:50475)

dfs.datanode.ipc.address

impostazione predefinita (0.0.0.0:50020)

dfs.http.address

impostazione predefinita (0.0.0.0:50070)

dfs.https.address

impostazione predefinita (0.0.0.0:50470)

dfs.secondary.http.address

impostazione predefinita (0.0.0.0:50090)

yarn.nodemanager.address

impostazione predefinita (${yarn.nodemanager.hostname}:0)

yarn.nodemanager.localizer.address

impostazione predefinita (${yarn.nodemanager.hostname}:8040)

yarn.nodemanager.webapp.address

impostazione predefinita (${yarn.nodemanager.hostname}:8042)

yarn.resourcemanager.address

impostazione predefinita (${yarn.resourcemanager.hostname}:8032)

yarn.resourcemanager.admin.address

impostazione predefinita (${yarn.resourcemanager.hostname}:8033)

yarn.resourcemanager.resource-tracker.address

impostazione predefinita (${yarn.resourcemanager.hostname}:8031)

yarn.resourcemanager.scheduler.address

impostazione predefinita (${yarn.resourcemanager.hostname}:8030)

yarn.resourcemanager.webapp.address

impostazione predefinita (${yarn.resourcemanager.hostname}:8088)

yarn.web-proxy.address

impostazione predefinita (no-value)

yarn.resourcemanager.hostname

emrDeterminedIP

Nota

Il termine emrDeterminedIP è un indirizzo IP generato dal piano di EMR controllo di Amazon. Nella versione più recente, questa convenzione è stata rimossa, eccetto che per le impostazioni yarn.resourcemanager.hostname e fs.default.name.

Utenti delle applicazioni

Le applicazioni eseguono i processi come proprio utente. Ad esempio, Hive JVMs esegui come utentehive, MapReduce JVMs esegui come mapred e così via. Questa procedura è illustrata nell'esempio di stato del processo seguente:

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