Einführung in Spark und Vergleich mit Hadoop

Einführung in Spark und Vergleich mit Hadoop

1. Spark vs. Hadoop

1.1 Nachteile von Haoop

  • 1. Eingeschränkte Fähigkeit, sich auszudrücken;
  • 2. Der Festplatten-E/A-Overhead ist hoch;
  • 3. Hohe Latenz;
  • 4. Die Verbindung zwischen Aufgaben verursacht IO-Overhead;
  • 5. Andere Aufgaben können nicht gestartet werden, bevor die vorherige Aufgabe abgeschlossen ist, was die Bewältigung komplexer, mehrstufiger Computeraufgaben erschwert.

1.2 Vorteile gegenüber Hadoop MR

  • 1. Das Rechenmodell von Spark gehört ebenfalls zu MR, ist jedoch nicht auf Map- und Reduce-Operationen beschränkt. Es bietet auch verschiedene Arten von Datensatzoperationen und sein Programmiermodell ist flexibler als das von Hadoop MR.
  • 2. Spark bietet In-Memory-Computing, das Zwischenergebnisse im Speicher ablegen kann, wodurch iterative Vorgänge effizienter werden;
  • 3. Der DAG-basierte Task-Scheduling-Ausführungsmechanismus von Spark ist dem iterativen Ausführungsmechanismus von Hadoop MR überlegen.
Funke MapReduce
Datenspeicherstruktur Verwenden Sie den Speicher, um einen ausfallsicheren verteilten Datensatz (RDD) zu erstellen, mit dem Sie Vorgänge ausführen und Daten zwischenspeichern können. Aufteilung des HDFS-Dateisystems auf der Festplatte
Programmierparadigma DAG (Transformation+Aktion) Map+Reduzieren
Speicherung von Zwischenberechnungsergebnissen Im Speicher gespeichert, ist die Zugriffsgeschwindigkeit um mehrere Größenordnungen höher als auf der Festplatte Wenn die Daten auf die Festplatte gelangen, sind die IO- und Serialisierungs- und Deserialisierungskosten hoch
Methode zur Aufgabenwartung Themen Verfahren
Zeit Latenzzeiten von unter einer Sekunde beim Lesen kleiner Datensätze Es dauert einige Sekunden, um die Aufgabe zu starten

2. Spark-Ökosystem

2.1 Drei Arten der Big Data-Verarbeitung

1. Komplexe Batch-Datenverarbeitung

Die Zeitspanne beträgt von einigen zehn Minuten bis zu mehreren Stunden

Haoop MapReduce

2. Interaktive Abfrage basierend auf historischen Daten

Die Zeitspanne beträgt einige zehn Sekunden bis mehrere Minuten

Die Echtzeitleistung von Cloudera und Impala ist besser als die von Hive.

3. Datenverarbeitung basierend auf Echtzeit-Datenstrom

Die Zeitspanne beträgt Hunderte von Millisekunden bis mehrere Sekunden

Sturm

2.2 BDAS-Architektur

2.3 Spark-Ökosystem

3. Grundkonzepte und Architekturdesign

3.1 Grundlegende Konzepte

3.2 Betriebsarchitektur

Vorteile von Spark mit Executor: (Im Vergleich zu Hadoops MR)

  • 1. Verwenden Sie Multithreading, um bestimmte Aufgaben auszuführen und den Start-Overhead von Aufgaben zu reduzieren.
  • 2. In Executor gibt es ein BlockManager-Speichermodul, das sowohl Speicher als auch Festplatte als Speichergeräte verwendet und so den IO-Overhead effektiv reduziert.

3.3 Beziehungen zwischen verschiedenen Konzepten

  • Eine Bewerbung besteht aus einem Fahrer und mehreren Jobs
  • Ein Job besteht aus mehreren Phasen
  • Eine Phase besteht aus mehreren Aufgaben, die in keiner Shuffle-Beziehung zueinander stehen.

Beim Ausführen einer Anwendung fordert der Treiber Ressourcen vom Cluster-Manager an und startet den Executor.

Senden Sie den Anwendungscode und die Dateien an den Executor und führen Sie die Aufgabe dann auf dem Executor aus. Nachdem der Lauf abgeschlossen ist,

Die Ausführungsergebnisse werden an den Treiber zurückgegeben oder in HDFS oder andere Datenbanken geschrieben.

4. Spark führt den Basisprozess aus

4.1 Betriebsablauf

1. Erstellen Sie eine grundlegende Betriebsumgebung für die Anwendung. Das heißt, der Treiber erstellt einen SparkContext, um Ressourcen zu beantragen, Aufgaben zuzuweisen und sie zu überwachen.

2. Der Ressourcenmanager weist dem Executor Ressourcen zu und startet den Executor-Prozess.

  • 3.1 SparkContext erstellt ein DAG-Diagramm basierend auf den Abhängigkeiten von RDD, übermittelt das DAG-Diagramm an DAGScheduler, damit es in Stage analysiert wird, und übermittelt dann jedes TaskSet zur Verarbeitung an den zugrunde liegenden Scheduler TaskScheduler.
  • 3.2 Executor beantragt Task von SparkContext, TaskScheduler sendet Task zur Ausführung an Executor und stellt Anwendungscode bereit.

