Red de conocimiento informático - Problemas con los teléfonos móviles - Spark barajado y MapReduce barajado

Spark barajado y MapReduce barajado

División de etapas de barajado

Etapa de mapa y etapa de Reducción

Tarea

MapTask y ReduceTask

Proceso de barajado

Etapa de mapa aleatoria: partición - gt; ordenar - gt; fusionar

① Antes de que los datos se desborden del búfer circular y se escriban en el disco, es necesario particionarlos dentro del área. y luego ordenar

②Cuando los datos en el búfer de anillo alcancen el umbral (80), se desbordarán al disco en forma de un archivo pequeño. Este proceso puede abrir el combinador

③El archivo pequeño escrito por el desbordamiento Merge de acuerdo con la misma partición

Mezclar en la fase Reducir: copiar datos-gt; sort-gt

① One ReduceTask es responsable de los datos de una partición y deben recuperarse de múltiples MapTasks Copiar los datos de la misma partición a la máquina

②Un ReduceTask es responsable de los datos de una partición, y los datos de la misma partición deben recuperarse de múltiples MapTasks. copiarse desde el mismo MapTask a la máquina.

① One ReduceTask es responsable de los datos de una partición y necesita copiar datos de la misma partición de múltiples MapTasks a la máquina.

② Los datos copiados se almacenan primero en la memoria y luego en el disco, y luego se clasifican y fusionan para lograr una partición de datos ordenada.

El significado de barajar: solo reducir Solo existe barajar Y el significado de barajar es proporcionar servicios para reducir.

Introducción

① Ciertos operadores de Spark activarán la reproducción aleatoria, y el propósito de la reproducción aleatoria es redistribuir datos entre diferentes particiones.

② Durante el proceso de reproducción aleatoria, los datos se transmitirán entre máquinas, lo que consumirá una gran cantidad de E/S de red y serialización, lo que afectará el rendimiento.

③ No hay garantía de que los datos de la nueva partición estén en orden después de la mezcla. Esto es diferente de MR (donde los datos en una partición se ordenan después de barajar)

Pero puede llamar al operador de clasificación para ordenar los datos en una partición.

④ El operador de reproducción aleatoria se ejecuta en dos pasos: mapTask organiza datos (mezcla y escritura), reduceTask (lectura aleatoria)

⑤ MapTask de Spark primero escribirá los datos Cuando la memoria esté vacía Si no es suficiente, ordenará los datos en el área de datos y luego los desbordará al disco.

mapTask primero escribirá los datos en la memoria y luego los desbordará al disco.

Operadores que generan barajados

①Los operadores de partición recalculados por repartición y agregación.

②?ByKey: excepto countByKey, todos provocarán una mezcla

③cogrupo y se unirán

Impacto en el rendimiento

La mezcla se realiza entre datos agregación y distribución de particiones, el intercambio de datos de múltiples nodos en el clúster puede involucrar discos, el intercambio de datos involucra E/S de disco, serialización y E/S de red, lo que consume rendimiento.

¡La mezcla aleatoria en Spark requiere mucho tiempo y rendimiento y debe evitarse!

La reproducción aleatoria en Spark y la reproducción aleatoria en MapReduce tienen la misma función, que es transferir datos entre máquinas, pero los detalles son ligeramente diferentes.