Quelle est la différence entre Apache Spark et Apache Flink? [fermé]

quelles sont les différences entre Apache Spark et Apache Flink ?

Sera Apache Flink remplacer Hadoop ?

214
demandé sur mrsrinivas 2015-01-22 09:33:31

6 réponses

au début, qu'ont-ils en commun? Flink et Spark sont à la fois des plates-formes de traitement de données polyvalentes et des projets de haut niveau de La Apache Software Foundation (ASF). Ils ont un large champ d'application et sont utilisables pour des dizaines de scénarios de big data. Grâce à des extensions telles que les requêtes SQL (Spark: Spark SQL, Flink: MRQL), le traitement de graphiques (Spark: GraphX, Flink: Spargel (base) et Gelly (bibliothèque)), l'apprentissage machine (Spark: MLlib, Flink: Flink ML) et le traitement de flux (Spark Streaming, Flink Streaming). Les deux sont capables de fonctionner en mode autonome, mais beaucoup les utilisent en plus de Hadoop (fil, HDFS). Ils partagent une performance forte en raison de leur nature en mémoire.

cependant, la façon dont ils atteignent cette variété et les cas sur lesquels ils sont spécialisés diffèrent.

différences: Au début, je voudrais fournir deux liens qui vont dans le détail sur les différences entre Flink et Spark avant de le résumer jusqu'. Si vous avez le temps de jeter un oeil à Apache Flink est le 4G de BigData Analytics Framework et Flink et étincelles similitudes et différences

contrairement à Flink, Spark n'est pas capable de traiter des ensembles de données plus grands que la mémoire vive avant la version 1.5.x

Flink est optimisé pour cycliques ou un processus itératif en utilisant itératif transformations sur les collections. C'est réalisé par une optimisation des algorithmes de jointure, chaînage opérateur et réutilisation du partitionnement et du tri. Cependant, Flink est également un outil puissant pour le traitement par lots. Flink streaming traite les flux de données comme des flux réels, c'est-à-dire que les éléments de données sont immédiatement "pipelinés" par un programme de streaming dès leur arrivée. Cela permet d'effectuer des opérations de fenêtre flexibles sur les flux. Il est même capable de traiter les données tardives dans les flux en utilisant des filigranes. En outre, Flink fournit un mode de compatibilité forte qui permet d'utiliser votre Tempête existante, carte réduire, ... code sur le moteur d'exécution flink

Spark est par contre basé sur des ensembles de données réparties (RDDs). Cette structure de données (principalement) en mémoire donne le pouvoir de créer un paradigme de programmation fonctionnelle. Il est capable de grands calculs de fournée en épinglant la mémoire. Spark stream enroule les flux de données en mini-lots, c'est-à-dire qu'il recueille toutes les données qui arrive dans une certaine période de temps et exécute un programme de lot régulier sur les données recueillies. Pendant que le programme batch est en cours d'exécution, les données pour le prochain mini-batch sont collectées.

est-ce que Flink va remplacer Hadoop?

Non. Hadoop se compose de différentes parties:

  • HDFS-Hadoop Distributed Filesystem
  • fils - encore un autre négociateur des ressources (ou Gestionnaire des ressources)
  • MapReduce - Le traitement par lots "Cadre de 151960920" Hadoop

HDFS et fils sont encore nécessaires en tant que partie intégrante des clusters BigData. Ces deux - là construisent la base pour d'autres technologies distribuées comme les moteurs d'interrogation distribués ou les bases de données distribuées. Le principal cas D'utilisation de MapReduce est le traitement par lots pour des ensembles de données plus grands que la mémoire vive (RAM). de la grappe tandis que Flink est conçu pour le traitement de flux et itérative. Donc, en général, ces deux - là peuvent coexister même si je recommande fortement d'aller avec flinks plus fort et plus facile à utiliser les capacités de fournée.

276
répondu Matthias Kricke 2016-09-16 11:14:29

Comme par Apache Flink & l'Étincelle pages de documentation:

Apache Flink est une plateforme open source pour la distribution de flux et des lots de traitement de données

