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
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.
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
- 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.
nota
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.
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.
nota
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
entrue
en su clasificación de configuraciónyarn-site
. Para obtener más información sobre el uso de varios nodos maestros, consulte YARN de alta disponibilidad. ResourceManager - 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.
nota
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.
nota
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 estadoSUSPENDED
. -
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
nota
La consola de Amazon EMR no admite reconfiguraciones de tipo Merge.
-
Abra la consola Amazon EMR en /emr https://console.aws.amazon.com
-
En la lista de clústeres llamada Nombre, seleccione el clúster activo que desea volver a configurar.
-
Abra la página de detalles del clúster y vaya a la pestaña Configuraciones.
-
En la lista desplegable Filter, seleccione el grupo de instancias que desea volver a configurar.
-
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
adicionaleshadoop-env
, añada una clasificación de configuraciónhadoop.export
a la tabla. A continuación, proporcione una propiedad específica y el valor de esta clasificación. -
-
(Opcional) Seleccione Apply this configuration to all active instance groups (Aplicar esta configuración a todos los grupos de instancias activas).
-
Guarde los cambios.
Reconfiguración de un grupo de instancias con la CLI
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.
ejemplo – 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.
-
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":[] } ] } ] -
Ejecute el siguiente comando.
aws emr modify-instance-groups --cluster-id
<j-2AL4XXXXXX5T9>
\ --instance-groups file://instanceGroups.json
ejemplo – 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.
-
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":[] } ] } ] -
Ejecute el siguiente comando.
aws emr modify-instance-groups --cluster-id
<j-2AL4XXXXXX5T9>
\ --instance-groups file://instanceGroups.json
ejemplo – 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.
En el siguiente ejemplo, se 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.
-
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":[] } ] } ] -
Ejecute el siguiente comando.
aws emr modify-instance-groups --cluster-id
<j-2AL4XXXXXX5T9>
\ --instance-groups file://instanceGroups.json
ejemplo – 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.
nota
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":[] } ] } ]
nota
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":[] } ]
ejemplo — 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
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 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 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
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 clusterj-2AL4XXXXXX5T9
(ExampleClusterName) failed at 2021-01-01 00:00 UTC and took 2 minutes to fail. Failed configuration version isexample12345
. Failure message: Instancei-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.”
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: