MapReduce y HDFS son los dos componentes principales de Hadoop que lo hacen tan poderoso y eficiente de usar. MapReduce es un modelo de programación utilizado para el procesamiento eficiente en paralelo de grandes conjuntos de datos de forma distribuida. Los datos primero se dividen y luego se combinan para producir el resultado final. Las bibliotecas para MapReduce están escritas en tantos lenguajes de programación con varias optimizaciones diferentes. El propósito de MapReduce en Hadoop es mapear cada uno de los trabajos y luego lo reducirá a tareas equivalentes para proporcionar menos sobrecarga en la red del clúster y reducir la potencia de procesamiento. La tarea MapReduce se divide principalmente en dos fases Map Phase y Reduce Phase .
Arquitectura MapReduce:
Componentes de la arquitectura MapReduce:
- Cliente: El cliente de MapReduce es quien trae el trabajo a MapReduce para su procesamiento. Puede haber varios clientes disponibles que envíen continuamente trabajos para su procesamiento a Hadoop MapReduce Manager.
- Trabajo: el trabajo de MapReduce es el trabajo real que el cliente quería hacer y que se compone de tantas tareas más pequeñas que el cliente quiere procesar o ejecutar.
- Hadoop MapReduce Master: divide el trabajo en particular en partes de trabajo posteriores.
- Job-Parts: La tarea o sub-trabajos que se obtienen después de dividir el trabajo principal. El resultado de todas las partes del trabajo combinadas para producir el resultado final.
- Datos de entrada: el conjunto de datos que se envía a MapReduce para su procesamiento.
- Datos de salida: El resultado final se obtiene después del procesamiento.
En MapaReducir, tenemos un cliente. El cliente enviará el trabajo de un tamaño particular a Hadoop MapReduce Master. Ahora, el maestro de MapReduce dividirá este trabajo en otras partes de trabajo equivalentes. Estas partes del trabajo se ponen a disposición para Map and Reduce Task. Esta tarea Map and Reduce contendrá el programa según el requisito del caso de uso que la empresa en particular está resolviendo. El desarrollador escribe su lógica para cumplir con el requisito que requiere la industria. Los datos de entrada que estamos utilizando se envían a Map Task y Map generará un par clave-valor intermedio como salida. La salida de Map, es decir, estos pares clave-valor, luego se alimentan al Reducer y la salida final se almacena en el HDFS. Puede haber un número n de tareas Map y Reduce disponibles para procesar los datos según el requisito.
Analicemos las fases de MapReduce para comprender mejor su arquitectura:
La tarea MapReduce se divide principalmente en 2 fases , es decir, fase de mapa y fase de reducción.
- Mapa: como su nombre indica, su uso principal es mapear los datos de entrada en pares clave-valor. La entrada al mapa puede ser un par clave-valor donde la clave puede ser la identificación de algún tipo de dirección y el valor es el valor real que mantiene. La función Map() se ejecutará en su depósito de memoria en cada uno de estos pares clave-valor de entrada y generará el par clave-valor intermedio que funciona como entrada para la función Reducer o Reduce() .
- Reducir: los pares clave-valor intermedios que funcionan como entrada para Reducer se barajan, ordenan y envían a la función Reduce() . Reducer agrega o agrupa los datos en función de su par clave-valor según el algoritmo de reducción escrito por el desarrollador.
Cómo el rastreador de trabajos y el rastreador de tareas tratan con MapReduce:
- Rastreador de trabajos: el trabajo del rastreador de trabajos es administrar todos los recursos y todos los trabajos en el clúster y también programar cada mapa en el Rastreador de tareas que se ejecuta en el mismo Node de datos, ya que puede haber cientos de Nodes de datos disponibles en el clúster.
- Rastreador de tareas: El Rastreador de tareas se puede considerar como los esclavos reales que están trabajando en las instrucciones dadas por el Rastreador de trabajos. Este Rastreador de tareas se implementa en cada uno de los Nodes disponibles en el clúster que ejecuta la tarea Asignar y reducir según las instrucciones del Rastreador de trabajos.
También hay un componente importante de MapReduce Architecture conocido como Job History Server . Job History Server es un proceso daemon que guarda y almacena información histórica sobre la tarea o aplicación, como los registros que se generan durante o después de la ejecución del trabajo que se almacenan en Job History Server.
Publicación traducida automáticamente
Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA