[Big Data] MapReduce

Mapa reducido

Un marco de programación para programas de computación distribuida es el marco central para que los usuarios desarrollen "aplicaciones de análisis de datos basadas en Hadoop".

Funciones principales de MapReduce

Con el código de lógica empresarial escrito por el usuario y viene con componentes predeterminados para integrar un programa informático distribuido completo (código de integración, volverse adecuado para ejecutarse en un programa distribuido) y ejecutar en un clúster Hadoop.

Ventajas de MapReduce :

  • MapReduce es fácil de programar: simplemente implementa algunas interfaces para completar un programa distribuido, que se puede distribuir a una gran cantidad de máquinas de PC baratas para ejecutar. En otras palabras, escribir un programa distribuido es exactamente lo mismo que escribir un programa en serie simple .
  • MapReduce tiene una buena escalabilidad: después de que los recursos informáticos no están satisfechos, puede expandir su poder de cómputo simplemente agregando máquinas y mejorar la confiabilidad a través del mecanismo de copia.
  • Alta tolerancia a fallas: por ejemplo, si una de las máquinas se cuelga, la tarea de cálculo anterior se puede transferir a otro nodo, para que la tarea no falle y este proceso sea automático .
  • Adecuado para el procesamiento masivo de datos fuera de línea por encima del nivel PB: para lograr operaciones concurrentes de miles de clústeres.

Desventajas de MapReduce :

  • MapReduce no puede devolver resultados en milisegundos o segundos como mysql.
  • No es bueno para la informática de transmisión, el conjunto de datos introducido por MapReduce es estático .
  • No es bueno en el cálculo de DAG

Las ideas centrales de programación de MapReduce:

Tarea de mapeo ——> es dividir el archivo , dividir cada línea de entrada y salida, hola palabra, dividir en forma de valor clave y entregarlo al proceso ruduce para su posterior procesamiento.

Reducir tarea ——> es contar los resultados del mapa.


La entrada del mapa también tiene la forma de key1 y value1, key1 es el desplazamiento y value1 es el contenido de cada línea.

Compensar:

hello word

hello nihao

0 1 2 3 4 5 6 7

map(0,“hello word”)

map(12,“hello nihao”)

//空格算一个,换行不计

La salida value2 del mapa es un elemento y value3 es un iterador de colección, que es una colección de value2

reduce(hello,(1,1,1,1)) //map的输出作为reduce的输入,将相同key放在一起作为一个集合

Razones para usar tipos de datos en Hadoop:

student{
string name;
string age;
string set;
}              java封装后通过网络传输——————————>100kb
               hadoop类型已经实现了序列化传输——————————>10kb


Publicación por entregas

Consiste en convertir objetos en la memoria en secuencias de bytes (u otros protocolos de transferencia de datos) para su almacenamiento en disco (persistencia) y transmisión de red, y deserialización y viceversa.

Características de la serialización de hsdoop:

  • Uso compacto y eficiente del espacio de almacenamiento. En el ejemplo anterior, solo se transmite (nombre, edad, sexo)
  • Desarrollo adicional rápido y pequeño para la lectura y escritura de datos.
  • Escalable, actualización con la actualización del protocolo de comunicación.
  • Admite interacción en varios idiomas, r, scala, c ++

 

Flujo de trabajo detallado de MapReduce:

 

Mecanismo Shuffer:

Después del método de mapa, el procesamiento de datos antes del método de reducción se llama shuffle

Búfer de anillo: no hay cabeza ni cola, desbordamiento al 80%

El proceso de reproducción aleatoria es solo del paso 7 al paso 16.

  1. maptask recopila la salida de pares de kv mediante nuestro método map () y los coloca en el búfer de memoria.
  2. El archivo del disco local se desborda continuamente del búfer de memoria y es posible que se desborden varios archivos.
  3. Varios archivos de desbordamiento se fusionarán en un archivo de desbordamiento grande
  4. Durante el proceso de desbordamiento y el proceso de fusión, se debe llamar al particionador para particionar y ordenar las claves.
  5. De acuerdo con su propio número de partición, reducetask va a cada máquina maptask para buscar los datos de partición de resultado correspondientes.
  6. reducetask buscará los archivos de resultados de diferentes tareas de mapa en la misma partición. reducetask fusionará estos archivos (fusionará y ordenará).
  7. Después de fusionarse en un archivo grande, el proceso de reproducción aleatoria finaliza y luego se ingresa el proceso de operación lógica de reducetarea (saque un grupo de pares clave-valor del archivo y llame al método de reducción definido por el usuario.

Resumen de reproducción aleatoria:

El tamaño del búfer afectará la eficiencia de ejecución de mapreduce: en principio, cuanto mayor sea el búfer, menor será el número de E / S de disco y más rápida será la velocidad de ejecución.

 

 

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/Qmilumilu/article/details/104650793
Recomendado
Clasificación