

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

Para anular las configuraciones predeterminadas de una aplicación, puede subministrar un objeto de configuración. Puede utilizar tanto una sintaxis abreviada para proporcionar la configuración como hacer referencia al objeto de configuración en un archivo JSON. Los objetos de configuración se componen de una clasificación, propiedades y configuraciones anidadas opcionales. Las propiedades corresponden a la configuración de la aplicación que desee cambiar. Es posible especificar varias clasificaciones para varias aplicaciones en un solo objeto JSON.

**aviso**  
Las operaciones de la API de descripción y lista de Amazon EMR emiten configuraciones personalizadas, que se pueden establecer y que se utilizan como parte de los flujos de trabajo de Amazon EMR, en texto sin formato. Para incluir información confidencial, como contraseñas, en estas configuraciones, consulte [Almacenamiento de datos de configuración confidenciales en AWS Secrets Manager](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/storing-sensitive-data.html).

Las clasificaciones de configuración disponibles varían según la versión de Amazon EMR. Para obtener una lista de las clasificaciones de configuración compatibles con una versión de lanzamiento concreta, consulte la página correspondiente a esa versión en la sección [Acerca de las versiones de Amazon EMR](emr-release-components.md).

A continuación se muestra un ejemplo de archivo de JSON para obtener una lista de configuraciones.

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

Una clasificación de configuración suele corresponderse con un archivo de configuración específico de la aplicación. Por ejemplo, la clasificación `hive-site` se corresponde con los valores del archivo de configuración `hive-site.xml` de Hive. Una excepción es la acción de arranque `configure-daemons` ya no admitida, que se utiliza para establecer parámetros de entorno como `--namenode-heap-size`. Las opciones de este tipo se engloban en las clasificaciones `hadoop-env` y `yarn-env` con sus propias clasificaciones de exportación anidadas. Si alguna clasificación termina por `env`, debe utilizar la subclasificación de exportación. 

Otra excepción es `s3get`, que se utiliza para colocar un objeto `EncryptionMaterialsProvider` del cliente en cada nodo de un clúster para su uso en cifrado del cliente. Se ha añadido una opción a la clasificación `emrfs-site` para este fin.

A continuación se muestra un ejemplo de la clasificación `hadoop-env`.

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

A continuación se muestra un ejemplo de la clasificación yarn-env.

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

Los siguientes ajustes no pertenecen a un archivo de configuración, pero los utiliza Amazon EMR para configurar potencialmente diversos ajustes en su nombre.


**Ajustes mantenidos por Amazon EMR**  

| Aplicación | Clasificación de etiqueta de la versión | Propiedades válidas | Cuándo se debe usar | 
| --- | --- | --- | --- | 
| Spark | spark | maximizeResourceAllocation | Configure ejecutores para utilizar los recursos máximos de cada nodo. | 

**Topics**
+ [

# Configuración de las aplicaciones al crear un clúster
](emr-configure-apps-create-cluster.md)
+ [

# Reconfiguración de un grupo de instancias en un clúster en ejecución
](emr-configure-apps-running-cluster.md)
+ [

# Guarde los datos de configuración confidenciales en AWS Secrets Manager
](storing-sensitive-data.md)
+ [

# Configuración de aplicaciones para utilizar una máquina virtual de Java específica
](configuring-java8.md)

# Configuración de las aplicaciones al crear un clúster
<a name="emr-configure-apps-create-cluster"></a>

Al crear un clúster, puede anular las configuraciones predeterminadas de las aplicaciones mediante la consola Amazon EMR, AWS Command Line Interface el AWS CLI() o AWS el SDK. 

Para anular la configuración predeterminada de una aplicación, debe especificar valores personalizados en una clasificación de configuración. Una clasificación de configuración corresponde a un archivo XML de configuración para una aplicación, como `hive-site.xml`. 

