Serie Big Data: introducción al marco

Introducción

hadoop

  • Es un sistema de archivos, más un marco de procesamiento fuera de línea (marco de ejecución map-reduce), que se utiliza principalmente para el almacenamiento de archivos de datos masivos y el cálculo de datos masivos en tiempo no real.
  • La API de nivel superior proporcionada no es muy amigable, y el marco de procesamiento de mapreduce es relativamente lento, y ahora básicamente solo se usa como un sistema de archivos.

Chispa - chispear

  • Es un motor de ejecución que no guarda datos en sí mismo y requiere un sistema de archivos externo para guardar datos, en muchos casos los datos se guardan en base a hadoop.
  • Cuando Spark calcula, coloca datos en la memoria tanto como sea posible (según la memoria) y también proporciona una buena interfaz para los usuarios superiores, incluidas las declaraciones spl (spark sql), que es muy conveniente para procesar datos. Es muchas veces más rápido que el marco de procesamiento de reducción de mapas (basado en disco). Ahora utilícelo básicamente para el procesamiento de datos sin conexión.

tormenta

  • Es un marco de procesamiento de datos en tiempo real que solo proporciona los elementos del marco de transmisión de flujo de datos más básicos y las interfaces de flujo de datos básicas. Los usuarios deben escribir sus propios procedimientos de procesamiento y lógica de procesamiento.

sustancial

  • Es un sistema de procesamiento de datos en tiempo real y tiene un conjunto completo de ecología. La capa superior proporciona muchos operadores de procesamiento de datos (funciones de interfaz) para que los usen los usuarios, lo que es más fácil de usar y conveniente de usar. Muchas empresas lo utilizan ahora para el procesamiento de datos en tiempo real.

Hadoop 、 Spark 、 Flink

Otra URL

Comparación de Hadoop: comparación de los tres marcos de Hadoop, Spark y Flink

1. Comparación del procesamiento de datos

Hadoop está diseñado para el procesamiento por lotes, ingresando una gran cantidad de conjuntos de datos en la entrada a la vez, procesando y produciendo resultados.
Spark: la definición es un sistema de procesamiento por lotes, pero también admite el procesamiento de secuencias.
Flink: admite el procesamiento por lotes y el procesamiento de secuencias. Los dos se pueden ejecutar por separado o en lotes.

2. Comparación de motores de transmisión

Hadoop: MapReduce predeterminado de Hadoop es solo para procesamiento por lotes.
Spark: Spark Streaming utiliza el procesamiento por micro lotes de flujos de datos para lograr el procesamiento por lotes y el procesamiento de flujos casi en tiempo real .
Flink: Flink es un motor de transmisión en tiempo real real que utiliza transmisiones para procesar cargas de trabajo, incluida la transmisión, SQL, micro lotes y procesamiento por lotes.

3. Comparación del flujo de datos

Hadoop: El flujo de datos de cálculo de MapReduce no tiene ningún bucle. Cada etapa utiliza la salida de la etapa anterior y genera la entrada para la siguiente etapa.
Spark: aunque el algoritmo de aprendizaje automático es un flujo de datos cíclicos, Spark lo representa como un gráfico acíclico directo (DAG) o un gráfico acíclico dirigido.
Flink: Flink admite gráficos de dependencia cíclica controlados en tiempo de ejecución, y es muy eficaz para admitir algoritmos de aprendizaje automático.

4. Comparación de modelos de cálculo

Hadoop: MapReduce utiliza un modelo orientado a lotes para procesar datos estáticos por lotes.
Spark: Spark utiliza procesamiento de micro lotes. El procesamiento de micro lotes es esencialmente un modelo de cálculo de "recopilar primero y luego procesar".
Flink: Flink utiliza un modelo de transmisión continua para procesar datos en tiempo real sin ningún retraso en la recopilación o procesamiento de datos.

5. Comparación de desempeño

Hadoop: Hadoop solo admite el procesamiento por lotes y no admite el procesamiento de datos de transmisión. En comparación con Spark y Flink, el rendimiento se reducirá.
Spark: admite el procesamiento de micro lotes, pero la eficiencia del procesamiento de la transmisión no es tan buena como Apache Flink.
Flink: La actuación es muy buena. Flink utiliza operadores de iteración de ciclo cerrado nativos, especialmente para admitir el aprendizaje automático y el procesamiento de gráficos.

6. Comparación de la gestión de la memoria

Hadoop: proporciona administración de memoria configurable, que se puede realizar de forma dinámica o estática.
Spark: proporciona administración de memoria configurable. Desde Spark 1.6, se ha estado moviendo hacia la administración de memoria automática.
Flink: tiene su propio sistema de gestión de memoria, que proporciona una gestión automática de la memoria.

Chispa contra tormenta

Otra URL

Comparación del canto de chispas y susurros de tormenta- 博客 园

Punto de contraste

Spark Streaming

Tormenta

Modelo de cálculo en tiempo real

