Apache Spark: Unterschiede zwischen client und cluster bereitstellen Modi

TL;DR: In einem Spark-Standalone-cluster, was sind die Unterschiede zwischen client und cluster bereitstellen Modi? Wie kann ich einstellen, in welchem Modus meine Anwendung ausgeführt wird, auf?


Haben wir einen Funken Standalone-cluster mit drei Computern, alle mit Spark 1.6.1:

  • Eine master-Maschine, die auch ist, wo unsere Anwendung ausführen, verwenden spark-submit
  • 2 identische Arbeiter Maschinen

Aus der Spark-Dokumentation, ich lese:

(...) Für die standalone-Cluster, Funke unterstützt aktuell zwei Modi bereitstellen. Im client-Modus, der Treiber gestartet wird, in dem gleichen Prozess wie der client, sendet die Anwendung. Im cluster-Modus, allerdings ist der Fahrer startete von einem der Worker-Prozesse innerhalb des Clusters, und der client-Prozess beendet sich, sobald es erfüllt seine Verantwortung der Einreichung des Antrags, ohne zu warten, für die Anwendung fertig zu stellen.

Jedoch ich don ' T wirklich verstehen die praktischen Unterschiede hier Lesen, und ich verstehe nicht, was sind die vor-und Nachteile der verschiedenen Modi bereitstellen.

Außerdem, wenn ich meine Anwendung mit den start-reichen, auch wenn ich die Eigenschaft spark.submit.deployMode zu "cluster", die Funke-UI für meinen Kontext zeigt den folgenden Eintrag:

Apache Spark: Unterschiede zwischen client und cluster bereitstellen Modi

So, ich bin nicht in der Lage zu testen, in beiden Modi finden Sie in der praktischen Unterschiede. Dass gesagt wird, meine Fragen sind:

1) Was sind die praktischen Unterschiede zwischen Spark-Standalone client bereitstellen-Modus und cluster bereitstellen-Modus? Was sind die pro 's und con' s der mit jedem?

2) Wie kann ich auswählen, welches meine Anwendung wird ausgeführt, mit spark-submit?

Schreibe einen Kommentar