Las clasificaciones de configuración varían en función de la versión de Amazon EMR. Para ver una lista de las clasificaciones de configuración que están disponibles para cada versión de lanzamiento, consulte la página de detalles de lanzamiento. Por ejemplo, [Versión 6.4.0. de Amazon EMR](emr-640-release.md#emr-640-class).

## Proporcionar una configuración en la consola al crear un clúster
<a name="emr-configure-apps-create-cluster-console"></a>

Para proporcionar una configuración, vaya a la página **Crear clúster** y amplíe la **Configuración de software**. A continuación, puede introducir la configuración directamente a través de JSON o una sintaxis abreviada mostrada en el texto en sombra en la consola. De lo contrario, puede proporcionar una URI de Amazon S3 para un archivo con un objeto `Configurations` de JSON.

Para proporcionar una configuración para un grupo de instancias, elija un clúster de la lista de clústeres y, a continuación, elija la pestaña **Configuraciones**. En la tabla de **Configuraciones de grupos de instancias**, seleccione el grupo de instancias que desea editar y, a continuación, seleccione **Reconfigurar**.

## Proporcione una configuración mediante la opción AWS CLI al crear un clúster
<a name="emr-configure-apps-create-cluster-cli"></a>

Puede proporcionar una configuración para **create-cluster** suministrando una ruta a un archivo JSON almacenado localmente o en Amazon S3. En el siguiente ejemplo se supone que está utilizando los roles predeterminados de Amazon EMR y que roles ya se han creado. Si necesita crear los roles, ejecute `aws emr create-default-roles` en primer lugar.

Si la configuración está en su directorio local, puede utilizar el siguiente comando de ejemplo.

```
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
```

Si su configuración está en una ruta de Amazon S3, tendrá que configurar la siguiente solución alternativa antes de pasar la ruta de Amazon S3 al 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
```

## Proporcione una configuración mediante el SDK de Java al crear un clúster
<a name="emr-configure-apps-create-cluster-sdk"></a>

El siguiente extracto de programa muestra cómo proporcionar una configuración utilizando 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")
	);
```

# Reconfiguración de un grupo de instancias en un clúster en ejecución
<a name="emr-configure-apps-running-cluster"></a>

Con la versión 5.21.0 y posteriores de Amazon EMR, puede volver a configurar las aplicaciones de clúster y especificar las clasificaciones de configuración adicionales para cada grupo de instancias en un clúster en ejecución. Para ello, puede utilizar la consola Amazon EMR, el AWS Command Line Interface (AWS CLI) o el AWS SDK.

Cuando actualiza la configuración de una aplicación para un grupo de instancias en la nueva consola de Amazon EMR, la consola intenta combinar la nueva configuración con la configuración existente para crear una nueva configuración activa. En el caso excepcional de que Amazon EMR no pueda combinar la configuración, la consola le avisará. 

Después de enviar una solicitud de reconfiguración para un grupo de instancias, Amazon EMR asigna un número de versión para la nueva especificación de configuración. Para realizar un seguimiento del número de versión de una configuración o del estado de un grupo de instancias, consulta los CloudWatch eventos. Para obtener más información, consulta [Supervisar CloudWatch eventos](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-manage-cloudwatch-events.html).

**nota**  
Solo puede anular, pero no eliminar, las configuraciones de clúster que se hayan especificado durante la su creación. Si hay diferencias entre la configuración existente y el archivo que suministra, Amazon EMR restablece las configuraciones modificadas manualmente, como las que ha modificado mientras estaba conectado al clúster mediante SSH, a los valores predeterminados del clúster para el grupo de instancias especificado. 

## Consideraciones a la hora de volver a configurar un grupo de instancias
<a name="emr-configure-apps-running-cluster-considerations"></a>

**Acciones de reconfiguración**  
Cuando envía una solicitud de reconfiguración mediante la consola de Amazon EMR, AWS Command Line Interface el AWS CLI() o el SDK, Amazon EMR comprueba AWS el archivo de configuración existente en el clúster. Si hay diferencias entre la configuración existente y el archivo que suministra, Amazon EMR inicia las acciones de reconfiguración, reinicia algunas aplicaciones y restablece cualquiera de las configuraciones modificadas manualmente, como las que ha modificado mientras estaba conectado al clúster mediante SSH, a los valores predeterminados del clúster para el grupo de instancias especificado.   
Amazon EMR realiza algunas acciones predeterminadas durante la reconfiguración de cada grupo de instancias. Estas acciones predeterminadas pueden entrar en conflicto con las personalizaciones del clúster que haya realizado y provocar errores de reconfiguración. Para obtener información sobre cómo solucionar errores de reconfiguración, consulte [Solución de problemas de reconfiguración de grupos de instancias](#emr-configure-apps-running-cluster-troubleshoot).
Amazon EMR también inicia acciones de reconfiguración para las clasificaciones de configuración que especifique en su solicitud. Para obtener una lista completa de estas acciones, consulte la sección Clasificaciones de configuración de la versión de Amazon EMR que utilice. Por ejemplo, [Clasificaciones de configuración 6.2.0](emr-620-release.md#emr-620-class).  
En la guía de versiones de Amazon EMR solo se enumeran las acciones de reconfiguración a partir de las versiones 5.32.0 y 6.2.0 de Amazon EMR.

**Interrupción del servicio**  
Amazon EMR sigue un proceso continuo para volver a configurar las instancias de los grupos de instancias Task y Core. Solo el 10 por ciento de las instancias de un grupo de instancias se modifican y se reinicia a la vez. Este proceso tarda más en terminar pero reduce la posibilidad de error de la aplicación en un clúster en ejecución.   
Para ejecutar trabajos de YARN durante un reinicio de YARN, puede crear un clúster de Amazon EMR con varios nodos maestros o establecer `yarn.resourcemanager.recovery.enabled` en `true` en su clasificación de configuración `yarn-site`. [Para obtener más información sobre el uso de varios nodos maestros, consulte YARN de alta disponibilidad. ResourceManager](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-ha-applications.html#emr-plan-ha-applications-YARN)

**Validación de aplicaciones**  
Amazon EMR comprueba que todas las aplicaciones del clúster se estén ejecutando tras el proceso de reinicio de la reconfiguración. Si alguna aplicación no está disponible, se produce un error en la operación de reconfiguración general. Si una reconfiguración da error, Amazon EMR invierte los parámetros de configuración a la versión anterior que funcionaba.  
Para evitar un error de reconfiguración, le recomendamos que solo instale en el clúster las aplicaciones que tenga pensado utilizar. También le recomendamos que se asegure de que todas las aplicaciones del clúster estén en buen estado y en funcionamiento antes de enviar una solicitud de reconfiguración.

**Tipos de reconfiguración**  
Puede volver a configurar un grupo de instancias de una de estas dos maneras:  
+ **Overwrite**. Método de reconfiguración predeterminado y el único disponible en las versiones de Amazon EMR anteriores a las 5.35.0 y 6.6.0. Este método de reconfiguración sobrescribe indiscriminadamente todos los archivos del clúster con el conjunto de configuraciones recién enviado. El método borra cualquier cambio en los archivos de configuración realizado fuera de la API de reconfiguración.
+ **Merge**. Método de reconfiguración compatible con las versiones 5.35.0 y 6.6.0 y posteriores de Amazon EMR, excepto desde la consola de Amazon EMR, que no admite ninguna versión. Este método de reconfiguración combina las configuraciones recién enviadas con las configuraciones que ya existen en el clúster. Esta opción solo agrega o modifica las nuevas configuraciones que envíe. Conserva las configuraciones existentes.
Amazon EMR sigue sobrescribiendo algunas configuraciones esenciales de Hadoop que necesita para garantizar que el servicio se ejecute correctamente.

**Limitaciones**

Cuando vuelva a configurar un grupo de instancias en un clúster en ejecución, tenga en cuenta las siguientes limitaciones:
+ Las aplicaciones que no son de YARN pueden fallar durante el reinicio o provocar problemas con el clúster, especialmente si no están configuradas correctamente. Los clústeres que se acerquen al uso máximo de memoria y CPU pueden tener problemas tras el proceso de reinicio. Esto es especialmente cierto en el caso del grupo de instancias maestro.
+ No puede enviar una solicitud de reconfiguración cuando se está cambiando el tamaño de un grupo de instancias. Si una reconfiguración mientras se inicia un grupo de instancias se está cambiando de reconfiguración, no puede comenzar hasta que se haya completado el grupo de instancias de tamaño y viceversa. 
+ Después de configurar un grupo de instancias, Amazon EMR reinicia las aplicaciones para permitir que las nuevas configuraciones surtan efecto. Puede darse un error de trabajo u otro comportamiento de la aplicación inesperado si las aplicaciones están en uso durante la reconfiguración. 
+ Si una reconfiguración para un grupo de instancias da error, Amazon EMR invierte los parámetros de configuración a la versión anterior que funcionaba. Si el proceso de reversión también da error, debe enviar una nueva solicitud `ModifyInstanceGroup` para recuperar el grupo de instancias desde el estado `SUSPENDED`.
+ Las solicitudes de reconfiguración para cualquier Phoenix clasificaciones de configuración solo se admiten en la versión 5.23.0 y versiones posteriores de Amazon EMR, y no son compatibles con la versión 5.21.0 o 5.22.0 de Amazon EMR. 
+ Las solicitudes de reconfiguración para las clasificaciones de HBase configuración solo se admiten en la versión 5.30.0 y posteriores de Amazon EMR, y no se admiten en las versiones 5.23.0 a 5.29.0 de Amazon EMR. 
+ Amazon EMR admite solicitudes de reconfiguración de aplicaciones en un clúster de Amazon EMR con varios nodos principales solo en las versiones 5.27.0 y posteriores de Amazon EMR.
+ La reconfiguración de la clasificación `hdfs-encryption-zones` o cualquiera de las clasificaciones de configuración de Hadoop KMS no se admite en clúster de Amazon EMR con varios nodos principales.
+ Amazon EMR actualmente no admite determinadas solicitudes de reconfiguración del programador de capacidad que requieren reiniciar el YARN. ResourceManager Por ejemplo, no puede eliminar por completo una cola.

## Reconfiguración de un grupo de instancias en la consola
<a name="emr-configure-apps-running-cluster-console"></a>

**nota**  
La consola de Amazon EMR no admite reconfiguraciones de tipo **Merge**.

1. [Abra la consola Amazon EMR en /emr https://console.aws.amazon.com](https://console.aws.amazon.com/emr)

1. En la lista de clústeres llamada **Nombre**, seleccione el clúster activo que desea volver a configurar.

1. Abra la página de detalles del clúster y vaya a la pestaña **Configuraciones**. 

1. En la lista desplegable **Filter**, seleccione el grupo de instancias que desea volver a configurar. 

1. En el menú desplegable **Volver a configurar**, elija **Editar en la tabla** o **Editar en el archivo JSON**.
   + **Editar en la tabla**: en la tabla de clasificación de configuración, edite la propiedad y el valor de las configuraciones existentes o elija **Agregar configuración** para suministrar clasificaciones de configuración adicionales. 
   + **Editar en el archivo JSON**: ingrese la configuración directamente en el JSON o use la sintaxis abreviada (mostrada en el texto en sombra). De lo contrario, proporcione una URI de Amazon S3 para un archivo con un objeto `Configurations` de JSON.
**nota**  
La columna **Origen** de la tabla de clasificación de configuración indica si la configuración se proporciona al crear un clúster o cuando se especifican configuraciones adicionales para este grupo de instancias. Puede editar las configuraciones para un grupo de instancias de ambas fuentes. No puede eliminar las configuraciones de clúster iniciales, pero puede anularlas para un grupo de instancias.   
También puede añadir o editar clasificaciones de configuración anidadas directamente a la tabla. Por ejemplo, para indicar una clasificación de subredes `export` adicionales `hadoop-env`, añada una clasificación de configuración `hadoop.export` a la tabla. A continuación, proporcione una propiedad específica y el valor de esta clasificación. 

1. (Opcional) Seleccione **Apply this configuration to all active instance groups** (Aplicar esta configuración a todos los grupos de instancias activas).

1. Guarde los cambios.

## Reconfiguración de un grupo de instancias con la CLI
<a name="emr-configure-apps-running-cluster-cli"></a>

Use el comando **modify-instance-groups** para especificar una nueva configuración para cada grupo de instancias en un clúster en ejecución.

**nota**  
En los siguientes ejemplos, sustitúyelo por el *<j-2AL4XXXXXX5T9>* ID del clúster y *<ig-1xxxxxxx9>* sustitúyalo por el ID del grupo de instancias.

**Example – Sustitución de una configuración para un grupo de instancias**  
En el siguiente ejemplo, se hace referencia a un archivo JSON de configuración llamado `instanceGroups.json` para editar la propiedad del comprobador de estado del NodeManager disco YARN de un grupo de instancias.  

1. Prepare la clasificación de la configuración y guárdela como `instanceGroups.json` en el mismo directorio en el que ejecutará el 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. Ejecute el comando siguiente.

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

**Example – Agregado de una configuración a un grupo de instancias**  
Si desea agregar una configuración a un grupo de instancias, debe incluir todas las configuraciones antes especificadas para ese grupo de instancias en su nueva solicitud `ModifyInstanceGroup`. De lo contrario, las configuraciones antes especificadas se eliminan.  
En el siguiente ejemplo, se agrega una propiedad para el comprobador de memoria NodeManager virtual YARN. La configuración también incluye valores previamente especificados para el comprobador de estado del NodeManager disco YARN, de modo que los valores no se sobrescriban.  

1. Prepare los contenidos siguientes en `instanceGroups.json` y guárdelos en el mismo directorio en el que va a ejecutará el 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. Ejecute el comando siguiente.

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

**Example – Agregar una configuración a un grupo de instancias con la reconfiguración de tipo **Merge****  
Si desea usar el método de reconfiguración **Overwrite** predeterminado para agregar una configuración, debe incluir todas las configuraciones especificadas previamente para ese grupo de instancias en su nueva solicitud `ModifyInstanceGroup`. De lo contrario, el método **Overwrite** elimina las configuraciones que haya especificado anteriormente. No necesita hacer esto con la reconfiguración **Merge**. En su lugar, debe asegurarse de que su solicitud solo incluya las nuevas configuraciones.  
El siguiente ejemplo agrega una propiedad para el comprobador de memoria NodeManager virtual YARN. Como se trata de una reconfiguración de tipo **Merge**, no sobrescribe los valores previamente especificados para el comprobador de estado del NodeManager disco YARN.  

1. Prepare los contenidos siguientes en `instanceGroups.json` y guárdelos en el mismo directorio en el que va a ejecutará el 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. Ejecute el comando siguiente.

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

**Example – Eliminación de una configuración para un grupo de instancias**  
Para eliminar una configuración para un grupo de instancias, envíe una nueva solicitud de reconfiguración que excluya la configuración anterior.   
Solo puede anular la configuración inicial del *clúster*. No puede eliminarla.
Por ejemplo, para eliminar la configuración del comprobador de estado del NodeManager disco YARN del ejemplo anterior, envíe una nueva `instanceGroups.json` con el siguiente contenido.   

```
[
   {
      "InstanceGroupId":"<ig-1xxxxxxx9>",
      "Configurations":[
         {
            "Classification":"yarn-site",
            "Properties":{
               "yarn.nodemanager.vmem-check-enabled":"true",
               "yarn.nodemanager.vmem-pmem-ratio":"3.0"
            },
            "Configurations":[]
         }
      ]
   }
]
```
Para eliminar todas las configuraciones de la última solicitud de reconfiguración, envíe una solicitud de reconfiguración con una matriz vacía de configuraciones. Por ejemplo:  

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

**Example — Reconfigurar y cambiar el tamaño de un grupo de instancias en una sola solicitud**  
En el siguiente ejemplo de JSON se demuestra cómo reconfigurar y cambiar el tamaño de un grupo de instancias en la misma solicitud.  

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

## Reconfiguración de un grupo de instancias con el SDK para Java
<a name="emr-configure-apps-running-cluster-sdk"></a>

**nota**  
En los siguientes ejemplos, *<j-2AL4XXXXXX5T9>* sustitúyala por tu ID de clúster y *<ig-1xxxxxxx9>* sustitúyela por tu ID de grupo de instancias.

El siguiente fragmento de código proporciona una nueva configuración para un grupo de instancias mediante 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);
```

Con el siguiente fragmento de código, se elimina una configuración especificada previamente para un grupo de instancias; para ello, se proporciona una matriz vacía de configuraciones.

```
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);
```

## Solución de problemas de reconfiguración de grupos de instancias
<a name="emr-configure-apps-running-cluster-troubleshoot"></a>

Si se produce un error en el proceso de reconfiguración de un grupo de instancias, Amazon EMR revierte la reconfiguración y registra un mensaje de error mediante un evento de Amazon. CloudWatch El evento proporciona un breve resumen del error de reconfiguración. Enumera las instancias en las que la reconfiguración ha fallado y los mensajes de error correspondientes. A continuación se muestra el ejemplo de un mensaje de error.

```
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 recopilar más datos sobre un error de reconfiguración, puede consultar los registros de aprovisionamiento de nodos. Esto es especialmente útil cuando recibe un mensaje como el siguiente.

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

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

**Para acceder a los registros de aprovisionamiento de nodos al conectarse a un nodo**

1. Use SSH para conectarse al nodo en el que no se pudo realizar la reconfiguración. Para obtener instrucciones, consulte [Conexión con la instancia de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) en la *Guía del usuario de *Amazon EC2* para instancias de Linux*.

1. Navegue hasta el siguiente directorio, que contiene los archivos de registro de aprovisionamiento del nodo.

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

1. Abra el subdirectorio `reports` y busque el informe de aprovisionamiento de nodos para la reconfiguración. El directorio `reports` organiza los registros por número de versión de reconfiguración, identificador único universal (UUID), dirección IP de la instancia de Amazon EC2 y marca de tiempo. Cada informe es un archivo YAML comprimido que contiene información detallada sobre el proceso de reconfiguración.

   A continuación, se muestra un ejemplo del nombre y la ruta de un archivo de informe.

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

1. Puede examinar un informe con un visor de archivos como `zless`, como se muestra en el siguiente ejemplo.

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

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

**Para acceder a los registros de aprovisionamiento de nodos mediante Amazon S3**

1. Inicie sesión en la consola de Amazon S3 Consola de administración de AWS y ábrala en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Abra el bucket de Amazon S3 que ha especificado al configurar el clúster para archivar los archivos de registro.

1. Navegue hasta la siguiente carpeta, que contiene los archivos de registro de aprovisionamiento del nodo:

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

1. Abra la carpeta `reports` y busque el informe de aprovisionamiento de nodos para la reconfiguración. La carpeta `reports` organiza los registros por número de versión de reconfiguración, identificador único universal (UUID), dirección IP de la instancia de Amazon EC2 y marca de tiempo. Cada informe es un archivo YAML comprimido que contiene información detallada sobre el proceso de reconfiguración.

   A continuación, se muestra un ejemplo del nombre y la ruta de un archivo de informe.

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

1. Para ver un archivo de registro, puede descargarlo de Amazon S3 en su máquina local como un archivo de texto. Para obtener instrucciones, consulte [Descarga de un objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html).

------

Cada archivo de registro contiene un informe de aprovisionamiento detallado para la reconfiguración asociada. Para encontrar información sobre los mensajes de error, puede buscar el nivel de registro `err` de un informe. El formato del informe depende de la versión de Amazon EMR del clúster. 

En el siguiente ejemplo se muestra información de error para las versiones de Amazon EMR anteriores a la 5.32.0 y la 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
```

Las versiones 5.32.0, 6.2.0 y posteriores de Amazon EMR utilizan el siguiente formato en su lugar.

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

# Guarde los datos de configuración confidenciales en AWS Secrets Manager
<a name="storing-sensitive-data"></a>

Las operaciones de la API de descripción y lista de Amazon EMR que emiten datos de configuración personalizados (como `DescribeCluster` y`ListInstanceGroups`) lo hacen en texto sin formato. Amazon EMR se integra AWS Secrets Manager para que pueda almacenar sus datos en Secrets Manager y utilizar el ARN secreto en sus configuraciones. De esta forma, no pasa datos de configuración confidenciales a Amazon EMR en texto plano y los expone a fuentes externas. APIs Si indica que un par de clave-valor contiene un ARN para un secreto almacenado en Secrets Manager, Amazon EMR recupera este secreto cuando envía los datos de configuración al clúster. Amazon EMR no envía la anotación cuando usa external APIs para mostrar la configuración.

## Creación de un secreto
<a name="create-secret"></a>

Para crear un secreto, siga los pasos de [Creación de un secreto de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) en *Guía del usuario de AWS Secrets Manager *. En el **Paso 3**, debe elegir el campo **Texto no cifrado** para ingresar su valor confidencial.

Tenga en cuenta que, si bien Secrets Manager permite que un secreto contenga hasta 65536 bytes, Amazon EMR limita la longitud combinada de la clave de propiedad (excluida la anotación) y el valor secreto recuperado a 1024 caracteres.

## Concesión de acceso a Amazon EMR para recuperar el secreto
<a name="grant-access"></a>

Amazon EMR utiliza un rol de servicio de IAM para aprovisionar y gestionar los clústeres por usted. El rol de servicio para Amazon EMR define las acciones permitidas para Amazon EMR al aprovisionar recursos y realizar tareas de nivel de servicio que no se llevan a cabo en el contexto de una instancia de Amazon EC2 que se ejecuta dentro de un clúster. Para obtener más información sobre los roles de servicio, consulte [Rol de servicio para Amazon EMR (rol de EMR)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role.html) y [Personalización de roles de IAM](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-custom.html).

Para permitir que Amazon EMR recupere el valor secreto de Secrets Manager, agregue la siguiente declaración de política a su función de Amazon EMR al lanzar el clúster.

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

Si crea el secreto con un servicio gestionado por el cliente AWS KMS key, también debe añadir `kms:Decrypt` permiso al rol de Amazon EMR para la clave que utilice. Para obtener más información, consulte [Autenticación y control de acceso para AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html) en la *Guía del usuario de AWS Secrets Manager *.

## Uso del secreto en una clasificación de configuración
<a name="config-secret"></a>

Puede agregar la anotación `EMR.secret@` a cualquier propiedad de configuración para indicar que su par de clave-valor contiene un ARN de un secreto almacenado en Secrets Manager.

En el siguiente ejemplo se muestra cómo proporcionar el ARN de un secreto en una clasificación de configuración:

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

Al crear el clúster y enviar la configuración anotada, Amazon EMR valida las propiedades de la configuración. Si su configuración es válida, Amazon EMR elimina la anotación de la configuración y recupera el secreto de Secrets Manager para crear la configuración real antes de aplicarla al clúster:

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

Al llamar a una acción como `DescribeCluster`, Amazon EMR devuelve la configuración de la aplicación actual en el clúster. Si una propiedad de configuración de la aplicación está marcada como que contiene el ARN de un secreto, la configuración de la aplicación devuelta por la llamada a `DescribeCluster` contiene el ARN y no el valor del secreto. Esto garantiza que el valor del secreto solo esté visible en el clúster:

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

## Actualización del valor del secreto
<a name="update-secret"></a>

Amazon EMR recupera el valor del secreto de una configuración anotada cada vez que el grupo de instancias adjunto se inicia, se reconfigura o cambia de tamaño. Puede usar Secrets Manager para modificar el valor de un secreto utilizado en la configuración de un clúster en ejecución. Cuando lo haga, puede enviar una solicitud de reconfiguración a cada grupo de instancias en el que desee recibir el valor actualizado. Para obtener más información sobre cómo reconfigurar un grupo de instancias y los aspectos que debe tener en cuenta al hacerlo, consulte [Reconfiguración de un grupo de instancias en un clúster en ejecución](emr-configure-apps-running-cluster.md).

# Configuración de aplicaciones para utilizar una máquina virtual de Java específica
<a name="configuring-java8"></a>

Las versiones de Amazon EMR tienen diferentes versiones predeterminadas de la máquina virtual Java (JVM). En esta página se explica la compatibilidad de JVM con diferentes versiones y aplicaciones.

## Consideraciones
<a name="configuring-java8-considerations"></a>

Para obtener información sobre las versiones compatibles de Java para aplicaciones, consulte las páginas de las aplicaciones en la [Guía de la versiones de Amazon EMR](emr-release-components.md).
+ 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 en el mismo clúster.
+ En el caso de Amazon EMR 7.x, la máquina virtual Java (JVM) predeterminada es Java 17 para las aplicaciones compatibles con Java 17, con la excepción de Apache Livy. Para obtener información sobre las versiones compatibles del JDK para aplicaciones, consulte la Guía de versiones de Amazon EMR.
+ A partir de Amazon EMR 7.1.0, Flink admite y está configurado en Java 17 de forma predeterminada. Para usar una versión diferente del tiempo 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](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/flink-configure.html#flink-configure-java11).
+ En el caso de las versiones 5.x y 6.x de Amazon EMR, la máquina virtual Java (JVM) predeterminada es Java 8.
  + Para las versiones 6.12.0 y posteriores de Amazon EMR, algunas aplicaciones también son compatibles con Java 11 y 17. 
  + En el caso de las versiones 6.9.0 y posteriores de Amazon EMR, 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](https://trino.io/blog/2022/07/14/trino-updates-to-java-17.html) 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:


**Notas de configuración de Java específicas de aplicaciones**  

| 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 [Anulación de la JVM](#configuring-java8-override). [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/emr/latest/ReleaseGuide/configuring-java8.html) | 
| Spark RAPIDS | Puede ejecutar RAPIDS con la versión de 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 actualizar la JVM para Hadoop, modifique `hadoop-env`. Para ver ejemplos, consulte [Anulación de la JVM](#configuring-java8-override). | 
| Hive | Para establecer la versión de Java en 11 o 17 para Hive, establezca la configuración de la JVM de Hadoop en la versión de Java que desee usar.  | 
| HBase | Para actualizar la JVM, modifique. HBase `hbase-env` De forma predeterminada, Amazon EMR establece la HBase JVM en función de la configuración de la JVM de Hadoop, a menos que anule la configuración de. `hbase-env` Para ver ejemplos, consulte [Anulación de la JVM](#configuring-java8-override). | 
| Flink | Para actualizar la JVM para Flink, modifique `flink-conf`. De forma predeterminada, Amazon EMR establece la JVM para Flink en función de la configuración de la JVM para Hadoop, a menos que anule la configuración de `flink-conf`. Para obtener más información, consulte [Configuración de Flink para que se ejecute con Java 11](flink-configure.md#flink-configure-java11). | 
| 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 `EmbeddedOozieServer` para que se ejecute en Java 17. Para obtener más información, consulte [Configurar la versión Java para Oozie](oozie-java.md). | 
| 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. | 

## Anulación de la JVM
<a name="configuring-java8-override"></a>

A fin de anular la configuración de la JVM para una versión de Amazon EMR (por ejemplo, para usar Java 17 con un clúster que utilice la versión 6.12.0 de Amazon EMR), ingrese la configuración `JAVA_HOME` en su clasificación de entorno, que es `application-env` para todas las aplicaciones excepto Flink. En el caso de Flink, la clasificación de entorno es `flink-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](flink-configure.md#flink-configure-java11).

**Topics**
+ [

### Anulación de la configuración de la JVM con Apache Spark
](#configuring-java8-override-spark)
+ [

### Anule la configuración de la JVM con Apache HBase
](#configuring-java8-override-hbase)
+ [

### Anulación de la configuración de la JVM con Apache Hadoop y Hive
](#configuring-java8-override-hadoop)

### Anulación de la configuración de la JVM con Apache Spark
<a name="configuring-java8-override-spark"></a>

Cuando usa Spark con las versiones 6.12 y posteriores de Amazon EMR, puede configurar el entorno para que los ejecutores usen Java 11 o 17. Y cuando utiliza Spark con versiones de Amazon EMR anteriores a 5.x y escribe un controlador para enviarlo en modo clúster, el controlador utiliza Java 7. Sin embargo, defina el entorno para asegurarse de que los ejecutores utilizan Java 8.

Para anular la JVM para Spark, configure el ajuste de clasificación de Spark. En este ejemplo, la versión de Java para Hadoop es la misma, pero no es obligatoria.

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

Tenga en cuenta que una práctica recomendada para Hadoop en Amazon EMR es que la versión de JVM sea coherente en todos los componentes de Hadoop.

 El siguiente ejemplo muestra cómo añadir los parámetros de configuración necesarios para EMR 7.0.0\$1 a fin de garantizar el uso de una versión coherente de Java en todos los 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": {}
  }
]
```

### Anule la configuración de la JVM con Apache HBase
<a name="configuring-java8-override-hbase"></a>

 HBase Para configurar el uso de Java 11, puede establecer la siguiente configuración al lanzar el clúster.

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

### Anulación de la configuración de la JVM con Apache Hadoop y Hive
<a name="configuring-java8-override-hadoop"></a>

En el siguiente ejemplo se muestra cómo configurar la JVM en la versión 17 para Hadoop y Hive.

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

## Puertos de servicio
<a name="configuring-java8-service-ports"></a>

A continuación se indican los puertos de servicio de YARN y 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.


**Configuración de puertos para YARN y HDFS**  

| Opción | Nombre de host/puerto | 
| --- | --- | 
| `fs.default.name` | predeterminado (`hdfs://emrDeterminedIP:8020`) | 
| `dfs.datanode.address` | predeterminado (`0.0.0.0:50010`) | 
| `dfs.datanode.http.address` | predeterminado (`0.0.0.0:50075`) | 
| `dfs.datanode.https.address` | predeterminado (`0.0.0.0:50475`) | 
| `dfs.datanode.ipc.address` | predeterminado (`0.0.0.0:50020`) | 
| `dfs.http.address` | predeterminado (`0.0.0.0:50070`) | 
| `dfs.https.address` | predeterminado (`0.0.0.0:50470`) | 
| `dfs.secondary.http.address` | predeterminado (`0.0.0.0:50090`) | 
| `yarn.nodemanager.address` | predeterminado (`${yarn.nodemanager.hostname}:0`) | 
| `yarn.nodemanager.localizer.address` | predeterminado (`${yarn.nodemanager.hostname}:8040`) | 
| `yarn.nodemanager.webapp.address` | predeterminado (`${yarn.nodemanager.hostname}:8042`) | 
| `yarn.resourcemanager.address` | predeterminado (`${yarn.resourcemanager.hostname}:8032`) | 
| `yarn.resourcemanager.admin.address` | predeterminado (`${yarn.resourcemanager.hostname}:8033`) | 
| `yarn.resourcemanager.resource-tracker.address` | predeterminado (`${yarn.resourcemanager.hostname}:8031`) | 
| `yarn.resourcemanager.scheduler.address` | predeterminado (`${yarn.resourcemanager.hostname}:8030`) | 
| `yarn.resourcemanager.webapp.address` | predeterminado (`${yarn.resourcemanager.hostname}:8088`) | 
| `yarn.web-proxy.address` | predeterminado (`no-value`) | 
| `yarn.resourcemanager.hostname` | `emrDeterminedIP` | 

**nota**  
El término *emrDeterminedIP* es una dirección IP generada por el plano de control de Amazon EMR. 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
<a name="configuring-java8-application-users"></a>

Las aplicaciones ejecutarán procesos como su propio usuario. Por ejemplo, Hive JVMs se ejecuta como usuario`hive`, MapReduce JVMs se ejecuta como`mapred`, 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
```