Cuasi en tiempo real, recopile los datos en un período de tiempo como un RDD y luego proceselos

Puro tiempo real, llega un dato, se procesa un dato

Cálculo de latencia en tiempo real

Segundo nivel

Milisegundos

Rendimiento

alto

bajo

Mecanismo de transacción

Apoyo, pero no perfecto

Soporte perfecto

Robustez / tolerancia a fallos

Puesto de control, WAL, general

ZooKeeper, Acker, muy fuerte

Ajustar dinámicamente el grado de paralelismo

no apoyo

apoyar

Escenarios de uso de tormentas

1. Se recomienda su uso en escenarios que requieren tiempo real puro y no pueden tolerar una demora de más de 1 segundo, como los sistemas financieros en tiempo real, que requieren análisis y transacciones financieras en tiempo real puro.
2. Además, si se requieren transacciones confiables para las funciones de computación en tiempo real Mecanismo y mecanismo de confiabilidad, es decir, el procesamiento de datos es completamente preciso y no puede haber más ni menos. También puede considerar el uso de Storm.
3. Si necesita dinámicamente ajustar el paralelismo del programa de cálculo en tiempo real para los períodos pico y pico bajo. Maximizar el uso de los recursos del clúster (generalmente en pequeñas empresas, donde los recursos del clúster son escasos), también puede considerar el uso de Storm
4. Si un big data sistema de aplicación, es pura computación en tiempo real, sin la necesidad de ejecutar consultas interactivas SQL en el medio, para operadores de transformación complejos, etc., Storm es una mejor opción

Escenarios de uso de Spark Streaming

1. Si ninguno de los tres puntos anteriores es aplicable a Storm en escenarios en tiempo real, es decir, no se requieren mecanismos de transacción potentes y confiables en tiempo real puro, y no se requiere que el paralelismo se ajuste dinámicamente, entonces Spark Streaming puede ser considerado.
2. Uno de los factores más importantes al considerar el uso de chispa ramificación debe ser la consideración macro de todo el proyecto, es decir, si un proyecto incluye el procesamiento por lotes sin conexión, consulta interactiva y otras funciones de negocios, además de real cálculo de tiempo y cálculo en tiempo real.También puede involucrar procesamiento por lotes de alta latencia, consultas interactivas y otras funciones, luego se debe preferir el ecosistema Spark, utilizando Spark Core para desarrollar procesamiento por lotes sin conexión, Spark SQL para desarrollar consultas interactivas, y Spark Streaming para desarrollar la informática en tiempo real. Integración de Seam, que proporciona una escalabilidad muy alta al sistema

Análisis de los pros y los contras de Spark Streaming y Storm

        Spark Streaming definitivamente no es mejor que Storm. Estos dos marcos son excelentes en el campo de la computación en tiempo real, pero son buenos en diferentes subescenarios.

        Spark Streaming es solo mejor que Storm en términos de rendimiento, y el rendimiento siempre ha sido muy similar al de Spark Streaming, y quienes depreciaron Storm lo enfatizaron. Pero la pregunta es, ¿presta tanta atención al rendimiento en todos los escenarios de computación en tiempo real? Realmente no. Por lo tanto, no es confiable decir que Spark Streaming es más fuerte que el rendimiento de Storm.

        Storm es mucho mejor que Spark Streaming en términos de latencia en tiempo real. El primero es en tiempo real puro y el segundo es casi en tiempo real. Además, el mecanismo de transacción de Storm, la robustez / tolerancia a fallas y el ajuste dinámico del paralelismo son mejores que Spark Streaming.

        Una cosa sobre Spark Streaming es que Storm es absolutamente incomparable, es decir: está ubicado en la pila de tecnología ecológica Spark, por lo que Spark Streaming se puede integrar sin problemas con Spark Core y Spark SQL, lo que significa que podemos procesar la mitad de la realidad. Procesamiento de tiempo: datos, retrasar inmediatamente el procesamiento por lotes, la consulta interactiva y otras operaciones en el programa sin problemas. Esta característica mejora enormemente las ventajas y funciones de Spark Streaming.

Chispa vs flink

Otra URL

 ¿Cómo se compara la chispa con el flink? ¿Cuál es la situación actual en China? - Saber casi

Articulo Chispa - chispear Firma
Madurez Alto (debido al inicio temprano) bajo
Atención Procesamiento por lotes Procesamiento de flujo
tiempo real Casi en tiempo real Tiempo real real
Popularidad Se utilizan más empresas. Menos (debido al inicio tardío)
rendimiento Más débil que Flink Más fuerte que Spark
tendencia de desarrollo La tendencia de desarrollo no es tan buena como Flink La tendencia de desarrollo es mejor que Spark
Lugar util Procesamiento por lotes Mecanismo de tiempo, gestión de estado, integración de lotes de flujo

 

Supongo que te gusta

Origin blog.csdn.net/feiying0canglang/article/details/113957602
Recomendado
Clasificación