Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Configurar aplicações para usar uma Máquina Virtual Java específica - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar aplicações para usar uma Máquina Virtual Java específica

As versões do Amazon EMR têm diferentes versões Máquina Virtual Java (JVM) padrão. Esta página explica a compatibilidade da JVM para diferentes versões e aplicações.

Considerações

Para obter informações sobre as versões do Java compatíveis com aplicações, consulte as páginas das aplicações no Guia de lançamento do Amazon EMR.

  • O Amazon EMR só oferece suporte à execução de uma versão de runtime em um cluster e não oferece suporte à execução de nós ou aplicações diferentes em outras versões de runtime no mesmo cluster.

  • Para o Amazon EMR 7.x, a Máquina Virtual Java (JVM) padrão é Java 17 para aplicações compatíveis com Java 17, com exceção do Apache Livy. Para obter mais informações sobre as versões do JDK compatíveis com aplicações, consulte a página de lançamento correspondente no Guia de lançamento do Amazon EMR.

  • A partir do Amazon EMR 7.1.0, o Flink oferece suporte e está configurado para Java 17 por padrão. Para usar uma versão diferente do runtime do Java, substitua as configurações em flink-conf. Para obter mais informações sobre como configurar o Flink para usar o Java 8 ou o Java 11, consulte Configure Flink to run with Java 11.

  • Para as séries 5.x e 6.x do Amazon EMR, a Máquina Virtual Java (JVM) padrão é Java 8.

    • Para as versões 6.12.0 e posteriores do Amazon EMR, algumas aplicações também oferecem suporte ao Java 11 e 17.

    • Para as versões 6.9.0 e posteriores do Amazon EMR, o Trino oferece suporte ao Java 17 como padrão. Para obter mais informações sobre o Java 17 com Trino, consulte Trino updates to Java 17 no blog do Trino.

Lembre-se das seguintes considerações específicas da aplicação ao escolher sua versão de runtime:

Notas de configuração Java específicas da aplicação
Aplicação Notas sobre configurações do Java

Spark

Para executar o Spark com uma versão Java que não seja padrão, é necessário configurar o Spark e o Hadoop. Para obter exemplos, consulte Substituir a JVM.

  • Configure JAVA_HOME em spark-env para atualizar o runtime Java dos processos da instância primária. Por exemplo, spark-submit, spark-shell e Spark History Server.

  • Modifique a configuração do Hadoop para atualizar o runtime Java dos executores do Spark e do YARN ApplicationMaster

Spark RAPIDS

É possível executar o RAPIDS com a versão Java configurada para o Spark.

Iceberg

Você pode executar o Iceberg com a versão Java configurada da aplicação que o está usando.

Delta

Você pode executar o Delta com a versão Java configurada da aplicação que o está usando.

Hudi

Você pode executar o Hudi com a versão Java configurada da aplicação que o está usando.

Hadoop

Para atualizar a JVM para o Hadoop, modifique hadoop-env. Para obter exemplos, consulte Substituir a JVM.

Hive

Para definir a versão Java como 11 ou 17 para Hive, defina a configuração da JVM do Hadoop para a versão do Java que você deseja usar.

HBase

Para atualizar a JVM para HBase, modifique. hbase-env Por padrão, o Amazon EMR define a HBase JVM com base na configuração da JVM para o Hadoop, a menos que você substitua as configurações em. hbase-env Para obter exemplos, consulte Substituir a JVM.

Flink

Para atualizar a JVM para Flink, modifique flink-conf. Por padrão, o Amazon EMR define a JVM do Flink segundo a configuração da JVM para o Hadoop, a menos que você substitua as configurações em flink-conf. Para obter mais informações, consulte Configurar o Flink para ser executado com o Java 11.

Oozie

Para configurar o Oozie para ser executado no Java 11 ou 17, configure o Oozie Server, o Oozie LauncherAM Launcher AM e altere as configurações de trabalho e executáveis do lado do cliente. Também é possível configurar EmbeddedOozieServer para ser executado no Java 17. Para obter mais informações, consulte Configurar a versão do Java para Oozie.