Apache Spark™ est un moteur rapide et général pour le traitement de données à grande échelle.

temps Réel de traitement de flux est de l'USP de Apache Flink .

Flink fournit des API expressives qui permettent aux programmeurs de développer rapidement des applications de données en continu.

Flink est construit pour être un bon fils citoyen (dont L'étincelle n'a pas tout à fait atteint encore), et il peut exécuter MapReduce travaux existants directement sur son moteur d'exécution.

Regardez ce article formulaire infoworld bog posté par Ian "Pointeur 1519140920" pour plus de détails.

Key differences from blog posted by VON HANS-PETER ZORN UND JASIR EL-SOBHY

  • Stream Processing : tandis que Spark est un système orienté par lots qui opère sur des morceaux de données, appelé RDDs, Apache Flink est un système de traitement de flux capable de traiter ligne après ligne dans la vraie temps.
  • itérations: en exploitant son architecture de streaming, Flink vous permet de nativement itérer sur les données, quelque chose étincelle prend également en charge que les lots
  • gestion de la mémoire : Spark les tâches doivent être optimisées et adaptées à des ensembles de données spécifiques parce que vous avez besoin de contrôler manuellement le partitionnement et la mise en cache si vous voulez bien faire les choses
  • Maturité : Flink est encore à ses débuts et a, mais quelques déploiements de production
  • Data Flow : en contraste avec le paradigme de programmation procédurale Flink suit une approche de flux de données distribuées. Pour les opérations d'ensemble de données où des résultats intermédiaires sont requis en plus de l'entrée régulière d'un opération, variables de diffusion sont utilisés pour distribuer les résultats pré-calculés à tous les noeuds de travailleurs
  • concernant votre deuxième question, ni Flink ni Spark ne peut remplacer Hadoop .

    Flink est un remplacement pour Hadoop MapReduce ; qui fonctionne à la fois en mode discontinu et en mode streaming, éliminant la carte et de réduire les emplois en faveur de une approche graphique dirigée qui exploite le stockage en mémoire pour des gains de performance massifs.

    HDFS (Hadoop Distributed File System) et de FILS ( Encore une Autre Ressource Négociateur) , qui font partie de la grande Hadoop éco système ne peut pas être remplacé par Flink

    Regardez cette flink-vs-spark présentation de Slim Baltagi, Directeur du Big data ingénierie, Capital One.

    45
    répondu Ravindra babu 2017-05-03 14:26:04

    Flink programmes sont optimisés par l'optimiseur basé sur les coûts (e.g: SQL moteurs). Les applications Flink devront donc être reconfigurées et mises à jour chaque fois que les caractéristiques du cluster changent et que les données évoluent avec le temps.

    13
    répondu Biraja Ghoshal 2015-08-18 20:01:25

    du point de vue d'un développeur:

    en ce moment: si vous voulez obtenir un emploi aussi vite que possible dans l'environnement big data, apprenez Spark, car il est principalement utilisé sur le marché.

    mais à mon avis Flink est le meilleur choix, parce que je n'ai pas à faire face à tant de" hors-de-mémoire " problèmes au cours du développement. Flink a son propre Gestionnaire de Mémoire, donc, en général, vous n'avez pas besoin de s'en soucier.

    10
    répondu lidox 2016-11-21 14:05:57

    Flink est l'une des caractéristique unique est, le traitement de Flux de données à l'aide de Filigranes

    6
    répondu ravthiru 2016-07-29 01:46:02

    Spark fournit un streaming en temps quasi réel grâce à une architecture de micro-battage, tandis Qu'Apache Flink fournit un streamig en temps réel grâce à une architecture streamig pure basée sur L'Architecture Kappa. Cela est prouvé par Yahoo streaming Benchmark Application et puis à nouveau par yahoo streaming étendue application.. Parcourez la vidéo qui explique ce détail et m'a aidé à le comprendre. https://www.youtube.com/watch?v=WTBsMTpR-mE

    1
    répondu Maverick 2016-10-02 18:48:20