Compartir tecnología

Conceptos básicos de Big Data: principios clave de la arquitectura de Yarn en Hadoop

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Directorio de artículos

Principios arquitectónicos clave de Yarn en Hadoop

1. Introducción al hilo

2. Arquitectura del hilo

3. Proceso de ejecución de la tarea Yarn

4. Características y escenarios de uso de los tres programadores de recursos de Yarn


Principios arquitectónicos clave de Yarn en Hadoop

1. Introducción al hilo

Apache Hadoop Yarn (Yet Another Reasource Negotiator, otro coordinador de recursos) es un administrador de recursos utilizado después de la versión Hadoop2.x, que puede proporcionar una plataforma de administración de recursos unificada para aplicaciones de capa superior.

2. Arquitectura del hilo

Yarn se compone principalmente de ResourceManager, NodeManager, ApplicationMaster y Container.

  • Administrador de recursos

ResourceManager es el administrador central del clúster Yarn y es responsable de la asignación y programación de recursos de todo el clúster. ResourceManager es responsable de monitorear el estado de los nodos de NodeManager, recopilar recursos del clúster, procesar solicitudes de recursos para las tareas enviadas por el Cliente e iniciar y monitorear ApplicationMaster para cada Aplicación.

  • Administrador de nodos

NodeManager es responsable de administrar los recursos (como memoria, CPU, etc.) en cada nodo e informar a ResourceManager. Cuando ResourceManager asigna un contenedor (Contenedor) a NodeManager, NodeManager es responsable de iniciar el contenedor y monitorear su funcionamiento. Además, NodeManager también recibe el comando ApplicationMaster para iniciar el contenedor (Contenedor) para cada Aplicación.

  • Maestro de aplicaciones

Cada aplicación que se ejecuta en Yarn iniciará un ApplicationMaster correspondiente, que es responsable de solicitar recursos con ResourceManager y administrar las tareas de la aplicación. ApplicationMaster es esencialmente un contenedor. La programación de recursos la realiza ResourceManager y la inicia NodeManager. Después de iniciar ApplicationMaster, solicitará recursos de ResourceManager para ejecutar la aplicación. Después de que ResourceManager asigne los recursos del contenedor, ApplicationMaster se conectará al NodeManager correspondiente para notificar. inicio del contenedor y administrar los recursos que se ejecutan en la tarea del contenedor.

  • Envase

Container Container es la unidad de ejecución básica en Yarn, que se utiliza para ejecutar tareas de aplicaciones. Es un entorno virtual que contiene el código de la aplicación, las dependencias y los recursos necesarios para la operación (memoria, CPU, disco, red). ResourceManager asigna cada contenedor a ApplicationMaster y NodeManager lo inicia y administra en el nodo correspondiente. NodeManager supervisa el uso de recursos del contenedor y lo informa a ResourceManager cuando es necesario.

El núcleo de Yarn es separar las funciones de gestión de recursos y programación de tareas de JobTracker en MR1, que se implementan mediante los procesos ResourceManager y ApplicationMaster respectivamente. ResourceManager es responsable de la gestión y programación de recursos de todo el clúster; programación de tareas de aplicaciones, monitoreo de tareas y tolerancia a fallas.

3. Proceso de ejecución de la tarea Yarn

  1. Cuando el cliente envía una tarea de MR a Yarn, los recursos de la tarea de MR (Split, configuración de recursos, información del paquete Jar) se cargarán primero en HDFS.

  2. El cliente solicita ResourceManager para iniciar ApplicationMaster.

  3. ResourceManager seleccionará un nodo de NodeManager que esté relativamente no ocupado y notificará al nodo que inicie ApplicationMaster (Contenedor).

  4. Una vez iniciado ApplicationMaster, descargará la información de recursos de la tarea MR de HDFS al local y luego solicitará recursos del ResourceManager para iniciar la tarea MR.

  5. ResourceManager devuelve la lista de recursos a ApplicationMaster.

  6. Luego, ApplicationMaster notifica al NodeManager correspondiente que inicie el contenedor.

  7. Una vez iniciado el contenedor, se registrará de forma inversa en ApplicationMaster.

  8. ApplicationMaster envía la Tarea al Contenedor para que se ejecute, y la Tarea ejecuta la lógica empresarial del código que escribimos.

4. Características y escenarios de uso de los tres programadores de recursos de Yarn

  • Programador FIFO (Programador primero en entrar, primero en salir) , el programador más simple de Yarn. FIFO Scheduler colocará las aplicaciones enviadas en una cola de primero en entrar, primero en salir en el orden de envío. Al asignar recursos, los recursos se asignarán primero a la aplicación superior en la cola y luego asignarán recursos a la siguiente aplicación después de la. Se cumplen los requisitos de recursos de la aplicación principal. Una aplicación asigna recursos, etc. Cuando este tipo de programador programa recursos, es posible que una aplicación con grandes requisitos de recursos ocupe todos los recursos del clúster, lo que provocará el bloqueo de otras aplicaciones.

  • Programador de capacidad (Programador de capacidad) Es el programador de recursos predeterminado configurado en Yarn, lo que permite a múltiples inquilinos compartir de forma segura un clúster grande. El programador de capacidad admite la configuración de múltiples colas de recursos. Puede especificar las proporciones mínimas y máximas de recursos utilizables para cada cola de recursos. Al asignar recursos, los recursos inactivos se priorizarán al que tenga la cola más baja de "recursos reales/recursos presupuestados". Cada cola de recursos adopta internamente una estrategia de programación FIFO.

  • Programador justoEs un método de programación de recursos que asigna recursos de Yarn de manera justa a cada aplicación. Este método de programación permite que todas las aplicaciones obtengan recursos compartidos iguales a lo largo del tiempo. Su objetivo de diseño es asignar equidad a todas las aplicaciones de acuerdo con los parámetros definidos por H.

La diferencia entre los programadores de recursos FIFO, Capacidad y Justo en Yarn es la siguiente:

Programador de recursos de hiloCaracterísticasEscena aplicable
Programador FIFO

1. Sencillo y fácil de entender, no requiere configuración adicional.

2. Las solicitudes se ejecutan en el orden en que se envían (primero en entrar, primero en salir).

3. No apto para clústeres compartidos, cada aplicación debe esperar hasta su turno para ejecutarse.

Clústeres no compartidos, escenarios que no tienen altos requisitos en el orden de ejecución de las tareas. Generalmente no se utiliza en entornos de producción.

Programador de capacidad

(usado por defecto en Yarn de código abierto)

1. Permita que varias organizaciones compartan recursos del clúster y cada organización tenga una cola dedicada.

2. Admitir la división jerárquica de colas y la configuración flexible de los recursos de las colas.

3. Puede limitar la capacidad máxima de la cola y aliviar la competencia por recursos.

Escenarios de clúster compartido, donde varias organizaciones o equipos comparten los mismos recursos del clúster.

Programador justo

(utilizado por CDH por defecto)

1. Asigne recursos de manera justa a todas las aplicaciones en ejecución y admita el intercambio justo de recursos entre múltiples colas.

2. Apoyar la creación dinámica de colas y determinar la ubicación de las aplicaciones a través de un conjunto de sistemas de reglas.

3. Apoyar la función de preferencia de recursos para garantizar una distribución justa de los recursos.

1. Escenarios en los que varios usuarios u organizaciones necesitan obtener recursos de manera justa en un clúster compartido.

2. Entornos con altos requisitos de control de recursos a nivel de cola y estrategias de programación detalladas.


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