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 los tipos de instancias en clúster y las mejores prácticas para las instancias puntuales
Usa las instrucciones de esta sección para ayudarte a determinar los tipos de instancias, las opciones de compra y la cantidad de almacenamiento que deseas aprovisionar para cada tipo de nodo de un EMR clúster.
¿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 EMR clústeres de Amazon 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 Planifica y configura las flotas de instancias para tu clúster.
-
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 Ver y monitorizar un EMR clúster de Amazon 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 datosHDFS, 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 pautas 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 pautas se aplican a la mayoría de los EMR clústeres de Amazon.
-
Hay un CPU límite v para el número total de EC2 instancias de Amazon bajo demanda que ejecutes en un AWS cuenta por Región de AWS. Para obtener más información sobre el CPU límite v y cómo solicitar un aumento del límite para su cuenta, consulte On-Demand Instances en la Guía del EC2 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 instancias de uso general, que ofrecen un rendimiento equilibrado en términos de CPU espacio en disco y entrada/salida. Los clústeres que hacen un uso intensivo de la computación pueden beneficiarse de la ejecución en CPU instancias High, que tienen proporcionalmente más de. CPU 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 la red y el CPU uso intensivo de la red, como el análisis y el aprendizaje automáticoNLP, pueden beneficiarse de la ejecución en instancias informáticas en clúster, que proporcionan recursos proporcionalmente altos y un mayor rendimiento de la red. CPU
-
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 AmazonEMR, puede elegir lanzar instancias principales, principales o de tareas en instancias puntuales. 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.
Temas
EMRConfiguración de Amazon para evitar un error en el trabajo debido a la finalización de la instancia puntual del nodo de tarea
Dado que las instancias puntuales se utilizan con frecuencia para ejecutar nodos de tareas, Amazon EMR tiene una funcionalidad predeterminada para programar los YARN trabajos, de modo que los trabajos en ejecución no fallen cuando se cierren los nodos de tareas que se ejecutan en las instancias puntuales. Amazon lo EMR hace al permitir que los procesos maestros de la aplicación se ejecuten solo 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.
Para ello, la EMR versión 5.19.0 y las posteriores de Amazon utilizan la función integrada de etiquetas de YARN nodosyarn-site
y de capacity-scheduler
configuración están configuradas de forma predeterminada para que el programador de capacidad y el YARN planificador justo aprovechen las etiquetas de los nodos. Amazon etiqueta EMR automáticamente los nodos principales con la CORE
etiqueta y establece las propiedades para que los maestros de aplicaciones se programen solo en los nodos con la CORE etiqueta. La modificación manual de las propiedades relacionadas en las clasificaciones de configuración de yarn-site y capacity scheduler, o directamente en XML los archivos asociados, podría interrumpir esta función o modificarla.
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 EMR 6.x de Amazon, la función de etiquetas de YARN nodos está deshabilitada 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 activar la función de etiquetas de YARN nodos 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 principales procesan datos y almacenan información medianteHDFS. La terminación de una instancia secundaria conlleva el riesgo de pérdida de datos. Por este motivo, solo debe ejecutar los nodos principales en instancias puntuales cuando sea tolerable una pérdida parcial de HDFS datos.
Cuando lanzas el grupo de instancias principal como instancias puntuales, Amazon EMR espera a poder aprovisionar todas las instancias principales 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 canceles 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 Crear un clúster con flotas de instancias o grupos de instancias uniformes.
Nodos de tarea en instancias de spot
Los nodos de tareas procesan los datos, pero no almacenan los datos persistentesHDFS. 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.
Cuando lanzas uno o más grupos de instancias de tareas como instancias puntuales, Amazon EMR aprovisiona tantos nodos de tareas como puede, utilizando tu precio puntual máximo. Esto significa que si solicitas un grupo de instancias de tareas con seis nodos y solo hay cinco instancias puntuales disponibles al precio de subasta máximo o inferior, Amazon EMR lanza el grupo de instancias con cinco nodos y, si es posible, añadirá el sexto más adelante.
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, AWS CLI, oAPI. 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 los que las instancias puntuales son útiles para ejecutar un EMR clúster de Amazon.
Clústeres en ejecución prolongada y almacenamientos de datos
Si ejecuta un EMR clúster de Amazon persistente que tiene una variación predecible en la capacidad computacional, como un almacén de datos, puede gestionar los picos de demanda a un costo menor con las instancias puntuales. 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. Al ejecutar los grupos de instancias principales y principales como instancias bajo demanda, se garantiza la conservación de los datos HDFS y la protección del clúster frente a las fluctuaciones del mercado puntual. Además, se ahorran costes al ejecutar los grupos de instancias de tareas como instancias puntuales.
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.
Calcular la HDFS capacidad requerida de un clúster
La cantidad de HDFS almacenamiento disponible para el 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 EBS volúmenes de Amazon conectados a los nodos principales.
-
Un factor de replicación, que explica cómo se almacena cada bloque de datos HDFS para obtener RAID una redundancia similar. 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 HDFS capacidad de un clúster, para cada nodo principal, añade la capacidad del volumen del almacén de instancias a la capacidad de EBS almacenamiento de Amazon (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 principales de tipo i2.xlarge, que tienen 800 GB de almacenamiento de instancias sin ningún EBS volumen de Amazon adjunto, tiene un total de aproximadamente 2666 GB disponibles para HDFS (10 nodos x 800 GB ÷ 3 factor de replicación).
Si el valor de HDFS capacidad calculado es inferior a sus datos, puede aumentar la cantidad de HDFS almacenamiento de las siguientes maneras:
-
Crear un clúster con EBS volúmenes de Amazon adicionales o añadir grupos de instancias con EBS volúmenes de Amazon adjuntos 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 debe realizarse con precaución, ya que reduce la redundancia de HDFS los datos y la capacidad del clúster para recuperarse de HDFS bloques perdidos o dañados.