Searching...
martes, 16 de agosto de 2016

YARN: El Gestor de Recursos de Hadoop

YARN es un gestor de recursos que se sitúa justo por encima de la capa de almacenamiento, HDFS. YARN interactúa con las aplicaciones para planificar la utilización de los recursos, permitiendo ejecutar múltiples aplicaciones a través de HDFS. Esto aumenta la eficiencia de los recursos y nos permite ir más allá del paradigma MapReduce o incluso del modelo de programación paralela de datos.
YARN como capa del ecosistema Hadoop
La primera vez que se creo Hadoop esto no era posible y, de hecho, la pila original de Hadoop no tenía gestor de recursos. El siguiente diagrama muestra una parte de su evolución en los últimos diez años.
Evolución de Hadoop en los últimos 10 años
Una de las mayores limitaciones de Hadoop 1.0 era su incapacidad de soportar aplicaciones que no siguen el paradigma MapReduce, lo que le hacía tener un uso de recursos pésimo en algunos escenarios. Esto significaba que para aplicaciones avanzadas como el análisis de grafos, que requieren diferentes formas de modelar y analizar los datos, teníamos que mover los datos a otra plataforma. Esto es mucho trabajo en el caso de Big Data.

Añadiendo YARN como una capa intermedia entre HDFS y las aplicaciones facilitamos la construcción de nuevos sistemas, centrándonos en los diferentes tipos de aplicaciones de Big Data, tales como Giraph para el análisis de datos de grafos, Storm para el análisis de datos de streaming y Spark para el análisis en memoria (in-memory). YARN consigue esto proporcionando un framework estándar que soporta el desarrollo de aplicaciones personalizadas en el ecosistema de Hadoop 2.0. YARN nos facilita el poder sacar una ventaja máxima de nuestros conjuntos de datos al dejarnos utilizar las herramientas que pensamos que son las mejores para nuestros grandes volúmenes de datos.

Vamos a echar un vistazo a la arquitectura de YARN sin pretender ser demasiado técnicos. Observe el gestor de recursos en la siguiente imagen y a los gestores de cada uno de los dos nodos más abajo. El gestor de recursos controla todos los recursos y decide quien se queda con qué. El gestor de nodo funciona a nivel de máquina y se encarga de una única máquina. El gestor de recursos junto con el gestor de nodo forman en conjunto el framework de procesamiento de los datos. Cada aplicación obtiene un maestro de aplicación, el cual negocia los recursos con el gestor de recursos y dialoga con el gestor de nodo para completar sus tareas.
Cómo YARN ejecuta una aplicación
Observe los recuadros etiquetados como contenedor (Container). Un contenedor es un concepto abstracto que representa un recurso, es decir, un conjunto de CPU, memoria, disco, red y otros recursos dentro del nodo de proceso. Para simplificar y ser menos preciso, se puede pensar en un contenedor como en una máquina.

Hemos visto los engranajes fundamentales del motor de YARN para darte una idea de los componentes principales de YARN. De esta manera, cuando escuches términos como "Gestor de Recursos" , "Gestor de Nodo" y "Contenedor", entenderás básicamente las tareas de las que son responsables.

Ahí va un ejemplo de la vida real que muestra la potencia de Hadoop 2.0 sobre Hadoop 1.0. Yahoo fue capaz de ejecutar casi el doble de jobs al día con YARN que con Hadoop 1.0. También experimentaron un aumento considerable en la utilización de la CPU. Yahoo incluso llegó a afirmar que la actualización a YARN equivalía a añadir 1000 máquinas a su cluster de 2500 máquinas. ¡Que fuerte!

Es evidente que el éxito de YARN nace a partir del crecimiento explosivo de las diferentes aplicaciones que hay ahora en el ecosistema Hadoop. ¿Eres nuevo en YARN? Puedes utilizar la herramienta que elijas para tus grandes volúmenes de datos sin ningún tipo de problemas. Compara esto con Hadoop 1.0, que estaba limitada exclusivamente a MapReduce.

Resumiendo:

YARN nos ofrece muchas maneras para que las aplicaciones puedan extraer valor de los datos. Nos permite ejecutar muchas aplicaciones distribuidas en el mismo cluster. Además, YARN reduce la necesidad de mover los datos y ayuda a una mejor utilización de los recursos a un coste más bajo. Es una plataforma escalable que ha hecho posible el crecimiento de diversas aplicaciones sobre el sistema de ficheros distribuidos HDFS, enriqueciendo el ecosistema Hadoop.

0 comentarios:

Publicar un comentario

Gracias por participar en esta página.

 
Back to top!