Constellation Knowledge Network - Preguntas y respuestas sobre Bagua - Arquitectura del marco de gestión de recursos YARN

Arquitectura del marco de gestión de recursos YARN

YARN (Yet Another Resource Negotiator, otro coordinador de recursos) es un sistema general de gestión de recursos y una plataforma de programación. Su idea de diseño básica es combinar MRv1 (MapReduce en Hadoop1.0) con JobTracker y dividirlo en dos independientes. tareas, el administrador de recursos global ResourceManager y el ApplicationMaster específico para cada aplicación. Entre ellos, ResourceManager es responsable de la gestión y asignación de recursos de todo el sistema, mientras que ApplicationMaster es responsable de la gestión de una sola aplicación. A continuación, describimos la arquitectura de YARN a través de un diagrama, como se muestra en la Figura 1.

Figura 1 Arquitectura YARN

En la Figura 1, hay tres componentes principales de la arquitectura YARN, que se detallan a continuación:

1. ResourceManager

ResourceManager es un sistema de gestión de recursos global. Es responsable del monitoreo, asignación y gestión de todos los recursos del clúster Yarn. El trabajo específico es el siguiente:

(1) Responsable del procesamiento. solicitudes de clientes

(2) Recibir y monitorear el estado de los recursos de NodeManager (NM)

(3) Iniciar y monitorear ApplicationMaster (AM)

(4) Asignación y programación de recursos

Vale la pena mencionar que ResourceManager contiene dos componentes, a saber, el programador y el administrador de aplicaciones. El programador se basa en la capacidad, la cola y otras restricciones (por ejemplo, a cada cola se le asignan ciertos recursos). , puede ejecutar hasta una cierta cantidad de trabajos, etc.), asigna recursos en el sistema a cada aplicación en ejecución. Este programador es un "programador puro" y ya no realiza ningún trabajo relacionado con aplicaciones específicas; el Administrador de aplicaciones es responsable de administrar todas las aplicaciones en todo el sistema, incluido el envío y la programación de aplicaciones. Coordinar los recursos para iniciar ApplicationMaster. , monitoree el estado de ejecución de ApplicationMaster y reinicie en caso de falla.

2.NodeManager

NodeManager es el administrador de recursos y tareas en cada nodo. Por un lado, informará periódicamente el uso de recursos del nodo a ResourceManager; Por otro lado, recibirá y procesará diversas solicitudes de ApplicationMaster para iniciar y detener el contenedor (Container).

3.ApplicationMaster

Cada aplicación enviada por el usuario contiene un ApplicationMaster, que es responsable de coordinar los recursos del ResourceManager y asignar aún más los recursos obtenidos a varias tareas internas, logrando así realizar "distribución secundaria". Además, ApplicationMaster también monitoreará la ejecución y el uso de recursos del contenedor a través de NodeManager y volverá a aplicar recursos para la tarea para reiniciarla cuando la tarea falle. El YARN actual viene con dos implementaciones de ApplicationMaster. Una es el programa de instancia DistributedShell utilizado para demostrar el método de escritura de ApplicationMaster. Puede solicitar una cierta cantidad de contenedores para ejecutar un comando de Shell o un script de Shell en paralelo. ApplicationMaster-MRAppMaster del programa.

Cabe señalar que ResourceManager es responsable de monitorear ApplicationMaster y reiniciar ApplicationMaster cuando falla, lo que mejora en gran medida la escalabilidad del clúster. ResourceManager no es responsable de la tolerancia a fallas de las tareas internas de ApplicationMaster. La tolerancia a fallas de las tareas la completa ApplicationMaster. En términos generales, la función principal de ApplicationMaster es la programación de recursos, el monitoreo y la tolerancia a fallas.

上篇: Sueño con mansiones rojas: ¿Por qué a Wang Xifeng le gusta la abuela Liu y le pide que le ponga el nombre a su hija? 下篇: Pantalones verdes de ensueño_Pantalones verdes de ensueño
Artículos populares