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 tipos de instancias de clúster de Amazon EMR y prácticas recomendadas para instancias de Spot
Utilice la orientación de esta sección como ayuda para determinar los tipos de instancias, las opciones de compra y la cantidad de almacenamiento para aprovisionar cada tipo de nodo en un clúster de EMR.
¿Qué tipo de instancia debería utilizar?
Hay varias formas de añadir EC2 instancias de Amazon a un clúster. El método que debe elegir depende de si utiliza la configuración de grupos de instancias o la configuración de flotas de instancias para el clúster.
-
Grupos de instancias
-
Añada manualmente instancias del mismo tipo a los grupos de instancias de tareas y secundarias existentes.
-
Añada manualmente un grupo de instancias de tareas, que pueden utilizar un tipo de instancia diferente.
-
Configura el escalado automático en Amazon EMR para un grupo de instancias, añadiendo y eliminando instancias automáticamente en función del valor de una CloudWatch métrica de Amazon que especifiques. Para obtener más información, consulte Utilice el escalado de clústeres de Amazon EMR para adaptarse a las cargas de trabajo cambiantes.
-
-
Flotas de instancias
-
Añadir una única flota de instancias de tarea.
-
Cambiar la capacidad de destino de las instancias bajo demanda y de spot para las flotas de instancias secundarias y de tareas. Para obtener más información, consulte Planificación y configuración de flotas de instancias para su clúster de Amazon EMR.
-
Una forma de planificar las instancias del clúster consiste en ejecutar un clúster de prueba con un conjunto representativo de datos de ejemplo y monitorizar la utilización de los nodos del clúster. Para obtener más información, consulte Visualización y monitorización de un clúster de Amazon EMR a medida que realiza su trabajo. Otra forma consiste en calcular la capacidad de las instancias que se estén planeando y comparar dicho valor con el tamaño de los datos.
En general, el tipo de nodo principal, que asigna tareas, no requiere una EC2 instancia con mucha potencia de procesamiento; las EC2 instancias de Amazon para el tipo de nodo principal, que procesan tareas y almacenan datos en HDFS, necesitan potencia de procesamiento y capacidad de almacenamiento; las EC2 instancias de Amazon para el tipo de nodo de tarea, que no almacenan datos, solo necesitan potencia de procesamiento. Para obtener instrucciones sobre las EC2 instancias de Amazon disponibles y su configuración, consulteConfigurar los tipos de EC2 instancias de Amazon para utilizarlos con Amazon EMR.
Las siguientes directrices se aplican a la mayoría de los clústeres de Amazon EMR.
-
Hay un límite de vCPU para el número total de EC2 instancias de Amazon bajo demanda que ejecutes en una AWS cuenta por cuenta. Región de AWS Para obtener más información sobre el límite de vCPU y cómo solicitar un aumento del límite para su cuenta, consulte On-Demand Instances en la Guía EC2 del usuario de Amazon para instancias de Linux.
-
Generalmente, el nodo principal no tiene grandes requisitos informáticos. Para los clústeres con una gran cantidad de nodos o para los clústeres con aplicaciones que se implementan específicamente en el nodo principal (HueJupyterHub, etc.), es posible que se requiera un nodo principal más grande que ayude a mejorar el rendimiento del clúster. Por ejemplo, considere la posibilidad de utilizar una instancia m5.xlarge para clústeres pequeños (50 nodos o menos) y aumentarla a un tipo de instancia más grande para clústeres más grandes.
-
Las necesidades informáticas de los nodos secundarios y de tareas dependen del tipo de procesamiento que realiza la aplicación. Muchos trabajos se pueden ejecutar en tipos de instancia de uso general, que ofrecen un rendimiento equilibrado en términos de CPU, espacio en disco y entrada/salida. Los clústeres con cálculo intensivo podrían beneficiarse de ejecutarse en instancias de uso elevado de CPU, que tienen en proporción más CPU que RAM. Las aplicaciones de base de datos y almacenamiento en memoria caché podrían beneficiarse al ejecutarse en instancias de memoria elevada. Las aplicaciones con uso intensivo de red y uso intensivo de CPU como análisis, NLP y machine learning pueden beneficiarse de las instancias de computación en clúster, que ofrecen proporcionalmente recursos de CPU elevada y mayor rendimiento de red.
-
Si distintas fases del clúster tienen diferentes necesidades de capacidad, puede empezar con un pequeño número de nodos secundarios y aumentar o reducir el número de nodos de tareas para satisfacer los requisitos de capacidad variable del flujo de trabajo.
-
La cantidad de datos que puede procesar depende de la capacidad de los nodos secundarios y del tamaño de los datos como entrada, durante el procesamiento y como salida. Los conjuntos de datos entrantes, intermedios y salientes residen en el clúster durante el procesamiento.
¿Cuándo se deben utilizar las instancias de spot?
Al lanzar un clúster en Amazon EMR, puede elegir lanzar instancias principales, básicas y de tarea en instancias de spot. Dado que cada tipo de grupo de instancias desempeña un papel diferente en el clúster, hay distintas consecuencias al lanzar cada tipo de nodo en instancias de spot. No se puede cambiar una opción de compra de instancias mientras se ejecuta un clúster. Para cambiar de instancias bajo demanda a instancias de spot o viceversa para el nodo principal y los nodos básicos, debe terminar el clúster y lanzar uno nuevo. Para los nodos de tareas, puede lanzar un nuevo grupo de instancias de tareas o una nueva flota de instancias y eliminar la anterior.
Configuración de Amazon EMR para evitar errores en los trabajos debido a la terminación de instancias de spot de los nodos de tarea
Dado que las instancias de spot se utilizan a menudo para ejecutar nodos de tarea, Amazon EMR tiene una funcionalidad predeterminada para programar trabajos de YARN, de modo que los trabajos en ejecución no presenten errores cuando los nodos de tarea que se ejecutan en las instancias de spot se terminen. Para ello, Amazon EMR permite que los procesos maestros de la aplicación se ejecuten únicamente en los nodos principales. El proceso maestro de la aplicación controla los trabajos en ejecución y debe mantenerse activo durante toda la vida del trabajo.
La versión 5.19.0 y posteriores de Amazon EMR utilizan la característica integrada de etiquetas de nodo YARNyarn-site
y capacity-scheduler
se ajustan de forma predeterminada para que capacity-scheduler y fair-scheduler de YARN utilicen las etiquetas de nodo. Amazon EMR etiqueta automáticamente los nodos principales con la etiqueta CORE
y establece las propiedades para que los maestros de la aplicación se programen únicamente en los nodos con la etiqueta CORE. La modificación manual de las propiedades relacionadas en las clasificaciones de configuración yarn-site y capacity-scheduler o directamente en los archivos XML asociados podría interrumpir esta característica o modificar esta funcionalidad.
Amazon EMR configura las siguientes propiedades y valores de forma predeterminada. Actúe con precaución al configurar estas propiedades.
nota
A partir de la serie de versiones 6.x de Amazon EMR, la característica de etiquetas de nodo YARN está desactivada de forma predeterminada. De forma predeterminada, los procesos principales de la aplicación se pueden ejecutar tanto en nodos básicos como en nodos de tarea. Puede habilitar la función de etiquetas de nodo YARN configurando las siguientes propiedades:
-
yarn.node-labels.enabled: true
-
yarn.node-labels.am.default-node-label-expression: 'CORE'
-
yarn-site (yarn-site.xml) en todos los nodos
-
yarn.node-labels.enabled: true
-
yarn.node-labels.am.default-node-label-expression: 'CORE'
-
yarn.node-labels.fs-store.root-dir: '/apps/yarn/nodelabels'
-
yarn.node-labels.configuration-type: 'distributed'
-
-
yarn-site (yarn-site.xml) en los nodos principal y básicos
-
yarn.nodemanager.node-labels.provider: 'config'
-
yarn.nodemanager.node-labels.provider.configured-node-partition: 'CORE'
-
-
capacity-scheduler (capacity-scheduler.xml) en todos los nodos
-
yarn.scheduler.capacity.root.accessible-node-labels: '*'
-
yarn.scheduler.capacity.root.accessible-node-labels.CORE.capacity: 100
-
yarn.scheduler.capacity.root.default.accessible-node-labels: '*'
-
yarn.scheduler.capacity.root.default.accessible-node-labels.CORE.capacity: 100
-
Nodo principal en una instancia de spot
El nodo principal controla y dirige el clúster. Cuando se termina, el clúster finaliza, por lo que solo debe lanzar el nodo principal como una instancia de spot si está ejecutando un clúster que se acepta que termine de forma repentina. Podría ser el caso si está probando una aplicación nueva, tiene un clúster que guarda periódicamente datos en un almacén externo como Amazon S3 o está ejecutando un clúster donde el costo es más importante que garantizar que este se complete.
Cuando se lanza el grupo de instancias principales como instancia de spot, el clúster no se inicia hasta que se completa la solicitud de instancia de spot. Esto es algo que debe considerar a la hora de seleccionar el precio de spot máximo.
Solo puede agregar un nodo principal de instancias de spot al lanzar el clúster. No se puede agregar ni eliminar nodos principales de un clúster en ejecución.
Normalmente, solo se ejecutaría el nodo principal como instancia de spot si se ejecuta todo el clúster (todos los grupos de instancia) como instancias de spot.
Nodos básicos en instancias de spot
Los nodos secundarios procesan los datos y almacenan información mediante HDFS. La terminación de una instancia secundaria conlleva el riesgo de pérdida de datos. Por este motivo, solo debe ejecutar los nodos secundarios en instancias de spot cuando sea admisible la pérdida parcial de datos de HDFS.
Cuando se lanza el grupo de instancias básicas como instancias de spot, Amazon EMR espera hasta que se puedan aprovisionar todas las instancias básicas solicitadas antes de lanzar el grupo de instancias. En otras palabras, si solicitas seis EC2 instancias de Amazon y solo hay cinco disponibles al precio de subasta máximo o inferior, el grupo de instancias no se lanzará. Amazon EMR seguirá esperando hasta que las seis EC2 instancias de Amazon estén disponibles o hasta que cancele el clúster. Puede cambiar el número de instancias de spot de un grupo de instancias secundario para añadir capacidad a un clúster en ejecución. Para obtener más información sobre cómo trabajar con los grupos de instancias y cómo funcionan las instancias de spot con las flotas de instancias, consulte Creación de un clúster de Amazon EMR con flotas de instancias o grupos de instancias uniformes.
Nodos de tarea en instancias de spot
Los nodos de tareas procesan datos pero no guardan datos persistentes en HDFS. Si se terminan porque el precio de spot ha superado su precio de spot máximo, no se pierden los datos y el efecto sobre el clúster es mínimo.
Al lanzar uno o varios grupos de instancias de tarea como instancias de spot, Amazon EMR aprovisiona tantos nodos de tarea como puede con su precio de spot máximo. Esto significa que, si solicita un grupo de instancias de tarea con seis nodos y solo hay cinco instancias de spot disponibles a su precio de spot máximo o por debajo de este, Amazon EMR lanza el grupo de instancias con cinco nodos y agrega el sexto más tarde, si es posible.
El lanzamiento de grupos de instancias de tareas como instancias de spot es una forma estratégica de ampliar la capacidad del clúster minimizando los costos. Si lanza los grupos de instancias principales y básicas como instancias bajo demanda, su capacidad está garantizada para la ejecución del clúster. Puede añadir instancias de tarea a los grupos de instancias de tarea según sea necesario para gestionar los picos de tráfico o acelerar el procesamiento de datos.
Puede añadir o eliminar nodos de tareas mediante la consola o AWS CLI la API. También puede añadir grupos de tareas adicionales, pero no puede quitar un grupo de tareas después de haberlo creado.
Configuraciones de instancias para escenarios de aplicaciones
La siguiente tabla es una referencia rápida para las opciones de compra de tipos de nodos y las configuraciones que suelen ser adecuadas para los distintos escenarios de aplicaciones. Haga clic en el enlace correspondiente para ver más información sobre cada escenario.
Escenario de aplicaciones | Opción de compra del nodo principal | Opción de compra de los nodos básicos | Opción de compra de nodos de tarea |
---|---|---|---|
Clústeres en ejecución prolongada y almacenamientos de datos | Bajo demanda | Bajo demanda o combinación de flotas de instancias | Spot o combinación de flotas de instancias |
Cargas de trabajo dirigidas por costos | Spot | Spot | Spot |
Cargas de trabajo críticas para datos | Bajo demanda | Bajo demanda | Spot o combinación de flotas de instancias |
Prueba de aplicación | Spot | Spot | Spot |
Existen varios escenarios en las que las instancias de spot son útiles para ejecutar un clúster de Amazon EMR.
Clústeres en ejecución prolongada y almacenamientos de datos
Si ejecuta un clúster de Amazon EMR persistente que tiene una variación predecible de capacidad informática, como un almacenamiento de datos, puede gestionar los picos de demanda a menor costo con las instancias de spot. Puede lanzar los grupos de instancias principales y básicas como instancias bajo demanda para gestionar la capacidad normal y lanzar los grupos de instancias de tarea como instancias de spot para gestionar los requisitos de picos de carga.
Cargas de trabajo dirigidas por costos
Si está ejecutando clústeres transitorios para los que un costo inferior es más importante que el tiempo de finalización y es aceptable la pérdida parcial de trabajo, puede ejecutar todo el clúster (grupos de instancias principales, básicas y de tarea) como instancias de spot para beneficiarse de los mayores ahorros de costos.
Cargas de trabajo críticas para datos
Si está ejecutando un clúster para el que un costo inferior es más importante que el tiempo de finalización, pero no es aceptable la pérdida parcial de trabajo, lance los grupos de instancias principales y básicas como instancias bajo demanda y compleméntelas con uno o varios grupos de instancias de tarea de instancias de spot. La ejecución de los grupos de instancias principales y básicas como instancias bajo demanda garantiza que los datos se almacenen en HDFS y que el clúster se proteja de la terminación debido a fluctuaciones en el mercado de spot, además de proporcionar un ahorro de costos que supone la ejecución de los grupos de instancias de tarea como instancias de spot.
Prueba de aplicación
Cuando se prueba una nueva aplicación para prepararla para su lanzamiento en un entorno de producción, se puede ejecutar todo el clúster (grupos de instancias principales, básicas y de tarea) como instancias de spot para reducir los costos de las pruebas.
Cálculo de la capacidad de HDFS requerida de un clúster
La cantidad de almacenamiento HDFS disponible para su clúster depende de los siguientes factores:
-
El número de EC2 instancias de Amazon utilizadas para los nodos principales.
-
La capacidad del almacén de EC2 instancias de Amazon para el tipo de instancia utilizado. Para obtener más información sobre los volúmenes de los almacenes de instancias, consulta Amazon EC2 Instance Store en la Guía del EC2 usuario de Amazon.
-
El número y el tamaño de los volúmenes de Amazon EBS asociados a los nodos básicos.
-
Un factor de replicación, que tiene en cuenta la cantidad de bloques de datos que se almacenan en HDFS para redundancia similar a RAID. De forma predeterminada, el factor de replicación es tres para un clúster de 10 o más nodos secundarios, dos para un clúster de 4-9 nodos secundarios y uno para un clúster de 3 nodos o menos.
Para calcular la capacidad de HDFS de un clúster, por cada nodo principal, agregue la capacidad del volumen del almacén de instancias a la capacidad de almacenamiento de Amazon EBS (si se utiliza). Multiplique el resultado por el número de nodos secundarios y, a continuación, divida el total por el factor de replicación que depende del número de nodos secundarios. Por ejemplo, un clúster con 10 nodos básicos de tipo i2.xlarge, que tiene 800 GB de almacenamiento de instancias y no tiene ningún volumen de Amazon EBS asociado, tiene un total de aproximadamente 2666 GB disponibles para HDFS (10 nodos x 800 GB ÷ 3 de factor de replicación).
Si el valor de capacidad de HDFS calculado es inferior a sus datos, puede aumentar la cantidad de almacenamiento de HDFS de las siguientes formas:
-
Creación de un clúster con volúmenes de Amazon EBS adicionales o adición de grupos de instancias con volúmenes de Amazon EBS asociados a un clúster existente
-
Agregar más nodos secundarios
-
Elegir un tipo de EC2 instancia de Amazon con mayor capacidad de almacenamiento
-
Uso de la compresión de datos
-
Cambio de la configuración de Hadoop para reducir el factor de replicación
La reducción del factor de replicación se debería utilizar con precaución, ya que reduce la redundancia de los datos de HDFS y la capacidad del clúster de recuperarse frente a bloques de HDFS perdidos o dañados.