Pig

O Pig é compatível apenas com Java 8. Não é possível usar o Java 11 ou 17 com o Hadoop e executar o Pig no mesmo cluster.

Substituir a JVM

Para substituir a configuração da JVM para uma versão do Amazon EMR (por exemplo, para usar o Java 17 com um cluster que usa o Amazon EMR versão 6.12.0) forneça a configuração JAVA_HOME para sua classificação de ambiente, que é application-env para todas as aplicações, exceto o Flink. Para o Flink, a classificação do ambiente é flink-conf. Para obter as etapas para configurar o runtime Java com o Flink, consulte Configurar o Flink para ser executado com o Java 11.

Substituir a configuração da JVM usando o Apache Spark

Ao usar o Spark com o Amazon EMR versões 6.12 e posteriores, se você gravar um driver para envio no modo de cluster, o driver usará Java 8, mas é possível configurar o ambiente para que os executores usem Java 11 ou 17. E quando você usa o Spark com versões do Amazon EMR anteriores a 5.x e grava um driver para envio no modo de cluster, o driver usa o Java 7. No entanto, você pode configurar o ambiente para garantir que os executores usem o Java 8.

Para substituir a JVM do Spark, é recomendável definir as classificações do Hadoop e do 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": {} }

Substitua a configuração da JVM com o Apache HBase

Para configurar HBase para usar o Java 11, você pode definir a seguinte configuração ao iniciar o cluster.

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

Substituir a configuração da JVM usando o Apache Hadoop e o Hive

O exemplo a seguir mostra como definir a JVM para a versão 17 para Hadoop e Hive.

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

Portas de serviço

A seguir estão as portas de serviço YARN e HDFS. Essas configurações refletem os padrões do Hadoop. Outros serviços de aplicativos são hospedados em portas padrão, a menos que documentado de outra forma. Para obter mais informações, consulte a documentação de projeto do aplicativo.

Configurações de portas para o YARN e o HDFS
Configuração Nome do host/Porta

fs.default.name

(padrão) (hdfs://emrDeterminedIP:8020)

dfs.datanode.address

(padrão) (0.0.0.0:50010)

dfs.datanode.http.address

(padrão) (0.0.0.0:50075)

dfs.datanode.https.address

(padrão) (0.0.0.0:50475)

dfs.datanode.ipc.address

(padrão) (0.0.0.0:50020)

dfs.http.address

(padrão) (0.0.0.0:50070)

dfs.https.address

(padrão) (0.0.0.0:50470)

dfs.secondary.http.address

(padrão) (0.0.0.0:50090)

yarn.nodemanager.address

(padrão) (${yarn.nodemanager.hostname}:0)

yarn.nodemanager.localizer.address

(padrão) (${yarn.nodemanager.hostname}:8040)

yarn.nodemanager.webapp.address

(padrão) (${yarn.nodemanager.hostname}:8042)

yarn.resourcemanager.address

(padrão) (${yarn.resourcemanager.hostname}:8032)

yarn.resourcemanager.admin.address

(padrão) (${yarn.resourcemanager.hostname}:8033)

yarn.resourcemanager.resource-tracker.address

(padrão) (${yarn.resourcemanager.hostname}:8031)

yarn.resourcemanager.scheduler.address

(padrão) (${yarn.resourcemanager.hostname}:8030)

yarn.resourcemanager.webapp.address

(padrão) (${yarn.resourcemanager.hostname}:8088)

yarn.web-proxy.address

(padrão) (no-value)

yarn.resourcemanager.hostname

emrDeterminedIP

nota

O termo emrDeterminedIP é um endereço IP gerado pelo plano de controle do Amazon EMR. Na versão mais recente, essa convenção foi eliminada, com exceção para as configurações yarn.resourcemanager.hostname e fs.default.name.

Usuários do aplicativo

Os aplicativos executarão processos como seus próprios usuários. Por exemplo, o Hive é JVMs executado como usuáriohive, MapReduce JVMs executado como mapred e assim por diante. Isso é demonstrado no exemplo a seguir de status de processo.

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
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.