¿Cuál es la diferencia entre Apache Spark y Apache Flink? [cerrado]


¿cuáles son las diferencias entre Apache Spark y Apache Flink?

Will Apache Flinkreplace Hadoop?

Author: mrsrinivas, 2015-01-22

6 answers

Al principio, ¿qué tienen en común? Flink y Spark son plataformas de procesamiento de datos de propósito general y proyectos de alto nivel de la Apache Software Foundation (ASF). Tienen un amplio campo de aplicación y son utilizables para docenas de escenarios de big data. Gracias a expansiones como consultas SQL (Spark: Spark SQL, Flink: MRQL), procesamiento de gráficos (Spark: GraphX, Flink: Spargel (base) y Gelly (biblioteca)), aprendizaje automático (Spark: MLlib, Flink: Flink ML) y procesamiento de secuencias (Spark Streaming, Flink Streaming). Ambos son capaces de ejecutarse en modo independiente, sin embargo, muchos los están utilizando en la parte superior de Hadoop (YARN, HDFS). Comparten un gran rendimiento debido a su naturaleza en la memoria.

Sin embargo, la forma en que logran esta variedad y los casos en los que están especializados difieren.

Diferencias: Al principio me gustaría proporcionar dos enlaces que van en algún detalle sobre las diferencias entre Flink y Spark antes de resumirlo. Si tiene tiempo, eche un vistazo a Apache Flink es el 4G de BigData Analytics Framework y Flink y Spark Similitudes y diferencias

A diferencia de Flink, Spark no es capaz de manejar conjuntos de datos más grandes que la RAM anterior a la versión 1.5.x

Flink está optimizado para procesos cíclicos o iterativos mediante el uso de transformaciones iterativas en colecciones. Esto se logra mediante una optimización de algoritmos de unión, encadenamiento de operadores y reutilización de particiones y ordenación. Sin embargo, Flink también es una herramienta fuerte para el procesamiento por lotes. Flink streaming procesa los flujos de datos como flujos reales, es decir, los elementos de datos se "canalizan" inmediatamente a través de un programa de streaming tan pronto como llegan. Esto permite realizar operaciones de ventana flexibles en flujos. Incluso es capaz de manejar datos tardíos en flujos mediante el uso de marcas de agua. Además Flink proporciona un modo de compatibilidad muy fuerte que hace posible utilizar su tormenta existente, mapa reducir,... código en la ejecución de flink motor

Spark por otro lado se basa en conjuntos de datos distribuidos resilientes (RDD). Esta (principalmente) estructura de datos en memoria le da el poder al paradigma de programación funcional sparks. Es capaz de grandes cálculos por lotes fijando memoria. Spark streaming envuelve los flujos de datos en mini-lotes, es decir, recopila todos los datos que llegan dentro de un cierto período de tiempo y ejecuta un programa por lotes regular en los datos recopilados. Mientras el programa por lotes se está ejecutando, los datos para el siguiente se recoge el mini-lote.

¿Flink reemplazará a Hadoop?

No, no lo hará. Hadoop consta de diferentes partes:

  • HDFS-Hadoop Sistema de archivos distribuido
  • YARN-Yet Another Resource Negotiator (or Resource Manager)
  • MapReduce-El Marco de procesamiento por lotes de Hadoop

HDFS y YARN siguen siendo necesarios como parte integral de los clústeres de BigData. Esos dos están construyendo la base para otros tecnologías distribuidas como motores de consulta distribuidos o bases de datos distribuidas. El caso de uso principal de MapReduce es el procesamiento por lotes para conjuntos de datos más grandes que la RAM del clúster, mientras que Flink está diseñado para el procesamiento de secuencias e iterativo. Entonces, en general, esos dos pueden coexistir, aunque recomendaría encarecidamente ir con flinks más fuertes y más fáciles de usar.

 276
Author: Matthias Kricke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-16 11:14:29

Según Apache Flink & Spark páginas de documentación:

Apache Flink es una plataforma de código abierto para el procesamiento de datos de flujo distribuido y por lotes

