Reconfiguración de flotas de instancias en su clúster de Amazon EMR - Amazon EMR

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 flotas de instancias en su clúster de Amazon EMR

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 flota de instancias en un clúster en ejecución. Para ello, puede utilizar la interfaz de línea de AWS comandos (AWS CLI) o el AWS SDK.

Puede realizar un seguimiento del estado de una flota de instancias mediante la visualización de los CloudWatch eventos. Para obtener más información, consulte Instance fleet reconfiguration events.

nota

Solo puede reemplazar el objeto Configurations del clúster definido durante la creación del clúster. Para obtener más información sobre los objetos de configuración, consulta la sintaxis de la RunJobFlow solicitud. 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 la flota de instancias especificada.

Cuando envía una solicitud de reconfiguración mediante la consola de Amazon EMR, AWS la interfaz de línea de comandos 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 la flota de instancias especificada.

Comportamientos de la reconfiguración

La reconfiguración reemplaza la configuración del clúster con el conjunto de configuraciones que usted envía y puede reemplazar cambios aplicados fuera de la API de reconfiguración.

Amazon EMR aplica un proceso gradual para reconfigurar las instancias de las flotas de instancias Task y Core. Solo modifica y reinicia un porcentaje de las instancias de un mismo tipo de instancia en cada etapa. Si su flota de instancias incluye varios tipos de instancias, Amazon EMR reconfigura todos los tipos en paralelo.

Las reconfiguraciones se declaran en el nivel. InstanceTypeConfig Para ver un ejemplo gráfico, consulte Reconfigurar una flota de instancias. Puede enviar una solicitud de reconfiguración que incluya ajustes de configuración actualizados para uno o varios tipos de instancias dentro de una sola solicitud. Debe incluir todos los tipos de instancia que formen parte de la flota en la solicitud de modificación; sin embargo, solo los tipos de instancia con campos de configuración completados se reconfiguran, mientras que las demás instancias de InstanceTypeConfig de la flota permanecen sin cambios. Una reconfiguración se considera correcta únicamente cuando todas las instancias de los tipos de instancia especificados completan la reconfiguración. Si alguna instancia no logra reconfigurarse, la flota de instancias completa vuelve automáticamente a su última configuración estable conocida.

Limitaciones

Cuando vuelva a configurar una flota 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 importante en la flota de instancias de nodos principales. Consulte la sección Resolver problemas de reconfiguración de flotas de instancias.

  • Las operaciones de cambio de tamaño y de reconfiguración no ocurren en paralelo. Una solicitud de reconfiguración espera a que finalice un cambio de tamaño en curso, mientras que un cambio de tamaño espera a que finalice una reconfiguración en curso.

  • Las operaciones de cambio de tamaño y de reconfiguración no ocurren en paralelo. Una solicitud de reconfiguración espera a que finalice un cambio de tamaño en curso, mientras que un cambio de tamaño espera a que finalice una reconfiguración en curso.

  • Después de reconfigurar una flota de instancias, Amazon EMR reinicia las aplicaciones para que los nuevos ajustes entren en vigor. 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 la reconfiguración de algún tipo de instancia dentro de una flota de instancias falla, Amazon EMR restaura los parámetros de configuración a la versión anterior funcional para toda la flota de instancias y, además, emite eventos y actualiza los detalles del estado. Si el proceso de reversión también da error, debe enviar una nueva solicitud de ModifyInstanceFleet para recuperar la flota de instancias desde el estado ARRESTED. Los fallos en la restauración generan eventos de reconfiguración de flotas de instancias y un cambio de estado.

  • 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.

  • 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 para el programador de capacidad de YARN que requieren reiniciar el YARN. ResourceManager Por ejemplo, no puede eliminar por completo una cola.

  • Cuando YARN necesita reiniciarse, normalmente todos los trabajos de YARN en ejecución finalizan y se pierden, lo que puede causar demoras en el procesamiento de datos. Para ejecutar trabajos de YARN durante un reinicio de YARN, usted puede crear un clúster de Amazon EMR con varios nodos principales o establecer yarn.resourcemanager.recovery.enabled en true dentro de la 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

Reconfigurar una flota de instancias

Using the AWS CLI

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

nota

En los siguientes ejemplos, reemplaza j-2 AL4 XXXXXX5 T9 por tu ID de clúster y reemplaza if-1xxxxxxx9 por tu ID de flota de instancias.

Ejemplo: reemplazar una configuración de una flota de instancia

aviso

Indique todos los campos InstanceTypeConfig que utilizó al crear el clúster. Si omite algún campo, podría sobrescribir parámetros que definió al inicio. Consulte para obtener una lista. InstanceTypeConfig

En el siguiente ejemplo, se hace referencia a un archivo JSON de configuración denominado InstanceFleet.json para editar la propiedad del comprobador de estado del NodeManager disco YARN para una flota de instancias.

