serie de la Fundación de Desarrollo de Hadoop Big Data: Seis entender HILO

aprender HILO

 

En primer lugar, ¿cuál es HILO?

Apache Hadoop hilo (Sin embargo, otro negociador de recursos , otro coordinador de recursos) es una nueva Hadoop Explorador , es un sistema de gestión de recursos universal, que proporciona una aplicación unificada para la gestión de recursos superior y la programación, su introducción es clúster ha traído grandes beneficios en términos de utilización de recursos, gestión unificada y el intercambio de datos.

 

En segundo lugar, los antecedentes

arquitectura 1.MRv1:

2.MRv1 (Hadoop1.0) tiene varias limitaciones:

(1) pobre escalabilidad: en MRv1 en, JobTracker también tiene dos gestión de recursos y trabajo de control funcional, lo que limita la escalabilidad del clúster Hadoop.

(2) pobre fiabilidad :: MRv1 utilizando la configuración maestro / esclavo, en el que hay un único punto de fallo Maestro, una vez que falla guía

Inducida clúster completo no está disponible.

(3) baja utilización de los recursos: Recursos método de particionado ranura basa en el tamaño de la partición es todavía demasiado áspero, a menudo resultan en la utilización de recursos de nodo es demasiado alto o demasiado bajo; Hadoop Mapa ranura en la ranura y Reducir ranura son dos, y no se les permite compartida entre ellos, a menudo conducen a una limitación de recursos ranura mientras que el otro es inactivo (por ejemplo, cuando un trabajo acaba de presentar sólo funciona mapa de tareas, esta vez Reducir inactivo ranura).

(4) no introducir mecanismo de aislamiento eficaz de los recursos, basado en el uso de sólo el aislamiento de recursos mecanismo de JVM, este enfoque es todavía demasiado áspero, una gran cantidad de recursos, tales como la CPU, no aislamiento, que puede causar interferencia entre las tareas en el mismo nodo serio.

(5) no puede apoyar marco computación múltiple: no se puede apoyar eficazmente la tormenta, Spark y otra plataforma de computación.

mejoras 3.YARN

(1) cambio de un grupo de cálculo de un modo de cuadro, calcular el modo de uso compartido de recursos respectiva trama

Mejorar la utilización de los recursos, el modo de compartir requiere sólo un pequeño número de gestión unificada de un administrador del clúster puede, no incurra en la programación de los recursos a través del clúster, ahorro de costes.

(2) lleva a cabo principalmente dos funciones en la Hadoop 1,0 JobTracker: las operaciones de gestión y control de recursos. En el tamaño del clúster es demasiado grandes escenas, la presión JobTracker es demasiado pesado, por lo que el diseño HILO , gestión de recursos y el control de trabajos se separan. JobTracker sustituido por tres partes ResourceManager, ApplicationMaster, NodeManager.

 

En tercer lugar, la principal ventaja

1. reduce en gran medida el JobTracker (que ahora es ResourceManager) el consumo de recursos, y permitir la supervisión de cada sub-tareas de trabajo (tareas) del programa estatal distribuidos, más seguras y más bellas.

2. En el nuevo hilo en, ApplicationMaster es una parte cambiante , los usuarios pueden escribir su propio modelo de programación diferente AppMst, para que más tipos de modelo de programación se puede ejecutar clúster Hadoop.

3. Expresa para los recursos a las unidades de memoria , el número de ranura restante que antes con el fin de ser más razonable.

4.ApplicationMaster asumió la tarea de vigilar la salud de los trabajos de la JobTracker original, ResourceManager el control de la salud ApplicationMaster ASM, y si surgen problemas, se reiniciará su (ApplicationMaster).

HILO 5.Container usa como un aislamiento de recursos de montaje se puede utilizar para programar y control de recursos . Container es una unidad de asignación de recursos, las dimensiones internas del paquete de una pluralidad de nodos de recursos.

 

En cuarto lugar, la arquitectura básica de hilo

1.ResourceManager (RM):

