Erfahren Sie, wie Treiber- und Ausführungsprozesse zusammenarbeiten, um verteilte Berechnungen auf einem Cluster durchzuführen.
Spark-Anwendungen umfassen zwei Arten von Prozessen: einen Driver-Prozess und eine Reihe von Executor-Prozessen. Der Driver-Prozess führt Ihre main()-Funktion aus. Er befindet sich auf einem Knoten im Cluster und ist für dreierlei verantwortlich: die Verwaltung von Informationen über die Spark-Anwendung, die Beantwortung einer programm- oder benutzerseitigen Eingabe und die Analyse, Verteilung und zeitliche Planung der Arbeit für die Executors (die nur temporär definiert sind). Der Driver-Prozess ist dabei das unverzichtbare Herzstück der Spark-Anwendung: Er verwaltet während der gesamten Lebensdauer der Anwendung alle relevanten Informationen. Die Executors sind dagegen für die eigentliche Ausführung der Arbeit verantwortlich, die der Driver ihnen zuweist. Das bedeutet, dass jeder Executor nur zwei Aufgaben hat: die Ausführung des ihm vom Driver zugewiesenen Codes und die Rückmeldung des Status der Berechnung auf dem jeweiligen Executor an den Driver-Knoten.