JSON de modificación de flota de instancias

  1. Prepare la clasificación de su configuración y guárdela como instanceFleet.json en el mismo directorio donde ejecutará el comando.

    { "InstanceFleetId":"if-1xxxxxxx9", "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", other InstanceTypeConfig fields "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" } } ] }, { "InstanceType": "r5.xlarge", other InstanceTypeConfig fields "Configurations": [ { "Classification": "yarn-site", "Properties": { "yarn.nodemanager.disk-health-checker.enable":"false", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"70.0" } } ] } ]
  2. Ejecute el comando siguiente.

    aws emr modify-instance-fleet \ --cluster-id j-2AL4XXXXXX5T9 \ --region us-west-2 \ --instance-fleet instanceFleet.json

Ejemplo: agregar una configuración a una flota de instancias

Si desea agregar una configuración a un tipo de instancia, incluya todas las configuraciones previamente definidas para ese tipo de instancia dentro de su nueva solicitud de ModifyInstanceFleet. De lo contrario, las configuraciones antes especificadas se eliminan.

En el siguiente ejemplo, se agrega una propiedad para el comprobador de memoria virtual YARN. NodeManager 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 el siguiente contenido en instanceFleet.json y guárdelo en el mismo directorio donde ejecutará el comando.

    { "InstanceFleetId":"if-1xxxxxxx9", "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", other InstanceTypeConfig fields "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" } } ] }, { "InstanceType": "r5.xlarge", other InstanceTypeConfig fields "Configurations": [ { "Classification": "yarn-site", "Properties": { "yarn.nodemanager.disk-health-checker.enable":"false", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"70.0" } } ] } ] }
  2. Ejecute el comando siguiente.

    aws emr modify-instance-fleet \ --cluster-id j-2AL4XXXXXX5T9 \ --region us-west-2 \ --instance-fleet instanceFleet.json
using the Java SDK
nota

En los siguientes ejemplos, reemplaza j-2 AL4 XXXXXX5 T9 por tu ID de clúster y reemplaza if-1xxxxxxx9 por tu ID de flota de instancias.

El siguiente fragmento de código proporciona una nueva configuración para una flota de instancias mediante el AWS SDK for 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 newConfiguration = new Configuration() .withClassification("hive-site") .withProperties(hiveProperties); List<InstanceTypeConfig> instanceTypeConfigList = new ArrayList<>(); for (InstanceTypeConfig instanceTypeConfig : currentInstanceTypeConfigList) { instanceTypeConfigList.add(new InstanceTypeConfig() .withInstanceType(instanceTypeConfig.getInstanceType()) .withBidPrice(instanceTypeConfig.getBidPrice()) .withWeightedCapacity(instanceTypeConfig.getWeightedCapacity()) .withConfigurations(newConfiguration) ); } InstanceFleetModifyConfig instanceFleetModifyConfig = new InstanceFleetModifyConfig() .withInstanceFleetId("if-1xxxxxxx9") .withInstanceTypeConfigs(instanceTypeConfigList); ModifyInstanceFleetRequest modifyInstanceFleetRequest = new ModifyInstanceFleetRequest() .withInstanceFleet(instanceFleetModifyConfig) .withClusterId("j-2AL4XXXXXX5T9"); emrClient.modifyInstanceFleet(modifyInstanceFleetRequest);

Resolver problemas de reconfiguración de flotas de instancias

Si se produce un error en el proceso de reconfiguración de cualquier tipo de instancia de una flota de instancias, Amazon EMR revierte la reconfiguración en curso y registra un mensaje de error mediante un evento de eventos. AAmazon 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.

Amazon EMR couldn't revert the instance fleet if-1xxxxxxx9 in the Amazon EMR cluster j-2AL4XXXXXX5T9 (ExampleClusterName) to the previously successful configuration at 2021-01-01 00:00 UTC. The reconfiguration reversion failed because of Instance i-xxxxxxx1, i-xxxxxxx2, i-xxxxxxx3 failed with message "This is an example failure message"...

Acceder a los logs de aprovisionamiento de nodos

Use SSH para conectarse al nodo en el que no se pudo realizar la reconfiguración. Para obtener instrucciones, consulte Conexión a la instancia de Linux en Amazon Elastic Compute Cloud.

Accessing logs by connecting to a node
  1. Navegue hasta el siguiente directorio, que contiene los archivos de registro de aprovisionamiento del nodo.

    /mnt/var/log/provision-node/
  2. Abra el subdirectorio de informes y busque el informe de aprovisionamiento del nodo correspondiente a su reconfiguración. El directorio de informes organiza los registros por número de versión de reconfiguración, identificador único universal (UUID), dirección IP de la EC2 instancia de Amazon 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
  3. Puede examinar un informe con un visor de archivos como zless, tal como se muestra en el siguiente ejemplo.

    zless 202104061715.yaml.gz
Accessing logs using Amazon S3

Inicie sesión en la consola de Amazon S3 Consola de administración de AWS y ábrala en https://console.aws.amazon.com/s3/. 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/
  2. Abra la carpeta de informes y busque el informe de aprovisionamiento del nodo correspondiente a su reconfiguración. La carpeta de informes organiza los registros por número de versión de reconfiguración, identificador único universal (UUID), dirección IP de la EC2 instancia de Amazon 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

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.

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. El siguiente ejemplo muestra información de error para Amazon EMR en las versiones 5.32.0 y 6.2.0 y posteriores, que utilizan el siguiente formato:

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