¿Qué es la arquitectura de hilo Hadoop y sus componentes?
Publicado: 2020-02-10Tabla de contenido
Hadoop HILO Introducción
YARN es el componente principal de Hadoop v2.0. YARN ayuda a abrir Hadoop al permitir procesar y ejecutar datos para el procesamiento por lotes, el procesamiento de secuencias, el procesamiento interactivo y el procesamiento de gráficos que se almacenan en HDFS. De esta manera, ayuda a ejecutar diferentes tipos de aplicaciones distribuidas que no sean MapReduce.
En la arquitectura YARN, la capa de procesamiento está separada de la capa de gestión de recursos. Crear una división entre el administrador de aplicaciones y el administrador de recursos era responsabilidad del rastreador de trabajos en la versión de Hadoop 1.0. YARN permite que los datos almacenados en HDFS (Sistema de archivos distribuidos de Hadoop) sean procesados y ejecutados por varios motores de procesamiento de datos, como procesamiento por lotes, procesamiento de flujo, procesamiento interactivo, procesamiento de gráficos y muchos más. Así, la eficiencia del sistema se incrementa con el uso de YARN. El procesamiento de la solicitud se programa en YARN a través de sus diferentes componentes. Muchos tipos diferentes de recursos también se asignan progresivamente para una utilización óptima. YARN ayuda mucho en el uso adecuado de los recursos disponibles, lo cual es muy necesario para el procesamiento de un alto volumen de datos.
¿Por qué HILO?
MapReduce realiza funciones de Gestión y Procesamiento de Recursos. Hadoop v1.0 también se conoce como MapReduce Versión 1 (MRV1). Solo había un único maestro para Job Tracker.
No creerás cómo este Programa Cambió la Carrera de los EstudiantesEn la versión anterior de Hadoop, que es Hadoop versión 1.0, que también se conoce como MapReduce versión 1 (MRV1), se usa para realizar la tarea de gestión de procesos y recursos por sí mismo. Tiene un módulo de seguimiento de trabajos que se encarga de todo. Por lo tanto, es el único maestro que asigna recursos para las aplicaciones, realiza la programación de la demanda y también supervisa los trabajos de procesamiento en el sistema. La versión 1.0 de Hadoop reduce las tareas y asigna mapas en varios subprocesos que se denominan rastreadores de tareas. Task Tracker también informa el progreso de los procesos de manera periódica. Pero el problema principal no es ese, el problema es este diseño de un maestro único para todos, lo que resulta en un problema de cuello de botella. Además, la utilización de los recursos computacionales era ineficiente. Por lo tanto, la escalabilidad se convirtió en un problema con esta versión de Hadoop. Pero en el lado positivo, este problema lo resuelve YARN, un componente central vital en su sucesor Hadoop versión 2.0 que fue presentado en el año 2012 por Yahoo y Hortonworks. La idea básica detrás de este alivio es separar MapReduce de la gestión de recursos y la programación de trabajos en lugar de un solo maestro. Por lo tanto, YARN ahora es responsable de la programación de trabajos y la gestión de recursos.
En Hadoop 2.0, YARN introdujo el concepto de maestro de aplicaciones y administrador de recursos. En todo el clúster de Hadoop, el administrador de recursos supervisa la utilización de los recursos.
Hay algunas características de YARN por las que se hizo muy famoso, que son:

- Tenencia múltiple: YARN ha permitido el acceso a múltiples motores de procesamiento de datos, como el motor de procesamiento por lotes, el motor de procesamiento de flujo, el motor de procesamiento interactivo, el motor de procesamiento de gráficos y mucho más. Esto le ha dado a la empresa el beneficio de la multitenencia.
- Utilización de clústeres: los clústeres se utilizan de manera optimizada porque los clústeres se usan dinámicamente en Hadoop con la ayuda de YARN.
- Compatibilidad : YARN también es compatible con la primera versión de Hadoop, es decir, Hadoop 1.0, porque utiliza las aplicaciones map-reduce existentes. Entonces, YARN también se puede usar con Hadoop 1.0.
- Escalabilidad : el programador de Resource Manager de YARN permite que miles de clústeres y nodos sean administrados y ampliados por Hadoop.
Componentes de HILO
- Envase:
En el Contenedor, uno puede encontrar recursos físicos como un disco en un solo nodo, núcleos de CPU, RAM. Container Launch Context (CLC) se utiliza para invocar contenedores. Datos sobre las dependencias, tokens de seguridad, variables de entorno que se mantienen como un registro conocido como Contexto de lanzamiento de contenedor (CLC).
- En un host específico, una aplicación solo puede usar la memoria especificada de la CPU y la memoria. Esta cantidad de memoria especificada solo se puede usar después de que el Contenedor haya otorgado el permiso.
- Container Launch Context se utiliza para administrar contenedores YARN. También se le llama Container LifeCycle (CLC). Los comandos necesarios para la creación del proceso se almacenan en este registro. También guarda la carga útil para los servicios de Node Manager, tokens de seguridad, dependencias, mapa de variables de entorno.
- Maestro de aplicaciones:
En un marco, cuando se envía un solo trabajo, se llama una aplicación. El monitoreo del progreso de la aplicación, el seguimiento del estado de la aplicación, la negociación de recursos con el administrador de recursos es responsabilidad del administrador de la aplicación. Todos los requisitos para que una aplicación se ejecute se realizan mediante el envío del Contexto de lanzamiento del contenedor (CLC). El maestro de la aplicación publica el contexto de lanzamiento del contenedor (CLC) solicitando el contenedor al administrador de nodos. De vez en cuando, el administrador de recursos recibe un informe de estado después de que se haya iniciado la aplicación.

- Administrador de nodos:
El administrador de nodos se encarga de los nodos individuales en el clúster de Hadoop y también administra los contenedores relacionados con cada nodo específico. Se registra con el Administrador de recursos y envía el estado de salud de cada nodo al Administrador de recursos, indicando si el proceso del nodo ha terminado de trabajar con el recurso. Como su objetivo principal es administrar cada contenedor de nodo específico que asigna el administrador de recursos. El administrador de nodos también crea un proceso de contenedor cuando lo solicita el maestro de aplicaciones. Cuando el maestro de la aplicación envía y solicita el contenedor adjunto del administrador de nodos mediante un CLC (Container Launch Context) que incluye todo lo que una aplicación necesita para ejecutarse. Luego, el administrador de nodos crea el contenedor de procesos solicitado y lo ejecuta. El administrador de nodos también es responsable de monitorear el uso de recursos por contenedor individual e informarlo al administrador de recursos. Por lo tanto, el administrador de nodos y el administrador de recursos colaboran para comunicarse entre nodos y administrar el uso de recursos por parte de cada nodo en el clúster. También puede eliminar contenedores si lo indica el administrador de recursos. Finalmente, los administradores de nodos registran todo mediante el sistema de administración de registros.
El administrador de nodos se ocupa de un nodo en particular. El administrador de nodos administra el flujo de trabajo y la aplicación del nodo. Se realiza la gestión de registros y el administrador de nodos supervisa el uso de recursos. El administrador de recursos da instrucciones para eliminar un contenedor al administrador de nodos. El maestro de la aplicación solicita al administrador de nodos que inicie el proceso del contenedor. La creación de un proceso contenedor es responsabilidad del Node Manager.
- Administrador de recursos:
La administración de recursos y la asignación de todas las aplicaciones es responsabilidad del Administrador de recursos y es el demonio maestro de YARN. Las solicitudes recibidas por el administrador de recursos se reenvían al administrador de nodos correspondiente. De acuerdo con la aplicación, el administrador de recursos asigna los recursos para su finalización.
- Se optimiza la utilización del clúster, como mantener activo el uso de todos los recursos frente a diferentes tipos de limitaciones, como SLA, equidad y garantías de capacidad.
- El Administrador de recursos realiza la asignación de los recursos disponibles.
- El administrador de recursos arbitra los recursos del clúster.
- El procesamiento real de las solicitudes tiene lugar en los nodos y los administradores de nodos lo administran. Cada vez que recibe alguna solicitud de procesamiento, transfiere las solicitudes por partes a sus correspondientes administradores de nodo.
- Resource Manager es la máxima autoridad para la asignación de recursos.
Hay dos componentes principales del Administrador de recursos, que son: –

- Gestor de aplicaciones -
El administrador de aplicaciones es responsable de administrar un conjunto de tareas o aplicaciones enviadas. Primero verifica y valida las especificaciones de la solicitud presentada y puede rechazar las solicitudes si no hay suficientes recursos disponibles. También garantiza que no exista ninguna otra aplicación con la misma ID que ya se haya enviado que pueda ser causada por un cliente erróneo o malicioso. Luego reenvía la solicitud enviada después de la validación al programador. Finalmente, también observa los estados de las aplicaciones y administra las aplicaciones terminadas para ahorrar algo de memoria del Administrador de recursos. El administrador de aplicaciones mantiene una memoria caché de las aplicaciones terminadas y saca las aplicaciones terminadas viejas para acomodar el espacio para las aplicaciones enviadas recientemente.
- programador -
Según la disponibilidad de recursos y la asignación de aplicaciones, Scheduler programa las tareas. No hay otra tarea realizada por el programador como no reiniciar el trabajo después de fallar, rastrear o monitorear las tareas. Los diferentes tipos de complementos del programador son Fair Scheduler y Capacity Scheduler, que son compatibles con el programador YARN para la partición de los recursos del clúster.
Pasos del flujo de trabajo de la aplicación en Hadoop YARN
El cliente presenta una solicitud.
- El administrador de aplicaciones se inicia con la asignación del contenedor por parte del administrador de recursos.
- El Administrador de recursos y el Administrador de aplicaciones se registran entre sí.
- El Administrador de aplicaciones realiza la negociación del Contenedor con el Administrador de recursos.
- El administrador de nodos inicia el contenedor después de recibir una notificación del administrador de aplicaciones.
- La ejecución del código de la aplicación se realiza en el contenedor.
- El administrador de aplicaciones o el administrador de recursos supervisa el estado de la aplicación después de que el cliente se comunique con ella.
- La cancelación del registro de Application Manager se realiza con Resource Manager una vez que se completa el proceso.
Terminando
Si está interesado en saber más sobre Big Data, consulte nuestro programa PG Diploma in Software Development Specialization in Big Data, que está diseñado para profesionales que trabajan y proporciona más de 7 estudios de casos y proyectos, cubre 14 lenguajes y herramientas de programación, prácticas talleres, más de 400 horas de aprendizaje riguroso y asistencia para la colocación laboral con las mejores empresas.
Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.