

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.

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