Hadoop: programadores y tipos de programadores

En Hadoop, podemos recibir múltiples trabajos de diferentes clientes para realizar. El marco Map-Reduce se utiliza para realizar múltiples tareas en paralelo en un clúster típico de Hadoop para procesar conjuntos de datos de gran tamaño a un ritmo rápido. Este Framework Map-Reduce se encarga de programar y monitorear las tareas dadas por diferentes clientes en un clúster de Hadoop. Pero este método de programación de trabajos se usa antes de Hadoop 2

Ahora, en Hadoop 2, tenemos YARN (Yet Another Resource Negotiator). En YARN tenemos Daemons separados para realizar la programación de trabajos, el monitoreo y la gestión de recursos como maestro de aplicaciones, administrador de Nodes y administrador de recursos, respectivamente. 

Aquí, Resource Manager es el demonio maestro responsable de rastrear o proporcionar los recursos requeridos por cualquier aplicación dentro del clúster, y Node Manager es el demonio esclavo que monitorea y realiza un seguimiento de los recursos utilizados por una aplicación y envía los comentarios al administrador de recursos. 

Los programadores y el administrador de aplicaciones son los 2 componentes principales del administrador de recursos. El Programador en YARN está totalmente dedicado a programar los trabajos, no puede rastrear el estado de la aplicación. Sobre la base de los recursos necesarios, el programador realiza o podemos decir programar los trabajos. 

Hadoop-Schedulers-and-Types-of-Schedulers

Hay principalmente 3 tipos de programadores en Hadoop:  

  1. Programador FIFO (primero en entrar, primero en salir).
  2. Programador de capacidad.
  3. Programador de ferias.

Estos programadores son en realidad un tipo de algoritmo que usamos para programar tareas en un clúster de Hadoop cuando recibimos requests de diferentes clientes. 

Una cola de trabajo no es más que la colección de varias tareas que hemos recibido de nuestros diversos clientes. Las tareas están disponibles en la cola y debemos programar esta tarea en función de nuestros requisitos. 

A-Job-Queue-in-Hadoop-Schedular

1. Programador FIFO

Como sugiere el nombre FIFO, es decir, Primero en entrar, primero en salir, las tareas o aplicaciones que lleguen primero serán atendidas primero. Este es el programador predeterminado que usamos en Hadoop. Las tareas se colocan en una cola y se realizan en su orden de envío. En este método, una vez programado el trabajo, no se permite ninguna intervención. Entonces, a veces, el proceso de alta prioridad tiene que esperar mucho tiempo ya que la prioridad de la tarea no importa en este método. 

Ventaja: 

  • Sin necesidad de configuración
  • Se le sirve en orden de llegada
  • sencillo de ejecutar

Desventaja:  

  • La prioridad de la tarea no importa, por lo que los trabajos de alta prioridad deben esperar
  • No apto para clúster compartido

fifo-scheduler

2. Programador de capacidad

En Capacity Scheduler tenemos varias colas de trabajo para programar nuestras tareas. El planificador de capacidad permite que múltiples ocupantes compartan un clúster de Hadoop de gran tamaño. En el Programador de capacidad correspondiente a cada cola de trabajo, proporcionamos algunas ranuras o recursos de clúster para realizar la operación del trabajo. Cada cola de trabajo tiene sus propios espacios para realizar su tarea. En caso de que tengamos tareas para realizar en una sola cola, las tareas de esa cola también pueden acceder a los espacios de otras colas, ya que son de uso gratuito, y cuando la nueva tarea ingresa a otra cola, los trabajos se ejecutan en sus propios espacios. del clúster se reemplazan con su propio trabajo. 

Capacity Scheduler también proporciona un nivel de abstracción para saber qué ocupante está utilizando más recursos o espacios del clúster, de modo que el usuario o la aplicación individual no tome espacios inapropiados o innecesarios en el clúster. El Programador de capacidad contiene principalmente 3 tipos de cola que son raíz, padre y hoja, que se utilizan para representar el envío de aplicaciones de clúster, organización o cualquier subgrupo, respectivamente. 

Ventaja: 

  • Lo mejor para trabajar con varios clientes o trabajos prioritarios en un clúster de Hadoop
  • Maximiza el rendimiento en el clúster de Hadoop

Desventaja:  

  • Mas complejo
  • No es fácil de configurar para todos

capacity-scheduler

3. Programador de ferias

El Fair Scheduler es muy similar al del programador de capacidad. La prioridad del trabajo se mantiene en consideración. Con la ayuda de Fair Scheduler, las aplicaciones de YARN pueden compartir los recursos en el gran Hadoop Cluster y estos recursos se mantienen de forma dinámica, por lo que no se necesita capacidad previa. Los recursos se distribuyen de tal manera que todas las aplicaciones dentro de un clúster obtienen la misma cantidad de tiempo. Fair Scheduler toma decisiones de programación en función de la memoria, también podemos configurarlo para que funcione con la CPU. 

Como le dijimos, es similar a Capacity Scheduler, pero lo más importante a tener en cuenta es que en Fair Scheduler cada vez que surge un trabajo de alta prioridad en la misma cola, la tarea se procesa en paralelo reemplazando una parte de los espacios ya dedicados. 

ventajas: 

  • Los recursos asignados a cada aplicación dependen de su prioridad.
  • puede limitar la ejecución simultánea de tareas en un grupo o cola en particular.

Desventajas: La configuración es necesaria.  

fair-scheduler

Publicación traducida automáticamente

Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *