Hadoop MapReduce es la explicación más detallada del flujo de trabajo de MapReduce.
Introducción a Mapreduce
Hadoop MapReduce se originó a partir del artículo MapReduce publicado por Google. Hadoop MapReduce es en realidad un clon de Google MapReduce. Hadoop 2.0 es la segunda generación del sistema Hadoop y su marco es el más avanzado. Hadoop 2.0 es la segunda generación del sistema Hadoop. Su diseño central incluye HDFS, MapReduce y HDFS se utiliza para el almacenamiento de datos masivos. se utiliza para informática distribuida, YARN se utiliza para la gestión de recursos.
De hecho, un único proceso de reducción de mapas consta de los seis pasos que se muestran en la figura anterior: entrada, división, mapa, reproducción aleatoria, recalculo y resultado final.
Los archivos se almacenarán en HDFS y cada archivo se dividirá en varios bloques de un cierto tamaño, es decir, bloques (Hadoop 1.0 tiene como valor predeterminado 64 M, Hadoop 2.0 tiene como valor predeterminado 128 M), y se implementado en varios nodos de forma predeterminada Almacene 3 copias de seguridad en formato .
MR lee archivos de datos de HDFS a través de Inputformat y fragmenta los datos después de la lectura. La cantidad de fragmentos está determinada por el tamaño del bloque, y luego la cantidad de cada fragmento determina la cantidad de asignaciones. es decir, a un fragmento se le asignará una tarea de mapa para procesarla como una instancia paralela.
¿Cómo determinar el tamaño del archivo dividido?
Los datos ingresan a la función de mapeo y luego la función de mapeo comienza a dividir los datos de acuerdo con reglas específicas. De hecho, esta es nuestra lógica de cálculo personalizada, y la lógica de la función de mapa del programa mr que escribimos generalmente se ejecuta en esta etapa. Para lograr la eficiencia del desarrollo, las aplicaciones empresariales generalmente usan hive sql en lugar de los engorrosos programas mr. Aquí hay una función clásica de mapeo de recuento de palabras para que la revisemos.
Shuffle es un módulo que no necesitamos escribir, pero es muy crítico.
En el mapa, cada función del mapa genera un conjunto de pares clave/valor, y la etapa Shuffle combina pares clave-valor con la misma clave de todos los hosts del mapa (la etapa Combiner se omite aquí) y pasa el resultado combinado al host de reducción como entrada a la función de reducción.
El componente Partitioner es responsable de calcular qué claves deben colocarse en la misma restauración.
La clase HashPartitioner coloca las claves en una función hash y obtiene el resultado. Si dos claves tienen el mismo valor hash, sus pares clave/valor se colocarán en la misma función de reducción.
Veremos cuántos resultados diferentes termina produciendo la función hash y cuántas funciones de deshacer particiones/restauración tiene el trabajo de Hadoop que eventualmente utilizará JobTracker.
Después de pasar por el método Map, los datos primero ingresan al método de partición, marcan los datos para la partición y luego los envían al búfer circular. El tamaño predeterminado del búfer circular es de 100 metros; cuando el búfer de anillo llega a 80, se producirá una escritura de desbordamiento, los datos se clasifican antes de la escritura de desbordamiento y la clasificación se realiza de acuerdo con el orden del índice clave en el diccionario, y el método de clasificación es de clasificación rápida; los datos se escriben según el índice clave y los datos se escriben según el índice clave para ordenar. El método de clasificación es una clasificación rápida; cuando la escritura de desbordamiento genera una gran cantidad de archivos de escritura de desbordamiento, los archivos de escritura de desbordamiento deben fusionarse y ordenarse; y no es posible promediar.
Finalmente, almacene los archivos en el disco según las particiones y espere a que Reducir termine de extraerlos. Cada Reducción extraerá datos de la partición correspondiente en el lado del Mapa. Después de extraer los datos, los datos se almacenan primero en la memoria. Cuando la memoria no es suficiente, los datos se almacenan en el disco. Una vez extraídos todos los datos, utilice la clasificación por combinación para ordenar los datos en la memoria y en el disco. Antes de ingresar al método de restauración, los datos se pueden agrupar. Vale la pena señalar que toda la operación de barajado debe ordenarse tres veces.
La función reducir() toma una lista de claves y sus valores correspondientes como entrada, y luego fusiona los valores con la misma clave de acuerdo con la lógica del programa del propio usuario para generar otra serie de claves. /value pares como salida final Escribir en HDFS.