En este artículo hablamos de los conceptos fundamentales de Yarn en Hadoop. Aprende sobre sus componentes principales y su arquitectura para Big Data.
En estos artículos tenemos la introducción a los otros dos componentes de Apache Hadoop:
Contenidos
Introducción a YARN
Yarn (Yet Another Resource Negotiator) es una pieza fundamental en el ecosistema Hadoop. Es el framework que permite a Hadoop soportar varios motores de ejecución incluyendo MapReduce, y proporciona un planificador agnóstico a los trabajos que se encuentran en ejecución en el clúster. Esta mejora de Hadoop también es conocida como Hadoop 2.
Yarn separa las dos funcionalidades principales: la gestión de recursos y la planificación y monitorización de trabajos. Con esta idea, es posible tener un gestor global (Resource Manager) y un Application Master por cada aplicación.
Se divide en tres componentes principales: Resource Manager, Node Manager y Application Master.
Resource Manager
El Resource Manager (RM) tiene dos componentes: El Scheduler y el Applications Manager.
El Scheduler o planificador es el encargado de gestionar la distribución de los recursos del clúster de Yarn. Además, las aplicaciones usan los recursos que el Resource Manager les ha proporcionado en función de sus criterios de planificación. Este planificador no monitoriza el estado de ninguna aplicación ni les ofrece garantías de ejecución.
Por otro lado, el Applications Manager es el componente del Resource Manager responsable de aceptar las peticiones de trabajos, negociar el contenedor en el que ejecutar la aplicación y proporcionar reinicios de los trabajos en caso de que fuera necesario debido a errores.
El Resource Manager mantiene un listado de los Node Manager activos y de sus recursos disponibles. Los clientes del sistema pueden enviar una aplicación Yarn soportada para ejecutar al Resource Manager.
Node Manager
El Node Manager (NM) gestiona los trabajos con las instrucciones del Resource Manager y proporciona los recursos computacionales necesarios para las aplicaciones en forma de contenedores. Implementa Heartbeats para mantener informado del estado al Resource Manager.
Los contenedores Yarn tienen una asignación de recursos (cpu, memoria, disco y red) fija de un host del clúster y el Node Manager es el encargado de monitorizar esta asignación. Mapean las variables de entorno necesarias, las dependencias y los servicios necesarios para crear los procesos.
Application Master
El Application Master (AM) es el responsable de negociar los recursos apropiados con el Resource Manager y monitorizar su estado y su progreso. También coordina la ejecución de todas las tareas en las que puede dividirse su aplicación.
Secuencia de trabajo en Hadoop YARN
- El cliente envía una aplicación Yarn.
- Resource Manager reserva los recursos en un contenedor para su ejecución.
- El Application Manager se registra con el Resource Manager y pide los recursos necesarios.
- El Application Manager notifica al Node Manager la ejecución de los contenedores.
- Se ejecuta la aplicación Yarn en el contenedor correspondiente.
- El Application Master monitoriza la ejecución y reporta el estado al Resource Manager y al Application Manager.
- Al terminar la ejecución, el Application Manager lo notifica al Resource Manager.
Para conseguir una alta escalabilidad, Yarn ofrece federación. Esta funcionalidad permite conectar varios clusters Yarn y hacerlos visibles como un clúster único. De esta forma puede ejecutar trabajos muy pesados y distribuidos.
Siguientes Pasos y Formación de Hadoop y Yarn
Aquí tienes dos cursos en inglés, que te recomiendo para aprender Hadoop desde cero:
Introducción al uso práctico de Big Data con Hadoop
Este curso online de la Universidad Autónoma de Barcelona te permitirá aprender los fundamentos del big data y el uso de Hadoop de forma práctica y con ejemplos reales. Te guiará para trabajar con el ecosistema Hadoop en 5 módulos que comprenden la adquisición y el almacenamiento de datos, el procesamiento y análisis, su visualización y un proyecto final.
Desarrollador Hadoop en el mundo real
En este curso aprenderás a instalar y configurar un clúster Hadoop en HDFS y algunos de los componentes básicos del ecosistema como Yarn, Pig, Hive, Flume o Sqoop.
También, te recomiendo leer el siguiente libro:
Preguntas Frecuentes Hadoop YARN – FAQ
¿Cuál es la función de Yarn en Hadoop?
Yarn es el componente de Apache Hadoop encargado de planificar los trabajos en un clúster y gestionar los recursos hardware de los que se disponen para ejecutar las aplicaciones Big Data.
¿Qué componentes tiene Hadoop Yarn?
Yarn tiene 3 componentes principales. El primero es el Resource Manager, encargado de gestionar los recursos del clúster. El segundo es el Node Manager, responsable de gestionar los contenedores en los que se ejecutan las aplicaciones en los nodos. El tercer componente es el Application Master, gestor del ciclo de vida de las aplicaciones.
¿Cuál es la diferencia entre MapReduce y Yarn?
Yarn es el componente de Apache Hadoop responsable de gestionar los recursos y planificar los trabajos. MapReduce es el framework de programación o paradigma que indica la forma en la que ejecutar los trabajos distribuidos por medio de las fases map y reduce.
A continuación, el vídeo-resumen. ¡No te lo pierdas!