Entendiendo Hadoop Yarn
On diciembre 9, 2021 by adminYARN – Yet Another Resource Negotiator, forma parte de la versión Hadoop 2, es uno de los dos componentes principales de Apache Hadoop (con HDFS). Planifica el uso de los recursos del cluster así como los tratamientos aplicados a los datos.
Lo anterior es la arquitectura básica de Yarn, donde el Gestor de Recursos es el componente central de toda la arquitectura, el cual es responsable de la gestión de los recursos, incluyendo las RAMs, CPUs y otros recursos en todo el cluster. El Application Master es responsable de la programación de la aplicación a lo largo del ciclo de vida, el Node Manager es responsable del suministro y aislamiento de los recursos en este nodo.
El Resource Manager: controla la gestión de los recursos del cluster, también toma decisiones de asignación. El gestor de recursos tiene dos componentes principales: Scheduler y Applications Manager.
- El scheduler: se llama YarnScheduler, que permite diferentes políticas para gestionar las restricciones como la capacidad, la equidad y los acuerdos de nivel de servicio.
- El Applications Manager: es responsable de mantener una lista de la aplicación presentada. Después de que el cliente envíe la solicitud, el gestor de aplicaciones valida en primer lugar si los requisitos de recursos de la solicitud para su maestro de aplicaciones pueden satisfacerse o no, y si hay suficientes recursos disponibles, envía la solicitud al programador; de lo contrario, la solicitud será rechazada.
El gestor de nodos: es responsable de lanzar y gestionar los contenedores en un nodo. Los contenedores ejecutan las tareas especificadas por el AppMaster.
- El contenedor: Significa una asignación de recursos a un ApplicationMaster. El ResourceManager es responsable de emitir recursos/contenedores a un ApplicationMaster. y se refiere a una colección de recursos como memoria, CPU, disco y IO de red.
- El Application Master: es una instancia de una librería específica del framework que negocia los recursos desde el Resource Manager y trabaja con el NodeManager para ejecutar y monitorizar los recursos concedidos (agrupados como contenedores) para una aplicación determinada. Una aplicación puede ser un trabajo mapreduce, un framework hive…
Pasos de ejecución de Aplicaciones con YARN:
- Un cliente envía una aplicación al ResourceManager de YARN.
- El ApplicationsManager (en el ResourceManager) negocia un contenedor y arranca la instancia ApplicationMaster para la aplicación.
- El ApplicationMaster se registra con el ResourceManager y solicita contenedores (RAMs y CPUs).
- El ApplicationMaster se comunica con los NodeManagers para lanzar los contenedores que se le han concedido.
- El ApplicationMaster gestiona la ejecución de la aplicación. Durante la ejecución, la aplicación proporciona información de progreso y estado al ApplicationMaster. El cliente puede monitorizar el estado de la aplicación consultando al ResourceManager o comunicándose directamente con el ApplicationMaster.
- El ApplicationMaster informa de la finalización de la aplicación al ResourceManager.
- El ApplicationMaster se desregistra con el ResourceManager, que entonces limpia el contenedor del ApplicationMaster.
Yarn Scheduler :
El Scheduler tiene una política enchufable que se encarga de repartir los recursos del cluster entre las distintas colas, aplicaciones, etc.
2. Programador FIFO
El programador FIFO es una de las primeras estrategias de despliegue utilizadas por Hadoop, y puede interpretarse simplemente como una cola Java. lo que significa que sólo puede haber un trabajo en el cluster al mismo tiempo. Todas las aplicaciones se ejecutan en el orden de presentación, y el trabajo después de la finalización del trabajo anterior se ejecutará en el orden de la cola.
Este planificador permite que las aplicaciones cortas terminen en un tiempo razonable, mientras que no mueren de hambre las aplicaciones de larga duración.
2. Planificador de capacidad
El planificador de capacidad es un planificador enchufable para Hadoop que permite que varios inquilinos compartan de forma segura un gran clúster. Los recursos se asignan a las aplicaciones de cada inquilino de una manera que utiliza plenamente el clúster, gobernado por las restricciones de las capacidades asignadas.
Las colas se establecen normalmente por los administradores para reflejar la economía del clúster compartido. El Capacity Scheduler admite colas jerárquicas para garantizar que los recursos se compartan entre las subcolas de una organización antes de que otras colas puedan utilizar los recursos libres.
3. Fair scheduler
El FairScheduler es un planificador enchufable para Hadoop que permite que las aplicaciones YARN compartan los recursos en un gran clúster de forma justa. La programación justa es un método para asignar recursos a las aplicaciones de manera que todas las aplicaciones obtengan, en promedio, una parte igual de recursos a lo largo del tiempo.
Deja una respuesta