

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
<a name="emr-configure-apps"></a>

Para substituir as configurações padrão de uma aplicação, você pode fornecer um objeto de configuração. Você pode usar uma sintaxe abreviada para fornecer a configuração ou referenciar o objeto de configuração em um arquivo JSON. Os objetos de configuração consistem em uma classificação, propriedades e configurações opcionais aninhadas As propriedades correspondem às configurações da aplicação que você deseja alterar. Você pode especificar várias classificações para diversas aplicações em um único objeto JSON.

**Atenção**  
As operações da API Describe and List do Amazon EMR emitem configurações personalizadas e configuráveis, que são usadas como parte dos fluxos de trabalho do Amazon EMR, em texto se formatação. Para fornecer informações sigilosas, como senhas, nessas configurações, consulte [Store sensitive configuration data in AWS Secrets Manager](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/storing-sensitive-data.html).

As classificações de configuração disponíveis variam de acordo com a versão do Amazon EMR. Para obter uma lista das classificações de configuração compatíveis com determinada versão, consulte a página da versão em [Sobre as versões do Amazon EMR](emr-release-components.md).

Veja a seguir um exemplo de arquivo JSON para uma lista de configurações.

```
[
  {
    "Classification": "core-site",
    "Properties": {
      "hadoop.security.groups.cache.secs": "250"
    }
  },
  {
    "Classification": "mapred-site",
    "Properties": {
      "mapred.tasktracker.map.tasks.maximum": "2",
      "mapreduce.map.sort.spill.percent": "0.90",
      "mapreduce.tasktracker.reduce.tasks.maximum": "5"
    }
  }
]
```

Uma classificação de configuração geralmente é mapeada para um arquivo de configuração específico do aplicativo. Por exemplo, a classificação `hive-site` é mapeada para as configurações no arquivo de configuração `hive-site.xml` para o Hive. Uma exceção para isso é a ação de bootstrap `configure-daemons`, que já não tem mais suporte, que é usada para definir parâmetros de ambiente, como `--namenode-heap-size`. Opções como esta são incluídas nas classificações `hadoop-env` e `yarn-env` com suas próprias classificações de exportação aninhadas. Se qualquer classificação terminar com `env`, use a subclassificação de exportação. 

Outra exceção é `s3get`, que é usado para colocar um objeto `EncryptionMaterialsProvider` cliente em cada nó de um cluster para uso na criptografia do lado do cliente. Uma opção foi adicionada à classificação `emrfs-site` para essa finalidade.

Veja a seguir um exemplo da classificação `hadoop-env`.

```
[
  {
    "Classification": "hadoop-env",
    "Properties": {
      
    },
    "Configurations": [
      {
        "Classification": "export",
        "Properties": {
          "HADOOP_DATANODE_HEAPSIZE": "2048",
          "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19"
        },
        "Configurations": [
          
        ]
      }
    ]
  }
]
```

Veja a seguir um exemplo da classificação yarn-env.

```
[
  {
    "Classification": "yarn-env",
    "Properties": {
      
    },
    "Configurations": [
      {
        "Classification": "export",
        "Properties": {
          "YARN_RESOURCEMANAGER_OPTS": "-Xdebug -Xrunjdwp:transport=dt_socket"
        },
        "Configurations": [
          
        ]
      }
    ]
  }
]
```

As configurações a seguir não pertencem a um arquivo de configuração, mas são usadas pelo Amazon EMR para configurar potencialmente várias configurações em seu nome.


**Configurações selecionadas pelo Amazon EMR**  

| Aplicação | Classificação do rótulo da versão | Propriedades válidas | Quando usar | 
| --- | --- | --- | --- | 
| Spark | spark | maximizeResourceAllocation | Configure executores para utilizar o máximo de recursos de cada nó. | 

**Topics**
+ [Configurar aplicações ao criar um cluster](emr-configure-apps-create-cluster.md)
+ [Reconfigurar um grupo de instâncias de um cluster em execução](emr-configure-apps-running-cluster.md)
+ [Armazene dados de configuração confidenciais em AWS Secrets Manager](storing-sensitive-data.md)
+ [Configurar aplicações para usar uma Máquina Virtual Java específica](configuring-java8.md)

# Configurar aplicações ao criar um cluster
<a name="emr-configure-apps-create-cluster"></a>

Ao criar um cluster, você pode substituir as configurações padrão dos aplicativos usando o console do Amazon EMR, o AWS Command Line Interface (AWS CLI) ou o SDK. AWS 

Para substituir a configuração padrão de uma aplicação, especifique valores personalizados em uma classificação de configuração. Uma classificação de configuração corresponde a um arquivo XML de configuração de uma aplicação, como `hive-site.xml`. 

