Red de conocimiento informático - Problemas con los teléfonos móviles - ¿De qué se trata YARN?

¿De qué se trata YARN?

Modelo de programación YARN

1: para garantizar la compatibilidad con versiones anteriores del modelo de programación, MRv2 reutiliza el modelo de programación y el motor de procesamiento de datos de MRv1, pero el entorno de ejecución se reescribe.

2: Modelo de programación y motor de procesamiento de datos

Hay dos conjuntos de interfaces de programación de aplicaciones mapreduce: nueva API (mapred) y API antigua (mapreduce)

Los programas escritos con la antigua API MRv1 se pueden ejecutar directamente en MRv2

Los programas escritos con la nueva API MRv1 deben volver a compilarse utilizando la biblioteca de programación MRv2 y modificar los parámetros y valores de retorno incompatibles

3 : Entorno de ejecución

MRv1: Jobracker y Tasktracker

MRv2: YARN y ApplicationMaster

Composición de YARN

yarn Se compone principalmente de varios componentes como ResourceManager, NodeManager, ApplicationMaster y Container.

ResourceManager (RM)

RM es un administrador de recursos global, responsable de la gestión y asignación de recursos de todo el sistema.

Compuesto principalmente por dos componentes: programador y administrador de aplicaciones (ASM)

Programador

El programador se basa en la capacidad, la cola y otras restricciones, asigna recursos en el sistema a cada aplicación en ejecución

No es responsable del trabajo específico relacionado con la aplicación, como el monitoreo o el seguimiento del estado

No es responsable de reiniciar tareas fallidas

La asignación de recursos la unidad está representada por el contenedor de recursos "contenedor de recursos"

El contenedor es una unidad de asignación dinámica de recursos que encapsula memoria, CPU, disco, red y otros recursos juntos para limitar la cantidad de recursos de cada tarea

El programador es un componente conectable que los usuarios pueden diseñar ellos mismos

YARN proporciona una variedad de programadores disponibles directamente, como el Programador justo y el Programador de capacidad.

Administrador de aplicaciones

Responsable de administrar todas las aplicaciones en todo el sistema

ApplicationMaster (AM)

Cada aplicación enviada por el usuario Cada el programa contiene un AM

Las funciones principales de AM

Negociar con el programador RM para obtener recursos (representado por Contenedor)

Asignar aún más las tareas obtenidas a Interno tareas

Comunicarse con NM para detener/detener tareas automáticamente

Supervisar el estado de ejecución de todas las tareas y volver a aplicar recursos para que la tarea se reinicie cuando la tarea falle

Actualmente, YARN viene con dos implementaciones de AM

Uno es el shell distribuido, un programa de ejemplo usado para demostrar los métodos de escritura de AM

Uno se usa para el programa Mapreduce---MRAppMaster

Se está desarrollando el AM correspondiente a otros marcos informáticos, como Spark, etc.

Nodemanager (NM) y Container

NM es el administrador de recursos y tareas en cada nodo

Informa periódicamente el uso de recursos en este nodo a RM y el estado en ejecución. estado de cada contenedor

Recibir y procesar varias solicitudes de AM para iniciar/detener contenedores

El contenedor es una abstracción de recursos en YARN, que encapsula los recursos multidimensionales

YARN asignará un Contenedor a cada tarea, y la tarea solo puede usar los recursos descritos en el Contenedor

El contenedor es diferente de la ranura de MRv1, es una unidad dinámica de división de recursos que se genera dinámicamente según las necesidades de la aplicación

YARN se compone principalmente de los siguientes protocolos

ApplicationClientProtocol

Jobclient envía solicitudes a través de este protocolo RPC Programa, consulta el estado de la solicitud, etc.

ResourceManagerAdministrationProtocol

El administrador actualiza los archivos de configuración del sistema a través de este protocolo, como la lista negra de nodos, permisos de cola de usuarios, etc.

ApplicationMasterProtocol

AM quiere registrarse y cancelarse con RM a través de este protocolo RPC y solicitar recursos para cada tarea

ContainerManagementProtocol

AM pasa Requiere que NM inicie o detenga contenedores, obtenga el estado de uso de cada contenedor y otra información

ResourceTracker

NM se registra con RM a través del protocolo RPC y envía periódicamente información de latidos para informar el uso de recursos de la situación actual y el estado de ejecución del contenedor

Flujo de trabajo YARN

Describe este proceso en texto:

1: Se envía una solicitud. por el cliente y aceptado por la solicitud de solicitud de ASM de RM

Qué incluye la solicitud enviada:

a:ApplicationMaster

b:Comando para iniciar Applicationmaster

p>

c: El contenido de su propia aplicación

2: Envíe tres partes del contenido a RM, luego RM encuentra NodeManager y luego

Nodemanager habilita Applicationmaster y asigna Contenedor

A continuación tenemos que ejecutar esta tarea,

3: Pero ejecutar la tarea requiere recursos, por lo que tenemos que solicitar recursos al ASM de RM para ejecutar la tarea (se registrará con RM y decir que lo comencé Después del registro, puede administrarlo a través de RM. Nuestros usuarios también pueden monitorear el estado de las tareas a través del cliente web de RM) ASM solo es responsable de habilitar APplicationMaster

4: :Después de registrarnos, debe solicitar recursos. La solicitud de recursos se realiza a través del cuarto paso, solicitar a ResourceScheduler

5: Después de solicitar y recibir los recursos, encontrará a Nodemanager y le dirá que los tengo. lo solicitó, y luego Nodemanager emitirá un juicio

6: Después de saber que lo ha solicitado, se iniciará la tarea y se preparará el entorno antes de comenzar. >7: Una vez iniciada la tarea, se comunicará con APplicationmaster y continuará la tarea con un informe de latido.

8: Una vez completado, informaremos a RM y dejaremos que RSM cancele el registro. Luego, RSM recuperará los recursos. Por supuesto, estamos distribuidos, por lo que no solo nos comunicaremos con nuestro propio Nodemanager. También se comunicará con otros nodos.