Cómo funciona YARN Programador de YARN
Arquitectura antigua de MapReduce
,
En Hadoop 2.0, YARN es responsable de administrar los recursos de MapReduce (memoria, CPU, etc.) y empaquetarlos en contenedores intermedios. . Esto simplificará MapReduce para que pueda centrarse en tareas de procesamiento de datos especializadas sin la necesidad de programación de recursos. Esto optimizará MapReduce para que pueda centrarse en las tareas de procesamiento de datos en las que es bueno sin tener que considerar la programación de recursos. YARN gestiona los recursos informáticos disponibles para todas las máquinas del clúster. En función de estos recursos, YARN programa solicitudes de recursos de aplicaciones (como MapReduce) y luego YARN asigna contenedores para proporcionar potencia de procesamiento a cada aplicación.
En un clúster de Hadoop, equilibre la memoria (RAM), el procesador (CPU core) y el uso del disco son críticos y deben planificarse adecuadamente para evitar que cualquiera de ellos se convierta en un cuello de botella. La recomendación general es que configurar dos contenedores con un disco y un núcleo de CPU logrará el mejor equilibrio en la utilización del clúster. Los contenedores son la unidad básica de potencia de procesamiento en YARN y son encapsulaciones de memoria, CPU, etc.
Desde la perspectiva de los recursos de hardware disponibles, para ajustar la memoria del clúster para la configuración de Yarn y MapReduce de cada nodo al número correcto, se deben tener en cuenta los siguientes factores importantes:
Memoria reservada = Memoria reservada del sistema + memoria reservada de HBase (si HBase está en el mismo nodo)
Utilice el siguiente cálculo para determinar la cantidad máxima de contenedores permitidos por nodo.
Número de contenedores = mínimo (2 NÚCLEOS, 1,8 DISCOS, (RAM disponible)/tamaño mínimo del contenedor)
Tamaño mínimo del contenedor Este valor depende de la cantidad de RAM disponible - - en menor En el nodo de almacenamiento, este valor depende de la cantidad de RAM disponible. - En nodos de almacenamiento más pequeños, el tamaño mínimo del contenedor también debería ser menor. La siguiente tabla enumera los valores recomendados:
El tamaño de memoria final calculado de cada Contenedor es
El tamaño de memoria de cada Contenedor = max (tamaño mínimo de memoria del Contenedor, (Memoria total disponible) / Número de contenedores))
El núcleo de YARN es descomponer la función de jobTracker en dos procesos: gestión de recursos y programación y monitoreo de tareas, es decir, gestión global de recursos y gestión de cada trabajo. ResourceManager y Nodemanager proporcionan asignación y administración de recursos informáticos, y ApplicationMaster es responsable de completar la ejecución del programa. La arquitectura YARN forma una plataforma universal de gestión de recursos y una plataforma informática de aplicaciones universal, evitando los problemas de punto único y de utilización de recursos de la arquitectura anterior. Al mismo tiempo, las aplicaciones que se ejecutan en ella ya no se limitan a MapReduce.
Idealmente, las solicitudes de recursos de Yarn de nuestra aplicación deberían satisfacerse de inmediato, pero en realidad, los recursos suelen ser limitados
especialmente en clústeres ocupados. Las solicitudes de recursos de la aplicación a menudo necesitan esperar un período de tiempo para. obtener los recursos correspondientes
. En Yarn, el programador es responsable de asignar recursos a las aplicaciones; de hecho, la programación en sí es un problema complicado y es difícil encontrar una estrategia perfecta para resolver todos los escenarios de aplicaciones. Yarn proporciona una variedad de programadores
y estrategias configurables para que usted elija. En Yarn, hay tres programadores para elegir: programador primero en entrar, primero en salir, programador de capacidad y programador justo.