Was sind die Unterschiede zwischen Apache Spark und Apache Flink? [abgeschlossen

datascience.stackexchange https://datascience.stackexchange.com/questions/4968

  •  16-10-2019
  •  | 
  •  

Frage

Sowohl Apache-Spark- als auch Apache-Flink-Projekte behaupten ziemlich ähnliche Funktionen.

Was ist der Unterschied zwischen diesen Projekten? Gibt es einen Vorteil entweder im Spark oder in Flink?

Vielen Dank

War es hilfreich?

Lösung

Flink ist der Apache -Umbenennen des Stratosphärenprojekt von mehreren Universitäten in Berlin. Es hat nicht den gleichen industriellen Halt und die gleiche Dynamik wie das Spark -Projekt, aber es erscheint schön und reifer als beispielsweise Dryad. Ich würde sagen, es lohnt sich, zumindest für den persönlichen oder akademischen Gebrauch zu untersuchen, aber für den industriellen Einsatz würde ich immer noch Funken bevorzugen, was zu diesem Zeitpunkt den Kampf getestet wird. Für eine technische Diskussion siehe Dieser Quora -Beitrag von Committern in beiden Projekten.

Andere Tipps

Einen weisen Vergleich zwischen Funke vs Flink:

  1. Datenverarbeitung

    Funke: Apache Spark ist auch Teil des Hadoop -Ökosystems. Es ist auch ein Stapelverarbeitungssystem im Herzen, unterstützt aber auch die Stream -Verarbeitung.

    Flink: Apache Flink bietet eine einzelne Laufzeit für die Streaming- und Stapelverarbeitung.

  2. Streaming -Engine

    Funke: Apache Spark-Streaming verarbeitet Datenströme in Mikro-Batches. Jede Charge enthält eine Sammlung von Ereignissen, die über die Chargenperiode angekommen sind. Für Anwendungsfälle reicht es jedoch nicht aus, in denen wir große Ströme von Live -Daten verarbeiten und Ergebnisse in Echtzeit liefern müssen.

    Flink: Apache Flink ist die wahre Streaming -Engine. Es verwendet Streams für Workloads: Streaming, SQL, Micro-Batch und Stapel. Batch ist ein endlicher Satz von Streamed -Daten.

  3. Datenfluss

    Funke: Obwohl der Algorithmus des maschinellen Lernens ein zyklischer Datenfluss ist, repräsentiert Spark es als (DAG) direkte acyclische Graphen.

    Flink: Flink verfolgt einen anderen Ansatz als andere. Es unterstützt das kontrollierte zyklische Abhängigkeitsdiagramm in der Laufzeit. Dies hilft, die Algorithmen für maschinelles Lernen auf sehr effiziente Weise darzustellen.

  4. Berechnungsmodell

    Funke: Spark hat Mikro-Batching übernommen. Mikro-Stapel sind im Wesentlichen ein Rechenmodell „Sammeln und dann“.

    Flink: Flink hat einen kontinuierlichen fließenden, operatorbasierten Streaming-Modell angewendet. Ein kontinuierlicher Durchflussoperator verarbeitet Daten, wenn er eintrifft, ohne Verzögerung beim Sammeln der Daten oder der Verarbeitung der Daten.

  5. Leistung

    Funke: Obwohl Apache Spark einen hervorragenden Hintergrund in der Gemeinschaft hat und jetzt als am meisten gereiftes Gemeinschaft angesehen wird. Die Stream-Verarbeitung ist jedoch nicht viel effizient als Apache Flink, da die Verarbeitung von Mikro-Batch verwendet wird.

    Flink: Die Leistung von Apache Flink ist im Vergleich zu jedem anderen Datenverarbeitungssystem hervorragend. Apache Flink verwendet native Operationen für geschlossene Schleifen, die das maschinelle Lernen und die Grafikverarbeitung schneller machen, wenn wir Hadoop vs Spark vs Flink vergleichen.

  6. Speicherverwaltung

    Funke: Es bietet eine konfigurierbare Speicherverwaltung. Die neueste Veröffentlichung von Spark 1.6 hat sich zur Automatisierung des Speichermanagements bewegt.

    Flink: Es bietet eine automatische Speicherverwaltung. Es hat ein eigenes Speicherverwaltungssystem, das von Javas Müllsammler getrennt ist.

  7. Fehlertoleranz

    Funke: Apache Spark Streaming erholt verlorene Arbeiten und ohne zusätzlichen Code oder Konfiguration liefert es genau die Semantik außerhalb des Box. Lesen Sie mehr über Spark -Fehlertoleranz.

    Flink: Der Fehlertoleranzmechanismus, gefolgt von Apache Flink, basiert auf verteilten Schnappschüssen mit Chandy-Lamport. Der Mechanismus ist leicht, was dazu führt, dass hohe Durchsatzquoten aufrechterhalten und gleichzeitig starke Konsistenzgarantien gewährt werden.

  8. Skalierbarkeit

    Funke: Es ist sehr skalierbar, wir können weiterhin n Anzahl von Knoten im Cluster hinzufügen. Ein großer bekannter Sspark -Cluster besteht aus 8000 Knoten.

    Flink: Apache Flink ist ebenfalls sehr skalierbar. Wir können weiterhin n Anzahl von Knoten im Cluster hinzufügen. Ein großer bekannter Flink -Cluster ist von Tausenden von Knoten.

  9. Iterative Verarbeitung

    Funke: Es iteriert seine Daten in Chargen. In Spark muss jede Iteration separat geplant und ausgeführt werden.

    Flink: Es iteriert Daten mithilfe seiner Streaming -Architektur. Flink kann angewiesen werden, nur die tatsächlich geänderten Teile der Daten zu verarbeiten, was die Leistung des Jobs erheblich erhöht.

  10. Sprachunterstützung

    Funke: Es unterstützt Java, Scala, Python und R. Spark wird in Scala umgesetzt. Es bietet API in anderen Sprachen wie Java, Python und R.

    Flink: Es unterstützt Java, Scala, Python und R. Flink wird in Java implementiert. Es bietet auch Scala -API.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top