Was sind Cores und Executors in Spark?

Gefragt von: Dancho Lazaga | Zuletzt aktualisiert: 12. April 2020
Kategorie: Technologie und Computerdatenspeicherung und -lagerung
3,9/5 (1.774 Ansichten . 34 Stimmen)
Kerne : Ein Kern ist eine grundlegende Recheneinheit der CPU und eine CPU kann einen oder mehrere Kerne haben , um Aufgaben zu einem bestimmten Zeitpunkt auszuführen. Je mehr Kerne wir haben, desto mehr Arbeit können wir leisten. In Spark steuert dies die Anzahl der parallelen Tasks, die ein Executor ausführen kann.

Abgesehen davon, was sind Executoren in Spark?

Executors sind Prozesse von Worker-Knoten, die für die Ausführung einzelner Aufgaben in einem bestimmten Spark- Job verantwortlich sind. Sie werden zu Beginn einer Spark- Anwendung gestartet und laufen normalerweise während der gesamten Lebensdauer einer Anwendung. Sobald sie die Aufgabe ausgeführt haben, senden sie die Ergebnisse an den Treiber.

Außerdem, was ist ein Funkenkern? Spark Core ist die grundlegende Einheit des gesamten Spark- Projekts. Es bietet alle möglichen Funktionen wie Aufgabenverteilung, Planung und Eingabe-Ausgabe-Operationen usw. Spark verwendet eine spezielle Datenstruktur, die als RDD (Resilient Distributed Dataset) bekannt ist. Es ist die Heimat der API, die die RDDs definiert und manipuliert.

Wie wählen Sie hiervon die Anzahl der Ausführenden in Spark aus?

Anzahl verfügbarer Executors = (total cores/num-cores-per- executor ) = 150/5 = 30. 1 Executor für ApplicationManager übrig lassen => --num- Executors = 29. Anzahl Executors pro Knoten = 30/10 = 3 Arbeitsspeicher pro Executor = 64GB/3 = 21GB.

Wofür wird Spark Garn Executor MemoryOverhead verwendet?

Der Wert des Funkens . Garn . Vollstrecker . Die Eigenschaft memoryOverhead wird dem Executor- Speicher hinzugefügt, um die vollständige Speicheranforderung an YARN für jeden Executor zu ermitteln .

30 Antworten zu ähnlichen Fragen gefunden

Was ist der standardmäßige Spark-Executor-Speicher?

In Spark, der Vollstrecker - ist Speicherflag steuert die Exekutor Zwischenspeichergröße ( in ähnlicher Weise für Garn- und Slurm), der Standardwert 512 MB pro Exekutor.

Was ist Executor-Speicher in Spark?

Jede Spark- Anwendung verfügt über einen Executor auf jedem Worker-Knoten. Der Executor-Speicher ist im Grunde ein Maß dafür, wie viel Speicher des Worker-Knotens die Anwendung nutzen wird.

Was passiert, wenn der Executor in Spark ausfällt?

Ausfall des Worker-Knotens – Der Knoten, der den Anwendungscode auf dem Spark- Cluster ausführt , ist der Spark- Worker-Knoten. Jeder der Worker-Knoten, auf denen executor ausgeführt wird, kann ausfallen , was zu einem Verlust des Arbeitsspeichers führt. Wenn Empfänger auf ausgefallenen Knoten ausgeführt wurden, gehen ihre Pufferdaten verloren.

Wie stimme ich einen Spark-Job ab?

In den folgenden Abschnitten werden allgemeine Spark-Joboptimierungen und -empfehlungen beschrieben.
  1. Wählen Sie die Datenabstraktion.
  2. Verwenden Sie das optimale Datenformat.
  3. Wählen Sie den Standardspeicher aus.
  4. Benutze den Cache.
  5. Speicher effizient nutzen.
  6. Optimieren Sie die Datenserialisierung.
  7. Verwenden Sie Bucketing.
  8. Optimieren Sie Joins und Shuffles.

Wie setze ich Treiber- und Executor-Speicher in Spark?

Sie können dies tun, indem Sie entweder:
  1. Einstellung in der Eigenschaftendatei (Standard ist $SPARK_HOME/conf/spark-defaults.conf ), spark.driver.memory 5g.
  2. oder durch Bereitstellung der Konfigurationseinstellung zur Laufzeit $ ./bin/spark-shell --driver-memory 5g.

Was ist NUM Executors in Spark?