(1) responsable del sistema general de gestión y distribución de recursos incluye un programador y un gestor de aplicaciones (Applications Manager) ASM dos partes.

(2) programador es un programador puro sólo es responsable de la asignación de recursos.

(3) ASM: ① presentó una solicitud para iniciar ApplicationMaster; ② empezar AM; ③ supervisar el funcionamiento de AM, AM reiniciarlo cuando fallas.

2.NodeManager (NM):

Administrador de recursos y tareas en (1) cada nodo

(2) funciones detalladas (nexo): ① el tiempo para reportar el uso de recursos y el funcionamiento de cada nodo Contenedor de acuerdo con RM; ② iniciar y detener la recepción de la AM petición (diversas tareas) del recipiente.

3.ApplicationMaster (AM):

(1) un AM aplicación por

(2) funciones específicas: ① la solicitud de recursos a la RM; ② para iniciar y detener la tarea de comunicación NM; ③ la supervisión del estado de funcionamiento de todas las tareas, recursos y re-aplicación y reiniciar la tarea si falla la tarea.

4.Container:

abstracción Hilados de los recursos se asignan las unidades de recursos, en el que el nodo de recursos de envasado multi-dimensional, como el contenido, CPU, etc ..

 

Cinco, el proceso de planificación de tareas HILO

1.Client RM enviado a la petición de inicio de aplicaciones (incluyendo: ApplicationMaster de comandos de inicio del programa AM, aplicaciones)

2.RM le asigna una aplicación contenedora, y se comunica con la correspondiente NM, NM requiere para iniciar la aplicación correspondiente a la AM en el contenedor.

3.AM después de comenzar a registrarse en la RM, el usuario puede ver el estado de ejecución de aplicaciones directamente a través de la RM.

RM 4.AM a solicitar y recibir recursos por medio de la votación

Después de la solicitud 5.AM al recurso para comunicarse con el correspondiente NM, NM requiere para iniciar la tarea.

Después de ajustar las necesidades de la tarea buen ambiente 6.NM a plazo (incluyendo variables ambientales, paquetes JAR, etc.) para la tarea, el comando de inicio de la tarea de escribir una secuencia de comandos para iniciar la tarea ejecutando el script.

7. cada tarea mediante el envío de protocolo RPC a las propias condiciones de funcionamiento de AM, la situación puede realizar un seguimiento de las tareas de la mañana, para que pueda reiniciar la tarea si falla la tarea.

8. Cuando se haya completado la tarea, AM sesión y cerrar en sí a la RM.

 

Seis, tolerancia a fallos HILO

1.RM puntos únicos de fallo

ResourceManager nodo de copia de seguridad cuando el nodo primario falla, el nodo se conecta a continuar el trabajo.

2.NM

(1) tarea falla, RM fallará la tarea de contar AM;

(2) AM decidir cómo manejar el fracaso tarea.

3.AM

Después de (1) la falta de MA por RM responsable de reiniciar AM

(2) la tolerancia a fallos AM a lidiar con el problema de las tareas internas

(3) RM ahorra la tarea ya está en marcha, sin tener que volver a ejecutar después de la reanudación.

 

Siete, planificador HILO

HILO planificador de recursos es uno de los componentes más importantes, y un plug- in, que define un conjunto de especificación de interfaz de manera que el usuario puede poseer planificador implementado según sea necesario. El hilado viene FIFO, Capacidad Scheduler (principal) [la cola de ejecución de la tarea por defecto interno es una manera FIFO} y el planificador de recursos comunes Feria Programador de tres, por supuesto, el usuario puede escribir un nuevo planificador de recursos de acuerdo con la especificación de la interfaz, y un simple configuración de su creación y funcionamiento.

1. Programación de recursos del modelo:

(1) los hilados usando doble modelo de programación de recursos : en una primera capa, ResourceManager planificador de recursos para asignar los recursos a ApplicationMaster individuo ; en la segunda capa, ApplicationMaster la asignación de más recursos para las diversas tareas dentro de él. Aquí Recurso principal preocupación Scheduler es el problema de la programación de la primera capa , la segunda capa como para la estrategia de programación, es totalmente de la aplicación de usuario en sí.