As classificações de configuração variam de acordo com a versão do Amazon EMR. Para obter uma lista de classificações de configuração que estão disponíveis em uma versão específica, consulte a página de detalhes da versão. Por exemplo, o [Amazon EMR versão 6.4.0.](emr-640-release.md#emr-640-class)

## Fornecer uma configuração no console ao criar um cluster
<a name="emr-configure-apps-create-cluster-console"></a>

Para fornecer uma configuração, navegue até a página **Criar cluster** e expanda **Configurações do software**. Você poderá inserir a configuração diretamente usando JSON ou uma sintaxe abreviada demonstrada no texto sombreado no console. Caso contrário, você pode fornecer um URI do Amazon S3 para um arquivo com um objeto JSON `Configurations`.

Para fornecer uma configuração para um grupo de instâncias, escolha um cluster na lista de clusters e selecione a guia **Configurações**. Na tabela de **Configurações do grupo de instâncias**, escolha o grupo de instâncias a ser editado e, em seguida, **Reconfigurar**.

## Forneça uma configuração usando o AWS CLI ao criar um cluster
<a name="emr-configure-apps-create-cluster-cli"></a>

Você pode fornecer uma configuração para **create-cluster** fornecendo um caminho para um arquivo JSON armazenado localmente ou no Amazon S3. O exemplo a seguir pressupõe que você esteja usando perfis padrão para o Amazon EMR e que esses perfis foram criados. Se você precisar criar as funções, execute `aws emr create-default-roles` primeiro.

Se a configuração estiver em seu diretório local, você poderá usar o exemplo de comando a seguir.

```
aws emr create-cluster --use-default-roles --release-label emr-7.12.0 --applications Name=Hive \
--instance-type m5.xlarge --instance-count 3 --configurations file://./configurations.json
```

Se a configuração estiver em um caminho do Amazon S3, você precisará configurar a seguinte solução alternativa antes de passar o caminho do Amazon S3 para o comando `create-cluster`.

```
#!/bin/sh
# Assume the ConfigurationS3Path is not public, and its present in the same AWS account as the EMR cluster
ConfigurationS3Path="s3://amzn-s3-demo-bucket/config.json"
# Get a presigned HTTP URL for the s3Path
ConfigurationURL=`aws s3 presign $ConfigurationS3Path --expires-in 300`
# Fetch the presigned URL, and minify the JSON so that it spans only a single line
Configurations=`curl $ConfigurationURL | jq -c .`
aws emr create-cluster --use-default-roles --release-label emr-5.34.0 --instance-type m5.xlarge --instance-count 2 --applications Name=Hadoop Name=Spark --configurations $Configurations
```

## Fornecer uma configuração usando o SDK do Java ao criar um cluster
<a name="emr-configure-apps-create-cluster-sdk"></a>

O trecho de programa a seguir mostra como fornecer uma configuração usando o AWS SDK para Java.

```
Application hive = new Application().withName("Hive");

Map<String,String> hiveProperties = new HashMap<String,String>();
	hiveProperties.put("hive.join.emit.interval","1000");
	hiveProperties.put("hive.merge.mapfiles","true");
	    
Configuration myHiveConfig = new Configuration()
	.withClassification("hive-site")
	.withProperties(hiveProperties);

RunJobFlowRequest request = new RunJobFlowRequest()
	.withName("Create cluster with ReleaseLabel")
	.withReleaseLabel("emr-5.20.0")
	.withApplications(hive)
	.withConfigurations(myHiveConfig)
	.withServiceRole("EMR_DefaultRole")
	.withJobFlowRole("EMR_EC2_DefaultRole")
	.withInstances(new JobFlowInstancesConfig()
		.withEc2KeyName("myEc2Key")
		.withInstanceCount(3)
		.withKeepJobFlowAliveWhenNoSteps(true)
		.withMasterInstanceType("m4.large")
		.withSlaveInstanceType("m4.large")
	);
```

# Reconfigurar um grupo de instâncias de um cluster em execução
<a name="emr-configure-apps-running-cluster"></a>

Com o Amazon EMR versão 5.21.0 e posteriores, você pode reconfigurar as aplicações do cluster e especificar classificações de configuração adicionais para cada grupo de instâncias em um cluster em execução. Para fazer isso, você pode usar o console do Amazon EMR, o AWS Command Line Interface (AWS CLI) ou o AWS SDK.

Quando você atualiza uma configuração de aplicação para um grupo de instâncias no novo console do Amazon EMR, o console tenta mesclar a nova configuração com a configuração atual para criar uma configuração nova e ativa. No caso incomum em que o Amazon EMR não conseguir mesclar a configuração, o console alertará você. 

Depois que você enviar uma solicitação de reconfiguração para um grupo de instâncias, o Amazon EMR atribuirá um número de versão à nova especificação de configuração. Você pode acompanhar o número da versão de uma configuração ou o estado de um grupo de instâncias visualizando os CloudWatch eventos. Para obter mais informações, consulte [Monitorar CloudWatch eventos](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-manage-cloudwatch-events.html).

**nota**  
Só é possível substituir, e não excluir, as configurações do cluster que foram especificadas durante a criação do cluster. Se há diferenças entre a configuração atual e o arquivo que você forneceu, o Amazon EMR redefine as configurações modificadas manualmente, como as que você modificou enquanto estava conectado ao cluster usando SSH, para os padrões do cluster do grupo de instâncias especificado. 

## Considerações ao reconfigurar um grupo de instâncias
<a name="emr-configure-apps-running-cluster-considerations"></a>

**Ações de reconfiguração**  
Quando você envia uma solicitação de reconfiguração usando o console do Amazon EMR, AWS Command Line Interface o AWS CLI() ou o SDK, AWS o Amazon EMR verifica o arquivo de configuração existente no cluster. Se há diferenças entre a configuração atual e o arquivo que você forneceu, o Amazon EMR inicia ações de reconfiguração, reinicia algumas aplicações e redefine as configurações modificadas manualmente, como as que você modificou enquanto estava conectado ao cluster usando SSH, para os padrões do cluster do grupo de instâncias especificado.   
O Amazon EMR executa algumas ações padrão durante cada reconfiguração de grupo de instâncias. Essas ações padrão podem entrar em conflito com as personalizações do cluster feitas por você e resultar em falhas de reconfiguração. Para obter mais informações sobre como solucionar falhas de reconfiguração, consulte [Solucionar problemas de reconfiguração do grupo de instâncias](#emr-configure-apps-running-cluster-troubleshoot).
O Amazon EMR também inicia ações de reconfiguração para as classificações de configuração que você especifica na solicitação. Para obter uma lista completa dessas ações, consulte a seção de classificações de configuração da versão do Amazon EMR que você usa. Por exemplo, [Classificações de configuração do 6.2.0](emr-620-release.md#emr-620-class).  
O Guia de lançamento do Amazon EMR lista somente as ações de reconfiguração a partir das versões 5.32.0 e 6.2.0 do Amazon EMR.

**Interrupção do serviço**  
O Amazon EMR segue um processo contínuo para reconfigurar as instâncias nos grupos de instâncias centrais e de tarefa. Somente 10% das instâncias em um grupo de instâncias são modificadas e reiniciadas por vez. Esse processo leva mais tempo para ser concluído, mas reduz a chance de possíveis falhas de aplicativo em um cluster em execução.   
Para executar trabalhos do YARN durante a reinicialização do YARN, crie um cluster do Amazon EMR com múltiplos nós principais ou defina `yarn.resourcemanager.recovery.enabled` como `true` na classificação da configuração `yarn-site`. Para obter mais informações sobre o uso de vários nós principais, consulte [YARN ResourceManager de alta disponibilidade](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-ha-applications.html#emr-plan-ha-applications-YARN).

**Validação da aplicação**  
O Amazon EMR verifica se cada aplicação do cluster está em execução após o processo de reinicialização da reconfiguração. Se alguma aplicação não estiver disponível, a operação geral de reconfiguração falhará. Se houver falha na reconfiguração de uma operação, o Amazon EMR reverterá os parâmetros de configuração para a versão de trabalho anterior.  
Para evitar falhas na reconfiguração, é recomendável instalar somente as aplicações que planeja usar no cluster. Também é recomendável verificar se todas as aplicações do cluster estão íntegras e em execução antes de enviar uma solicitação de reconfiguração.

**Tipos de reconfiguração**  
É possível reconfigurar um grupo de instâncias de duas maneiras:  
+ **Substituir**. Método de reconfiguração padrão e o único disponível nas versões do Amazon EMR anteriores a 5.35.0 e 6.6.0. Esse método de reconfiguração substitui indiscriminadamente todo arquivo no cluster pelo conjunto de configurações recém-enviado. O método apaga as alterações nos arquivos de configuração feitas fora da API de reconfiguração.
+ **Mesclar**. Método de reconfiguração compatível com o Amazon EMR 5.35.0 e 6.6.0 e versões posteriores, exceto no console do Amazon EMR, em que nenhuma versão é compatível. Esse método de reconfiguração mescla as configurações recém-enviadas com as configurações já existentes no cluster. Essa opção só adicionará ou modificará as novas configurações que você enviar. Ela preserva as configurações atuais.
O Amazon EMR continua substituindo algumas configurações essenciais do Hadoop necessárias para garantir que o serviço seja executado corretamente.

**Limitações**

Ao reconfigurar um grupo de instâncias de um cluster em execução, considere estas limitações:
+ Aplicações que não sejam do Yarn podem falhar durante a reinicialização ou causar problemas no cluster, sobretudo se as aplicações não estiverem configuradas corretamente. Ao se aproximarem demais do uso máximo de memória e CPU, os clusters poderão ter problemas após o processo de reinicialização. Isso se aplica principalmente ao grupo de instâncias principal.
+ Não é possível enviar uma solicitação de reconfiguração quando o grupo de instâncias está sendo redimensionado. Se uma reconfiguração for iniciada enquanto um grupo de instâncias estiver sendo redimensionado, a reconfiguração não poderá ser iniciada até que o redimensionamento do grupo de instâncias tenha sido concluído e vice-versa. 
+ Depois de reconfigurar um grupo de instâncias, o Amazon EMR reiniciará as aplicações para permitir que as novas configurações entrem em vigor. Uma falha no trabalho ou outro comportamento inesperado do aplicativo poderão ocorrer se os aplicativos estiverem em uso durante a reconfiguração. 
+ Se houver falha na reconfiguração de um grupo de instâncias, o Amazon EMR reverterá os parâmetros de configuração para a versão anterior válida. Se também houver falha no processo de reversão, você deverá enviar uma nova solicitação `ModifyInstanceGroup` para recuperar o grupo de instâncias a partir do estado `SUSPENDED`.
+ As solicitações de reconfiguração para classificações de configuração do Phoenix são compatíveis com as versões 5.23.0 e posteriores do Amazon EMR, e não são compatíveis com a versão 5.21.0 ou 5.22.0 do Amazon EMR. 
+ Solicitações de HBase reconfiguração para classificações de configuração são suportadas somente na versão 5.30.0 e posterior do Amazon EMR, e não são suportadas nas versões 5.23.0 a 5.29.0 do Amazon EMR. 
+ O Amazon EMR oferece suporte a solicitações de reconfiguração de aplicações em um cluster do Amazon EMR com múltiplos nós primários somente nas versões 5.27.0 e posteriores do Amazon EMR.
+ Não há suporte para reconfigurar a classificação `hdfs-encryption-zones` ou qualquer uma das classificações de configuração em um cluster do Amazon EMR com múltiplos nós primários.
+ Atualmente, o Amazon EMR não oferece suporte a determinadas solicitações de reconfiguração para o programador de capacidade que exigem a reinicialização do YARN. ResourceManager Por exemplo, não é possível remover uma fila completamente.

## Reconfigurar um grupo de instâncias no console
<a name="emr-configure-apps-running-cluster-console"></a>

**nota**  
O console do Amazon EMR não oferece suporte a reconfigurações do tipo **Merge**.

1. [Abra o console do Amazon EMR em /emr https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. Na lista de clusters, m **Nome**, escolha o cluster ativo que você deseja reconfigurar.

1. Abra a página de detalhes do cluster e acesse a guia **Configurações**. 

1. Na lista suspensa **Filter (Filtro)**, selecione o grupo de instâncias que você deseja reconfigurar. 

1. No menu suspenso **Reconfigurar**, escolha **Editar na tabela** ou **Editar no arquivo JSON**.
   + **Editar na tabela**: na tabela de classificações de configuração, edite a propriedade e o valor das configurações atuais ou escolha **Adicionar configuração** para fornecer a propriedade e o valor para outras classificações de configuração. 
   + **Editar no arquivo JSON**: insira a configuração diretamente no JSON ou use a sintaxe abreviada (demonstrada no texto sombreado). Caso contrário, forneça um URI do Amazon S3 para um arquivo com um objeto JSON `Configurations`.
**nota**  
A coluna **Origem** na tabela de classificações de configuração indica se a configuração é fornecida quando você cria um cluster ou quando você especifica configurações adicionais para esse grupo de instâncias. Você pode editar as configurações para um grupo de instâncias de ambas as origens. Não é possível excluir as configurações iniciais do cluster, mas você pode substituí-las por um grupo de instâncias.   
Você também pode adicionar ou editar classificações de configuração aninhadas diretamente na tabela. Por exemplo, para fornecer uma sub-classificação de `export` adicional de `hadoop-env`, adicione uma classificação de configuração `hadoop.export` na tabela. Em seguida, forneça uma propriedade específica e um valor para essa classificação. 

1. (Opcional) Selecione **Apply this configuration to all active instance groups (Aplicar essa configuração a todos os grupos de instâncias ativas)**.

1. Salve as alterações.

## Reconfigurar um grupo de instâncias usando a CLI
<a name="emr-configure-apps-running-cluster-cli"></a>

Você pode usar o comando **modify-instance-groups** para especificar configurações para cada grupo de instâncias em um cluster em execução.

**nota**  
Nos exemplos a seguir, *<j-2AL4XXXXXX5T9>* substitua pelo ID do cluster e pelo *<ig-1xxxxxxx9>* ID do grupo de instâncias.

**Example : substituir uma configuração para um grupo de instâncias**  
O exemplo a seguir faz referência a um arquivo JSON de configuração chamado `instanceGroups.json` para editar a propriedade do verificador de integridade do NodeManager disco YARN para um grupo de instâncias.  

1. Prepare a classificação da configuração e salve-a como `instanceGroups.json` no mesmo diretório em que você executará o comando.

   ```
   [
      {
         "InstanceGroupId":"<ig-1xxxxxxx9>",
         "Configurations":[
            {
               "Classification":"yarn-site",
               "Properties":{
                  "yarn.nodemanager.disk-health-checker.enable":"true",
                  "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0"
               },
               "Configurations":[]
            }
         ]
      }
   ]
   ```

1. Execute o comando a seguir.

   ```
   aws emr modify-instance-groups --cluster-id <j-2AL4XXXXXX5T9> \
   --instance-groups file://instanceGroups.json
   ```

**Example — Adicionar uma configuração a um grupo de instâncias**  
Se deseja adicionar uma configuração a um grupo de instâncias, você deverá incluir todas as configurações especificadas anteriormente para aquele grupo de instâncias em sua nova solicitação `ModifyInstanceGroup`. Caso contrário, as configurações especificadas anteriormente serão removidas.  
O exemplo a seguir adiciona uma propriedade para o verificador de memória NodeManager virtual YARN. A configuração também inclui valores previamente especificados para o verificador de integridade do NodeManager disco YARN, para que os valores não sejam substituídos.  

1. Prepare o conteúdo a seguir em `instanceGroups.json` e salve-o no mesmo diretório onde você executará o comando.

   ```
   [
      {
         "InstanceGroupId":"<ig-1xxxxxxx9>",
         "Configurations":[
            {
               "Classification":"yarn-site",
               "Properties":{
                  "yarn.nodemanager.disk-health-checker.enable":"true",
                  "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0",
                  "yarn.nodemanager.vmem-check-enabled":"true",
                  "yarn.nodemanager.vmem-pmem-ratio":"3.0"
               },
               "Configurations":[]
            }
         ]
      }
   ]
   ```

1. Execute o comando a seguir.

   ```
   aws emr modify-instance-groups --cluster-id <j-2AL4XXXXXX5T9> \
   --instance-groups file://instanceGroups.json
   ```

**Example — Adicionar uma configuração a um grupo de instâncias com uma reconfiguração do tipo **Merge****  
Quando quiser usar o método padrão de reconfiguração **Overwrite** para adicionar uma configuração, é necessário incluir todas as configurações especificadas anteriormente para esse grupo de instâncias em sua nova solicitação `ModifyInstanceGroup`. Caso contrário, **Overwrite** removerá as configurações que você especificou anteriormente. Não é necessário fazer isso com a reconfiguração **Merge**. Em vez disso, garanta que sua solicitação inclua apenas as novas configurações.  
O exemplo a seguir adiciona uma propriedade para o verificador de memória NodeManager virtual YARN. Como essa é uma reconfiguração do tipo **Merge**, ela não sobrescreve os valores especificados anteriormente para o verificador de integridade do disco YARN. NodeManager   

1. Prepare o conteúdo a seguir em `instanceGroups.json` e salve-o no mesmo diretório onde você executará o comando.

   ```
   [
      {"InstanceGroupId":"<ig-1xxxxxxx9>",
       "ReconfigurationType" :"MERGE",
         "Configurations":[
            {"Classification":"yarn-site",
               "Properties":{
                  "yarn.nodemanager.vmem-check-enabled":"true",
                  "yarn.nodemanager.vmem-pmem-ratio":"3.0"
               },
               "Configurations":[]
            }
         ]
      }
   ]
   ```

1. Execute o comando a seguir.

   ```
   aws emr modify-instance-groups --cluster-id <j-2AL4XXXXXX5T9> \
   --instance-groups file://instanceGroups.json
   ```

**Example : excluir uma configuração de um grupo de instâncias**  
Para excluir uma configuração para um grupo de instâncias, envie uma nova solicitação de reconfiguração que exclua a configuração anterior.   
Só é possível substituir a configuração inicial do *cluster*. Você não pode excluí-la.
Por exemplo, para excluir a configuração do verificador de integridade do NodeManager disco YARN do exemplo anterior, envie uma nova `instanceGroups.json` com o conteúdo a seguir.   

```
[
   {
      "InstanceGroupId":"<ig-1xxxxxxx9>",
      "Configurations":[
         {
            "Classification":"yarn-site",
            "Properties":{
               "yarn.nodemanager.vmem-check-enabled":"true",
               "yarn.nodemanager.vmem-pmem-ratio":"3.0"
            },
            "Configurations":[]
         }
      ]
   }
]
```
Para excluir todas as configurações na última solicitação de reconfiguração, envie uma solicitação de reconfiguração com uma matriz de configurações. Por exemplo,  

```
[
   {
      "InstanceGroupId":"<ig-1xxxxxxx9>",
      "Configurations":[]
   }
]
```

**Example — Reconfigurar e redimensionar um grupo de instâncias em uma solicitação**  
O JSON de exemplo a seguir demonstra como reconfigurar e redimensionar um grupo de instâncias em na mesma solicitação.  

```
[
   {
      "InstanceGroupId":"<ig-1xxxxxxx9>",
      "InstanceCount":5,
      "EC2InstanceIdsToTerminate":["i-123"],
      "ForceShutdown":true,
      "ShrinkPolicy":{
         "DecommissionTimeout":10,
         "InstanceResizePolicy":{
            "InstancesToTerminate":["i-123"],
            "InstancesToProtect":["i-345"],
            "InstanceTerminationTimeout":20
         }
      },
      "Configurations":[
         {
            "Classification":"yarn-site",
            "Configurations":[],
            "Properties":{
               "yarn.nodemanager.disk-health-checker.enable":"true",
               "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0"
            }
         }
      ]
   }
]
```

## Reconfigurar um grupo de instâncias usando o SDK do Java
<a name="emr-configure-apps-running-cluster-sdk"></a>

**nota**  
Nos exemplos a seguir, *<j-2AL4XXXXXX5T9>* substitua pelo ID do cluster e pelo *<ig-1xxxxxxx9>* ID do grupo de instâncias.

O trecho de código a seguir fornece uma nova configuração para um grupo de instâncias usando o AWS SDK para Java.

```
AWSCredentials credentials = new BasicAWSCredentials("access-key", "secret-key");
AmazonElasticMapReduce emr = new AmazonElasticMapReduceClient(credentials);

Map<String,String> hiveProperties = new HashMap<String,String>();
hiveProperties.put("hive.join.emit.interval","1000");
hiveProperties.put("hive.merge.mapfiles","true");
        
Configuration configuration = new Configuration()
    .withClassification("hive-site")
    .withProperties(hiveProperties);
    
InstanceGroupModifyConfig igConfig = new InstanceGroupModifyConfig()
    .withInstanceGroupId("<ig-1xxxxxxx9>")
    .withReconfigurationType("MERGE");
    .withConfigurations(configuration);

ModifyInstanceGroupsRequest migRequest = new ModifyInstanceGroupsRequest()
    .withClusterId("<j-2AL4XXXXXX5T9>")
    .withInstanceGroups(igConfig);

emr.modifyInstanceGroups(migRequest);
```

O trecho de código a seguir exclui uma configuração especificada anteriormente para um grupo de instâncias fornecendo uma matriz vazia de configurações.

```
List<Configuration> configurations = new ArrayList<Configuration>();

InstanceGroupModifyConfig igConfig = new InstanceGroupModifyConfig()
    .withInstanceGroupId("<ig-1xxxxxxx9>")
    .withConfigurations(configurations);

ModifyInstanceGroupsRequest migRequest = new ModifyInstanceGroupsRequest()
    .withClusterId("<j-2AL4XXXXXX5T9>")
    .withInstanceGroups(igConfig);

emr.modifyInstanceGroups(migRequest);
```

## Solucionar problemas de reconfiguração do grupo de instâncias
<a name="emr-configure-apps-running-cluster-troubleshoot"></a>

Se o processo de reconfiguração de um grupo de instâncias falhar, o Amazon EMR reverte a reconfiguração e registra uma mensagem de falha usando um evento da Amazon. CloudWatch O evento fornece um breve resumo da falha de reconfiguração. Ele lista as instâncias em que a reconfiguração falhou e as mensagens de falha correspondentes. Veja a seguir um exemplo de mensagem de falha.

```
The reconfiguration operation for instance group ig-1xxxxxxx9 in Amazon EMR cluster j-2AL4XXXXXX5T9 (ExampleClusterName) 
failed at 2021-01-01 00:00 UTC and took 2 minutes to fail. Failed configuration version is example12345. 
Failure message: Instance i-xxxxxxx1, i-xxxxxxx2, i-xxxxxxx3 failed with message "This is an example failure message".
```

Para coletar mais dados sobre uma falha de reconfiguração, verifique os logs de provisionamento do nó. Isso serve principalmente quando você recebe a mensagem a seguir.

```
i-xxxxxxx1 failed with message “Unable to complete transaction and some changes were applied.”
```

------
#### [ On the node ]

**Acessar os logs de provisionamento do nó conectando-se a um nó**

1. Use o SSH para se conectar ao nó em que a reconfiguração falhou. Para obter instruções, consulte [Conecte-se à sua instância do Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) no *Guia do usuário do *Amazon EC2* para instâncias do Linux*.

1. Navegue até o diretório a seguir, que contém os arquivos de log de provisionamento do nó.

   ```
   /mnt/var/log/provision-node/
   ```

1. Abra o subdiretório `reports` e pesquise o relatório de provisionamento do nó para a reconfiguração. O diretório `reports` organiza os logs por número de versão de reconfiguração, identificador universal exclusivo (UUID), endereço IP da instância Amazon EC2 e carimbo de data/hora. Cada relatório é um arquivo YAML compactado contendo informações detalhadas sobre o processo de reconfiguração.

   Veja a seguir um exemplo de nome e caminho do arquivo de relatório.

   ```
   /reports/2/ca598xxx-cxxx-4xxx-bxxx-6dbxxxxxxxxx/ip-10-73-xxx-xxx.ec2.internal/202104061715.yaml.gz
   ```

1. Você pode examinar um relatório usando um visualizador de arquivos como `zless`, como no exemplo a seguir.

   ```
   zless 202104061715.yaml.gz
   ```

------
#### [ Amazon S3 ]

**Acessar logs de provisionamento do nó usando o Amazon S3**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Abra o bucket do Amazon S3 especificado quando você configurou o cluster para arquivar arquivos de log.

1. Navegue até esta pasta, que contém os arquivos de log de provisionamento do nó:

   ```
   amzn-s3-demo-bucket/elasticmapreduce/<cluster id>/node/<instance id>/provision-node/
   ```

1. Abra a pasta `reports` e pesquise o relatório de provisionamento do nó para a reconfiguração. A pasta `reports` organiza os logs por número de versão de reconfiguração, identificador universal exclusivo (UUID), endereço IP da instância Amazon EC2 e carimbo de data/hora. Cada relatório é um arquivo YAML compactado contendo informações detalhadas sobre o processo de reconfiguração.

   Veja a seguir um exemplo de nome e caminho do arquivo de relatório.

   ```
   /reports/2/ca598xxx-cxxx-4xxx-bxxx-6dbxxxxxxxxx/ip-10-73-xxx-xxx.ec2.internal/202104061715.yaml.gz
   ```

1. Para visualizar um arquivo de log, você pode baixá-lo no Amazon S3 para a máquina local como arquivo de texto. Para obter instruções, consulte [Fazer download de um objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html).

------

Cada arquivo de log contém um relatório detalhado de provisionamento para a reconfiguração associada. Para encontrar informações sobre mensagens de erro, pesquise o nível do log `err` de um relatório. O formato do relatório depende da versão do Amazon EMR no cluster. 

O exemplo a seguir mostra informações de erro para versões do Amazon EMR anteriores a 5.32.0 e 6.2.0.

```
- !ruby/object:Puppet::Util::Log
      level: !ruby/sym err
      tags: 
        - err
      message: "Example detailed error message."
      source: Puppet
      time: 2021-01-01 00:00:00.000000 +00:00
```

Em vez disso, as versões 5.32.0 e 6.2.0 e posteriores do Amazon EMR usam o formato a seguir.

```
- level: err
  message: 'Example detailed error message.'
  source: Puppet
  tags:
  - err
  time: '2021-01-01 00:00:00.000000 +00:00'
  file: 
  line:
```

# Armazene dados de configuração confidenciais em AWS Secrets Manager
<a name="storing-sensitive-data"></a>

O Amazon EMR descreve e lista as operações de API que emitem dados de configuração personalizados (como `DescribeCluster` e `ListInstanceGroups`) em texto sem formatação. O Amazon EMR se integra AWS Secrets Manager para que você possa armazenar seus dados no Secrets Manager e usar o ARN secreto em suas configurações. Dessa forma, você não passa dados confidenciais de configuração para o Amazon EMR em texto sem formatação e os expõe ao ambiente externo. APIs Se você indicar que um par de chave-valor contém o ARN de um segredo armazenado no Secrets Manager, o Amazon EMR recuperará esse segredo ao enviar dados de configuração ao cluster. O Amazon EMR não envia a anotação quando usa o externo APIs para exibir a configuração.

## Criar um segredo
<a name="create-secret"></a>

Para criar um segredo, siga as instruções em [Criação de um segredo do AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) no *Guia do usuário do AWS Secrets Manager *. Na **Etapa 3**, você deve escolher o campo **Texto sem formatação** para inserir o valor sigiloso.

Observe que, embora o Secrets Manager permita que o segredo contenha até 65536 bytes, o Amazon EMR limita a 1024 caracteres o tamanho combinado da chave de propriedade (excluindo a anotação) e o valor do segredo recuperado.

## Conceder acesso ao Amazon EMR para recuperar o segredo
<a name="grant-access"></a>

O Amazon EMR usa um perfil de serviço do IAM para provisionar e gerenciar clusters para você. O perfil de serviço do Amazon EMR define as ações permitidas para o Amazon EMR durante o provisionamento de recursos e a execução de tarefas no nível de serviço que não são executadas no contexto de uma instância do Amazon EC2 em execução em um cluster. Para obter mais informações sobre perfis de serviço, consulte [Service role for Amazon EMR (EMR role)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role.html) e [Customize IAM roles](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-custom.html).

Para permitir que o Amazon EMR recupere o valor do segredo do Secrets Manager, adicione a seguinte instrução de política ao perfil do Amazon EMR ao iniciar o cluster.

```
{
   "Sid":"AllowSecretsRetrieval",
   "Effect":"Allow",
   "Action":"secretsmanager:GetSecretValue",
   "Resource":[
      "arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>"
   ]
}
```

Se você criar o segredo com uma chave gerenciada pelo cliente AWS KMS key, também deverá adicionar `kms:Decrypt` permissão à função do Amazon EMR para a chave que você usa. Para obter mais informações, consulte [Controle de acesso e autenticação para o AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html) no *Manual do usuário do AWS Secrets Manager *.

## Usar o segredo em uma classificação de configuração
<a name="config-secret"></a>

Você pode adicionar a anotação `EMR.secret@` a qualquer propriedade de configuração para indicar que o par de chave-valor contém um ARN de um segredo armazenado no Secrets Manager.

O exemplo a seguir mostra como fornecer um ARN de segredo em uma classificação de configuração:

```
{
   "Classification":"core-site",
   "Properties":{
      "presto.s3.access-key":"<sensitive-access-key>",
      "EMR.secret@presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>"
   }
}
```

Quando você cria o cluster e envia a configuração anotada, o Amazon EMR valida as propriedades da configuração. Se a configuração for válida, o Amazon EMR removerá a anotação da configuração e recuperará o segredo do Secrets Manager para criar a configuração real antes de aplicá-la ao cluster:

```
{
   "Classification":"core-site",
   "Properties":{
      "presto.s3.access-key":"<sensitive-access-key>",
      "presto.s3.secret-key":"<my-secret-key-retrieved-from-Secrets-Manager>"
   }
}
```

Quando você chama uma ação como `DescribeCluster`, o Amazon EMR retorna a configuração atual da aplicação no cluster. Se uma propriedade de configuração da aplicação estiver marcada como contendo um ARN de segredo, a configuração da aplicação retornada pela chamada `DescribeCluster` conterá o ARN e não o valor do segredo. Isso garante que o valor do segredo seja visível somente no cluster:

```
{
   "Classification":"core-site",
   "Properties":{
      "presto.s3.access-key":"<sensitive-access-key>",
      "presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>"
   }
}
```

## Atualizar o valor do segredo
<a name="update-secret"></a>

O Amazon EMR recupera o valor do segredo de uma configuração anotada sempre que o grupo de instâncias anexado estiver iniciando, reconfigurando ou redimensionando. É possível usar o Secrets Manager para modificar o valor de um segredo utilizado na configuração de um cluster em execução. Ao fazer isso, você pode enviar uma solicitação de reconfiguração para cada grupo de instâncias que deve receber o valor atualizado. Para obter mais informações sobre como reconfigurar um grupo de instâncias e o que considerar ao fazer isso, consulte [Reconfigurar um grupo de instâncias de um cluster em execução](emr-configure-apps-running-cluster.md).

# Configurar aplicações para usar uma Máquina Virtual Java específica
<a name="configuring-java8"></a>

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
<a name="configuring-java8-considerations"></a>

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](emr-release-components.md).
+ 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](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/flink-configure.html#flink-configure-java11).
+ 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](https://trino.io/blog/2022/07/14/trino-updates-to-java-17.html) 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](#configuring-java8-override). [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/emr/latest/ReleaseGuide/configuring-java8.html) | 
| 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](#configuring-java8-override). | 
| 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](#configuring-java8-override). | 
| 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](flink-configure.md#flink-configure-java11). | 
| 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](oozie-java.md). | 
| 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
<a name="configuring-java8-override"></a>

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](flink-configure.md#flink-configure-java11).

**Topics**
+ [Substituir a configuração da JVM usando o Apache Spark](#configuring-java8-override-spark)
+ [Substitua a configuração da JVM com o Apache HBase](#configuring-java8-override-hbase)
+ [Substituir a configuração da JVM usando o Apache Hadoop e o Hive](#configuring-java8-override-hadoop)

### Substituir a configuração da JVM usando o Apache Spark
<a name="configuring-java8-override-spark"></a>

Ao usar o Spark com as versões 6.12 e superiores do Amazon EMR, você pode definir o ambiente para que os executores usem o 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, defina a configuração de classificação do Spark. Neste exemplo, a versão do Java para o Hadoop é a mesma, mas isso não é obrigatório.

```
[
{
"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": {}
    }
]
```

Observação: para o Hadoop no Amazon EMR, uma prática recomendada é que a versão da JVM seja consistente em todos os componentes do Hadoop.

 O exemplo a seguir mostra como adicionar parâmetros de configuração necessários para o EMR 7.0.0\$1 para garantir o uso consistente da versão Java em todos os componentes.

```
[
  {
    "Classification": "spark-defaults",
    "Properties": {
      "spark.executorEnv.JAVA_HOME": "/usr/lib/jvm/java-1.8.0",
      "spark.yarn.appMasterEnv.JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
  },
  {
    "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
<a name="configuring-java8-override-hbase"></a>

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

```
[
    {
        "Classification": "hbase-env",
        "Properties": {},
        "Configurations": [
            {
                "Classification": "export",
                "Properties": {
                    "JAVA_HOME": "/usr/lib/jvm/jre-11",
                    "HBASE_OPTS": "-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -Dsun.net.inetaddr.ttl=5"
                },
                "Configurations": []
            }
        ]
    }
]
```

### Substituir a configuração da JVM usando o Apache Hadoop e o Hive
<a name="configuring-java8-override-hadoop"></a>

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 name="configuring-java8-service-ports"></a>

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
<a name="configuring-java8-application-users"></a>

Os aplicativos executarão processos como seus próprios usuários. Por exemplo, o Hive é JVMs executado como usuário`hive`, 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
```