Apache Spark™ es un motor rápido y general para el procesamiento de datos a gran escala.

El procesamiento de flujo en tiempo real es USP de Apache Flink.

Flink proporciona API expresivas que permiten a los programadores desarrollar rápidamente datos de streaming aplicación.

Flink está construido para ser un buen ciudadano YARN (que Spark aún no ha logrado), y puede ejecutar trabajos existentes MapReduce directamente en su motor de ejecución.

Echa un vistazo a este artículoformulario infoworld bog publicado por Ian Pointer para más detalles.

Clave diferencias del blog publicado por VON HANS-PETER ZORN Und JASIR EL-SOBHY

  1. Procesamiento de flujo : Mientras Spark es un sistema orientado a lotes que opera en trozos de datos, llamado RDDs, Apache Flink es un sistema de procesamiento de flujos capaz de procesar fila tras fila en tiempo real.
  2. Iteraciones: Al explotar su arquitectura de streaming, Flink le permite iterar de forma nativa sobre datos, algo Spark {[14] } también admite solo como lotes
  3. Gestión de memoria: Spark los trabajos deben optimizarse y adaptarse a conjuntos de datos específicos porque necesita controlar manualmente las particiones y el almacenamiento en caché si desea hacerlo bien
  4. Vencimiento:Flink todavía está en su infancia y tiene solo unos pocos despliegues de producción
  5. Flujo de datos: En contraste con el paradigma de programación procedimental Flink sigue un enfoque de flujo de datos distribuido. Para las operaciones de conjuntos de datos en las que se requieren resultados intermedios además de la entrada regular de una operación, broadcast las variables se utilizan para distribuir los resultados pre calculados a todos los nodos de trabajo

Con respecto a su segunda pregunta, ni Flinkni Spark pueden reemplazar a Hadoop.

Flink es un reemplazo para Hadoop MapReduce ; que funciona tanto en modo por lotes como en streaming, eliminando el mapa y reduciendo los trabajos a favor de un enfoque de gráfico dirigido que aprovecha el almacenamiento en memoria para obtener ganancias masivas de rendimiento.

HDFS (Hadoop Sistema de Archivos Distribuido) y EL HILADO (Otro Negociador de Recursos), que son parte del gran ecosistema Hadoop no puede ser reemplazado por Flink

Echa un vistazo a esta flink-vs-spark presentación de Slim Baltagi, Director de ingeniería de Big data, Capital One.

 45
Author: Ravindra babu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-03 14:26:04

Los programas de Flink están optimizados por un optimizador basado en costos (por ejemplo: motores SQL). Así Flink aplicaciones será necesario re-configuración y mantenimiento cuando las características del clúster de cambio y los datos que evoluciona con el tiempo.

 13
Author: Biraja Ghoshal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-18 20:01:25

Desde el punto de vista de un desarrollador:

Por el momento: Si quieres conseguir un trabajo lo más rápido posible en el entorno de big data, aprende Spark, porque se usa principalmente en el mercado.

Pero en mi opinión Flink es la mejor opción, porque no tengo que enfrentar tantos problemas "fuera de memoria" durante el desarrollo. Flink tiene su propio Administrador de memoria, por lo que en general no necesita preocuparse por él.

 10
Author: lidox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-21 14:05:57

Una de las características únicas de Flink es, procesar flujos de datos fuera de orden usando Marcas de agua

 6
Author: ravthiru,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-29 01:46:02

Spark proporciona streaming casi en tiempo real debido a la arquitectura de micro-lotes, mientras que Apache Flink proporciona streamig en tiempo real verdadero debido a la arquitectura streamig pura basada en la Arquitectura Kappa. Esto es probado por Yahoo streaming Aplicación de referencia y luego de nuevo por la aplicación de yahoo streaming extendido.. Ve a través del video que explica este detalle y me ayudó a entenderlo. https://www.youtube.com/watch?v=WTBsMTpR-mE

 1
Author: Maverick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-02 18:48:20