(2) los hilados utiliza un modelo de comunicación de tracción-base: el planificador de recursos para asignar recursos a la aplicación, no empuja inmediatamente un ApplicationMaster correspondiente, pero coloca temporalmente en una memoria intermedia, esperando periódicamente ApplicationMaster latido del corazón para tomar la iniciativa.

2. proceso de programación de recursos

3. mecanismo de garantía de recursos

(1) la asignación de recursos incrementales: Cuando la aplicación de recursos es temporalmente incapaz de solicitud de aval, la prioridad reservado recursos en un nodo hasta la liberación acumulativa de recursos gratuitos para la aplicación para satisfacer las necesidades de la aplicación. Esta asignación de recursos, recursos de la reserva dará lugar a una pérdida de recursos, reducir la utilización de recursos de clúster.

(2) los hilados de usar mecanismo de asignación de recursos incrementales , aunque este mecanismo es un desperdicio, pero no causará fenómeno de inanición. (Suponiendo que la aplicación no ocupa permanentemente un recurso, se dará a conocer los recursos que se consumen durante un período de tiempo).

4. Pre-emption mecanismo

(1) en el programador de recursos, cada cola se puede proporcionar una cantidad mínima de recursos y la cantidad máxima de recursos , en el que la cantidad mínima de recursos es donde los recursos son escasos

En virtud de la cantidad de recursos necesarios para garantizar cada cola, y la cantidad máxima de recursos es el uso de los recursos en casos extremos no puede exceder de la cola.

La razón (2) se produjo La anticipación se debe enteramente a la "cantidad mínima de recursos" concepto. En general, con el fin de mejorar la utilización de los recursos, los recursos

Scheduler (incluida la capacidad Programador y Programador de Fair) temporalmente recursos asignados serán ligeramente cargados a la cola de las colas de carga pesada (es decir, la cantidad mínima de recursos para asegurar que los recursos no son difíciles, cuando la cola no requiere recursos, que no cumple la la cantidad mínima de recursos, pero de forma provisional

Los recursos libres deben ser asignados a otra cola de recursos), sólo cuando la carga es ligera cola de solicitudes nuevas recibidas repente presentadas antes del planificador

Otros recursos que pertenecen a la cola se asigna a ella . . Sin embargo, dado que el recurso puede estar en uso en este momento otra cola, el programador debe esperar

Después de la liberación de los demás recursos de cola a estos recursos "restitución", que suele tener un período de tiempo de espera incierta. Con el fin de evitar que deberían

Esperar demasiado tiempo con el programa, después de la espera despachador durante algún tiempo si no se han dado a conocer los recursos que se encuentran, la apropiación de recursos.

5.Capacity Shedule

Dividiendo el recurso en la cola de la unidad, cada cola puede ajustarse para asegurar un cierto porcentaje mínimo del límite superior de los recursos y, al mismo tiempo, cada usuario también puede establecer un cierto límite el uso de los recursos con el fin de evitar el mal uso de los recursos. Cuando una cola ha restante recursos, los recursos restantes se pueden compartir temporalmente a otras colas.

(1) Características. : Aseguramiento de la capacidad, flexibilidad, variedad de leasing (soporta múltiples usuarios y múltiples aplicaciones para compartir un conjunto de pista), la seguridad, la actualización dinámica de recursos

(2) los sub-colas:

① puede haber colas anidados, cada cola tiene un sub-cola.

② los usuarios sólo pueden presentar una solicitud a la parte inferior de la cola (cola de hoja)

③ cada mínimo cola y capacidad máxima.

④ planificador de colas siempre elegir el menor uso actual de los recursos para, y la asignación de los recursos.

Publicado 18 artículos originales · ganado elogios 0 · Vistas 446

aprender HILO

Supongo que te gusta

Origin blog.csdn.net/weixin_45678149/article/details/104943364
Recomendado
Clasificación