4. Der Task wird auf dem Executor ausgeführt und gibt die Ausführungsergebnisse an den TaskScheduler und dann an den DAGScheduler zurück. Nach Abschluss der Ausführung werden die Daten geschrieben und alle Ressourcen freigegeben.

4.2 Funktionen der Betriebsarchitektur

1. Jede Anwendung verfügt über ihren eigenen Executor-Prozess. Der Prozess bleibt resident, während die Anwendung ausgeführt wird. Der Executor-Prozess führt die Aufgabe in einem Multithread-Verfahren aus.

2. Der laufende Spark-Prozess hat nichts mit dem Ressourcenmanager zu tun, solange er den Executor-Prozess abrufen und die Kommunikation aufrechterhalten kann.

3. Die Aufgabe verwendet Optimierungsmechanismen wie Datenlokalität und spekulative Ausführung. (Die Berechnung rückt näher an die Daten heran.)

5. Spark-Bereitstellungs- und Anwendungsmethoden

5.1 Drei Bereitstellungsmethoden von Spark

5.1.1 Standalone

Ähnlich wie bei MR1.0 ist der Steckplatz die Einheit zur Ressourcenzuweisung, die Leistung ist jedoch nicht gut.

5.1.2 Spark auf Mesos

Mesos und Spark haben eine gewisse Affinität.

5.1.3 Spark auf YARN

Die Verbindung zwischen Mesos und Yarn

5.2 Von der Hadoop+Storm-Architektur zur Spark-Architektur

Hadoop+Storm-Architektur

Diese Bereitstellungsmethode ist komplizierter.

Verwenden der Spark-Architektur zur Erfüllung der Anforderungen an die Stapel- und Streamverarbeitung

Spark verwendet schnelles Small-Batch-Computing, um Stream-Computing zu simulieren, es handelt sich jedoch nicht um echtes Stream-Computing.

Es ist unmöglich, Stream-Computing im Millisekundenbereich zu erreichen. Für Unternehmensanwendungen, die Echtzeitreaktionen im Millisekundenbereich erfordern, werden weiterhin Stream-Computing-Frameworks wie Storm benötigt.

Vorteile der Spark-Architektur:

  • 1. Installation und Konfiguration mit einem Klick, Aufgabenüberwachung und Alarmierung auf Thread-Ebene;
  • 2. Reduzieren Sie den Aufwand für Hardware-Cluster, Software-Wartung, Aufgabenüberwachung und Anwendungsentwicklung.
  • 3. Es ist einfach, einen einheitlichen Ressourcenpool für Hardware und Computerplattformen zu erstellen.

5.3 Einheitliche Bereitstellung von Hadoop und Spark

Verschiedene Computing-Frameworks laufen einheitlich in YARN

Die Vorteile sind wie folgt:

  • 1. Rechenressourcen können je nach Bedarf hoch- oder herunterskaliert werden;
  • 2. Keine Notwendigkeit, Lastanwendungen zu mischen und anzupassen, hohe Clusterauslastung;
  • 3. Gemeinsame Nutzung des zugrunde liegenden Speichers, um eine Datenmigration über Cluster hinweg zu vermeiden

Status Quo:

1. Spark kann derzeit die von einigen Komponenten im Hadoop-Ökosystem implementierten Funktionen nicht ersetzen.

2. Die vollständige Migration bestehender, mit Hadoop-Komponenten entwickelter Anwendungen nach Spark kostet Geld.

Dies ist das Ende dieses Artikels über die Einführung von Spark und die Vergleichsanalyse mit Hadoop. Weitere relevante Spark- und Hadoop-Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So installieren Sie die Standalone-Version von Spark in einer Linux-Umgebung ohne Verwendung von Hadoop
  • Eine kurze Diskussion von sieben gängigen Hadoop- und Spark-Projektfällen

<<:  Verwenden von js zur Realisierung eines dynamischen Hintergrunds

>>:  Die Standard-HTML-Schreibmethode unterscheidet sich von der von Dreamweaver automatisch generierten

Artikel empfehlen

Kapselungsmethode der Vue-Breadcrumbs-Komponente

Vue kapselt die Breadcrumb-Komponente zu Ihrer In...

So installieren Sie pyenv unter Linux

Voraussetzungen Git muss installiert werden Insta...

MySQL 8.0.13 Download- und Installations-Tutorial mit Bildern und Text

MySQL ist die am häufigsten verwendete Datenbank....

Ein Leistungsfehler bei MySQL-Partitionstabellen

Inhaltsverzeichnis 2. Stapelanalyse mit pt-pmap 3...

React führt antd-mobile+postcss ein, um ein mobiles Terminal zu erstellen

Installieren Sie antd-mobile Globaler Import npm ...

WeChat-Applet + ECharts zur Realisierung eines dynamischen Aktualisierungsprozesses

Vorwort Kürzlich stieß ich auf eine Anforderung, ...

Benutzerdefinierte optionale Zeitkalenderkomponente von Vue

In diesem Artikelbeispiel wird der spezifische Co...

Native js implementiert Warenkorb-Logik und -Funktionen

In diesem Artikelbeispiel wird der spezifische Co...

So installieren Sie Git unter Linux

1. Einleitung Git ist ein kostenloses, verteiltes...