Learn SparkContext – Einführung und Funktionen
Bleiben Sie über die neuesten Technologietrends auf dem Laufenden
Treten Sie DataFlair bei Telegram bei!!
- Objective
- Was ist SparkContext in Apache Spark?
- Wie erstelle ich eine SparkContext-Klasse?
- SparkContext stoppen
- Spark Scala Word Count Example
- Funktionen von SparkContext in Apache Spark
- i. Um den aktuellen Status der Spark-Anwendung zu erhalten
- ii. Um die Konfiguration festzulegen
- iii. Um auf verschiedene Dienste zuzugreifen
- iv. Um einen Job abzubrechen
- v. Um eine Stufe abzubrechen
- vi. Für die Schließungsreinigung in Spark
- vii. Um Spark Listener zu registrieren
- viii. Programmierbare dynamische Zuweisung
- ix. Zugriff auf persistente RDD
- x. Um RDDs
- Fazit
Objective
SparkContext ist das Eingangstor der Apache Spark-Funktionalität. Der wichtigste Schritt einer Spark-Treiberanwendung ist das Generieren von SparkContext. Es ermöglicht Ihrer Spark-Anwendung, mit Hilfe des Ressourcenmanagers (YARN / Mesos) auf den Spark-Cluster zuzugreifen. Um SparkContext zu erstellen, sollte zuerst SparkConf erstellt werden. Die SparkConf verfügt über einen Konfigurationsparameter, den unsere Spark-Treiberanwendung an SparkContext .
In diesem Apache Spark Tutorial werden wir tief verstehen, was SparkContext in Spark ist. So erstellen Sie die SparkContext-Klasse in Spark mit Hilfe des Spark-Scala Word Count-Programms. Wir lernen auch verschiedene Aufgaben von SparkContext und wie man SparkContext in Apache Spark stoppt.
Beginnen wir also mit dem SparkContext-Tutorial.
Learn SparkContext – Einführung und Funktionen
Erfahren Sie, wie Sie Apache Spark im Standalone-Modus und Apache Spark in einem Multi-Node-Cluster installieren.
Was ist SparkContext in Apache Spark?
SparkContext ist der Einstiegspunkt der Spark-Funktionalität. Der wichtigste Schritt einer Spark-Treiberanwendung ist das Generieren von SparkContext. Es ermöglicht Ihrer Spark-Anwendung, mit Hilfe des Ressourcenmanagers auf den Spark-Cluster zuzugreifen. Der Ressourcenmanager kann einer dieser drei sein – Spark Standalone, YARN, Apache Mesos.
Wie erstelle ich eine SparkContext-Klasse?
Wenn Sie SparkContext erstellen möchten, sollte zuerst SparkConf erstellt werden. Die SparkConf verfügt über einen Konfigurationsparameter, den unsere Spark-Treiberanwendung an SparkContext . Einige dieser Parameter definieren die Eigenschaften der Spark-Treiberanwendung. Einige werden von Spark verwendet, um Ressourcen im Cluster zuzuweisen, z. B. Anzahl, Speichergröße und Kerne, die vom Executor verwendet werden, der auf den Worker-Knoten ausgeführt wird.
Kurz gesagt, es zeigt, wie Sie auf den Spark-Cluster zugreifen. Nach der Erstellung eines SparkContext-Objekts können wir Funktionen wie textFile , SequenceFile, parallelize usw. aufrufen. Die verschiedenen Kontexte, in denen es ausgeführt werden kann, sind lokal, Yarn-Client, Mesos-URL und Spark-URL.
Sobald der SparkContext erstellt wurde, kann er zum Erstellen von RDDs, Broadcast-Variablen und Akkumulatoren, zum Empfangen von Spark-Diensten und zum Ausführen von Jobs verwendet werden. All diese Dinge können ausgeführt werden, bis SparkContext gestoppt wird.
SparkContext stoppen
Pro JVM darf nur ein SparkContext aktiv sein. Sie müssen die aktive it stoppen, bevor Sie eine neue wie folgt erstellen:
stop(): Einheit
Es wird die folgende Meldung angezeigt:
INFO SparkContext: SparkContext erfolgreich gestoppt
Spark Scala Word Count Example
Mal sehen, wie man SparkContext mit SparkConf mit Hilfe von Spark-Scala word count example-
Paket com.dataflair.funken
import org.Apache.Funken.SparkContext
importieren org.Apache.Funken.SparkConf
Objekt Wordcount {
def main(args: Array) {
//Erstellen Sie ein conf-Objekt
val conf = new SparkConf()
.setAppName(„WordCount“)
//create spark context object
val sc = new SparkContext(conf)
//Check whether sufficient params are supplied
if (args.length < 2) {
println(„Usage: ScalaWordCount <input><output>“)
System.exit(1)
}
//Read file and create RDD
val rawData = sc.textFile(args(0))
//convert the lines into words using flatMap operation
val words = rawData.flatMap(line => line.split(“ „))
//zähle die einzelnen Wörter mit map und reduceByKey Operation
val WordCount = Wörter.karte(Wort => (Wort, 1)).reduceByKey(_ + _)
//Speichern Sie das Ergebnis
WordCount.saveAsTextFile(args(1))
//Stoppen Sie den Spark-Kontext
sc.stop
}
}
Funktionen von SparkContext in Apache Spark
10 wichtige Funktionen von SparkContext in Apache Spark
i. Um den aktuellen Status der Spark-Anwendung zu erhalten
- SpkEnv – Es ist eine Laufzeitumgebung mit den öffentlichen Diensten von Spark. Es interagiert miteinander, um eine verteilte Computerplattform für Spark-Anwendungen einzurichten. Ein SparkEnv-Objekt, das die erforderlichen Laufzeitdienste zum Ausführen der Spark-Anwendung mit der unterschiedlichen Umgebung für den Treiber und den Executor enthält, stellt die Spark-Laufzeitumgebung dar.
- SparkConf – Die Spark-Eigenschaften behandeln maximale Anwendungseinstellungen und werden für jede Anwendung separat konfiguriert. Wir können diese Eigenschaften auch einfach in einer SparkConf . Einige allgemeine Eigenschaften wie Master-URL und Anwendungsname sowie ein beliebiges Schlüssel-Wert-Paar, das über die set () -Methode konfiguriert wird.
- Bereitstellungsumgebung (als Master–URL) – Es gibt zwei Arten von Spark-Bereitstellungsumgebungen, nämlich lokale und clustered. Der lokale Modus ist der nicht verteilte Single-JVM-Bereitstellungsmodus. Alle Ausführungskomponenten – Treiber, Executor, LocalSchedulerBackend und Master – sind in derselben einzigen JVM vorhanden. Daher ist der einzige Modus, in dem Treiber für die Ausführung nützlich sind, der lokale Modus. Für Test-, Debugging- oder Demonstrationszwecke ist der lokale Modus geeignet, da zum Starten der Spark-Anwendung kein früheres Setup erforderlich ist. Im Clustermodus wird der Spark im Verteilungsmodus ausgeführt. Erfahren Sie mehr über Spark Cluster Manager im Detail.
ii. Um die Konfiguration festzulegen
- Master–URL – Die Master-Methode gibt den aktuellen Wert von spark zurück.master, die Deployment-Umgebung im Einsatz ist.
- Lokale Eigenschaften-Logische Jobgruppen erstellen – Der Grund für das Konzept der lokalen Eigenschaften besteht darin, logische Gruppen von Jobs zu bilden, indem Eigenschaften verwendet werden, die den separaten Job erstellen, der von verschiedenen Threads gestartet wird und zu einer einzigen logischen Gruppe gehört. Wir können eine lokale Eigenschaft festlegen, die sich auf Spark-Jobs auswirkt, die von einem Thread gesendet werden, z. B. den Spark-Job-Scheduler-Pool.
- Standardprotokollierungsebene – Hiermit können Sie die Root-Anmeldeebene in einer Spark-Anwendung festlegen, z. B. in der Spark-Shell.
iii. Um auf verschiedene Dienste zuzugreifen
Es hilft auch beim Zugriff auf Dienste wie TaskScheduler, LiveListenBus, BlockManager, SchedulerBackend, ShuffelManager und den optionalen ContextCleaner.
iv. Um einen Job abzubrechen
cancleJob fordert DAGScheduler einfach auf, einen Spark-Job zu löschen.
Erfahren Sie mehr über Spark DAG(Directed Acyclic Graph) im Detail.
v. Um eine Stufe abzubrechen
cancleStage fordert DAGScheduler einfach auf, eine Spark-Stufe zu löschen.
vi. Für die Schließungsreinigung in Spark
Spark bereinigt den Verschluss jedes Mal, wenn eine Aktion auftritt, d.h. der Aktionskörper, bevor er serialisiert und zur Ausführung über die Leitung gesendet wird. Die Clean-Methode in SparkContext tut dies. Dies wiederum ruft ClosureClean auf.saubere Methode. Es reinigt nicht nur den Verschluss, sondern auch den Verschluss ist transitiv sauber. Es wird davon ausgegangen, dass es serialisierbar ist, bis es nicht explizit auf unserialisierbare Objekte verweist.
vii. Um Spark Listener zu registrieren
Wir können ein benutzerdefiniertes SparkListenerInterface mit Hilfe der addSparkListener-Methode registrieren. Wir können auch benutzerdefinierte Listener mit dem Spark registrieren.extraListeners Einstellung.
viii. Programmierbare dynamische Zuweisung
Es bietet auch die folgende Methode als Entwickler-API für die dynamische Zuweisung von Executoren: requestExecutors, killExecutors, requestTotalExecutors, getExecutorIds.
ix. Zugriff auf persistente RDD
getPersistentRDDs gibt die Sammlung von RDDs an, die sich über den Cache als persistent markiert haben.
x. Um RDDs
Aus dem Blockmanager des Masters und der internen persistentRdds-Zuordnung zu entfernen, entfernt unpersist die RDD.
Also, das war alles im Sparkcontext Tutorial. Hoffe dir gefällt unsere Erklärung.
Fazit
Daher bietet SparkContext die verschiedenen Funktionen in Spark, z. B. den aktuellen Status der Spark-Anwendung abrufen, die Konfiguration festlegen, einen Job abbrechen, eine Phase abbrechen und vieles mehr. Es ist ein Einstiegspunkt in die Spark-Funktionalität. Somit wirkt es als Rückgrat.
Wenn Sie Fragen zu diesem Tutorial haben, können Sie uns dies gerne mitteilen. Wir werden froh sein, sie zu lösen.
Siehe auch-
- Möglichkeiten zum Erstellen von RDD in Spark
- Apache Spark-Kompatibilität mit Hadoop