apache-spark
Client-Modus und Cluster-Modus
Suche…
Spark-Client- und Cluster-Modus erläutert
Versuchen wir, die Unterschiede zwischen dem Client- und Cluster-Modus von Spark zu untersuchen.
Client : Wenn Sie Spark im Client-Modus ausführen, werden das SparkContext- und das Treiberprogramm außerhalb des Clusters ausgeführt. zum Beispiel von Ihrem Laptop. Der lokale Modus ist nur für den Fall vorgesehen, dass Sie keinen Cluster verwenden und stattdessen alles auf einem einzelnen Computer ausführen möchten. Treiberanwendung und Spark-Anwendung befinden sich also auf demselben Computer wie der Benutzer. Der Treiber wird auf einem dedizierten Server (Master-Knoten) in einem dedizierten Prozess ausgeführt. Das bedeutet, es stehen alle Ressourcen zur Verfügung, um die Arbeit auszuführen. Da der Master-Knoten über eigene Ressourcen verfügt, müssen Sie keine Personalressourcen für das Treiberprogramm "ausgeben". Wenn der Treiberprozess stirbt, benötigen Sie ein externes Überwachungssystem, um die Ausführung zurückzusetzen.
Cluster: Der Treiber wird auf einem der Worker-Knoten des Clusters ausgeführt. Er wird als dedizierter Standalone-Prozess im Worker ausgeführt. Wenn Sie im Cluster-Modus arbeiten, müssen alle JARs, die sich auf die Ausführung Ihrer Anwendung beziehen, für alle Mitarbeiter öffentlich verfügbar sein. Dies bedeutet, dass Sie sie entweder manuell an einem gemeinsam genutzten Ort oder in einem Ordner für jeden Mitarbeiter ablegen können. Jede Anwendung erhält eigene Executor-Prozesse, die für die Dauer der gesamten Anwendung aktiv bleiben und Aufgaben in mehreren Threads ausführen. Dies hat den Vorteil, dass Anwendungen voneinander isoliert werden, sowohl auf der Planungsseite (jeder Treiber plant seine eigenen Aufgaben) als auch auf der Executor-Seite (Aufgaben aus verschiedenen Anwendungen werden in verschiedenen JVMs ausgeführt
Cluster-Manager-Typen
Apache Mesos - ein allgemeiner Cluster-Manager, der auch Hadoop MapReduce- und Dienstanwendungen ausführen kann. Hadoop YARN - der Ressourcenmanager in Hadoop.
Kubernetes-Container-zentrierte Infrastruktur.it ist noch experimentell.