Die - num - Testamentsvollstrecker definiert die Anzahl der Vollzieher, die wirklich die Gesamtzahl der Anwendungen definiert, ausgeführt werden. Sie können den -- executor -cores angeben, der definiert, wie viele CPU-Kerne pro Executor /Anwendung verfügbar sind.

Wie führe ich Spark im lokalen Modus aus?

Im lokalen Modus Funken Jobs laufen auf einer einzigen Maschine, und sind parallel mit Multi-Threading ausgeführt: Dies schränkt Parallelität (höchstens) die Anzahl der Kerne in Ihrer Maschine. Um Jobs im lokalen Modus auszuführen , müssen Sie zunächst eine Maschine über SLURM im interaktiven Modus reservieren und sich dort anmelden.

Was ist eine RDD-Partition?

Resilient Distributed Datasets ( RDD ) ist eine einfache und unveränderliche verteilte Sammlung von Objekten. Jedes RDD ist in mehrere Partitionen aufgeteilt , die auf verschiedenen Knoten des Clusters berechnet werden können. In Spark wird jede Funktion nur auf RDDs ausgeführt .

Wie funktioniert Koaleszenz im Funken?

coalesce verwendet vorhandene Partitionen, um die Datenmenge zu minimieren, die gemischt wird. repartition erstellt neue Partitionen und führt einen vollständigen Shuffle durch. Koaleszieren führt zu Partitionen mit unterschiedlichen Datenmengen (manchmal Partitionen mit sehr unterschiedlichen Größen) und die Neupartitionierung führt zu ungefähr gleich großen Partitionen.

Was sind Spark-Stufen?

In Apache Spark ist eine Bühne eine physische Ausführungseinheit. Wir können sagen, es ist ein Schritt in einem physischen Ausführungsplan. Es handelt sich um eine Reihe paralleler Aufgaben – eine Aufgabe pro Partition. Mit anderen Worten, jeder Job wird in kleinere Aufgabengruppen unterteilt, die Sie als Phasen bezeichnen . Da Stage nur auf den Partitionen eines einzelnen RDD arbeiten kann.

Was sind Spark-Executor-Instanzen?

Vollstrecker . Instanzen ist lediglich eine Anfrage. Spark ApplicationMaster für Ihre Anwendung fordert an YARN ResourceManager die Anzahl der Container = Spark an . Vollstrecker . Instanzen .

Was ist Spark-Serialisierung?

Einige Fakten über Spark .
Ein Objekt zu serialisieren bedeutet, seinen Zustand in einen Bytestrom umzuwandeln, damit der Bytestrom wieder in eine Kopie des Objekts umgewandelt werden kann. Ein Java-Objekt ist serialisierbar, wenn seine Klasse oder eine seiner Superklassen entweder die java. io. Serialisierbare Schnittstelle oder ihre Unterschnittstelle, java.

Wie berechnet Spark die Anzahl der Aufgaben?

2. Was bestimmt die Anzahl der auszuführenden Aufgaben ? Wenn also rdd3 berechnet wird, generiert Spark einen Task pro Partition von rdd1 und mit der Implementierung der Aktion führt jeder Task sowohl den Filter als auch die Map pro Zeile aus, um rdd3 zu erhalten. Die Anzahl der Partitionen bestimmt die Anzahl der Aufgaben .

Wie funktioniert Funkencluster?

Apache Spark ist eine Open-Source-Universal-Computing-Engine, die zum Verarbeiten und Analysieren einer großen Datenmenge verwendet wird. Genau wie Hadoop MapReduce, es funktioniert auch mit der Systemdaten über den Cluster zu verteilen und die Daten parallel zu verarbeiten. Jeder Executor ist ein separater Java-Prozess.

Was ist Funkenkontext?

Ein SparkContext ist ein Client der Ausführungsumgebung von Spark und fungiert als Master der Spark- Anwendung. SparkContext richtet interne Dienste ein und stellt eine Verbindung zu einer Spark- Ausführungsumgebung her.

Was sind die Bestandteile von Funken?

Im Folgenden sind 6 Komponenten im Apache Spark Ecosystem aufgeführt, die Apache Spark-Spark Core , Spark SQL, Spark Streaming, Spark MLlib, Spark GraphX ​​und SparkR unterstützen.

Was ist der Funkentreiber?

Der Spark-Treiber ist das Programm, das die Transformationen und Aktionen auf RDDs von Daten deklariert und solche Anfragen an den Master sendet. In der Praxis ist der Treiber das Programm, das den SparkContext erstellt und eine Verbindung zu einem bestimmten Spark- Master herstellt.