Pyspark auf Garn-Cluster-Modus

7

Gibt es eine Möglichkeit, pyspark-Skripte mit dem Garn-Cluster-Modus auszuführen, ohne das Spark-Submit-Skript zu verwenden? Ich brauche es auf diese Weise, weil ich diesen Code in eine Django Web App integrieren werde.

Wenn ich versuche, irgendein Skript im Garn-Cluster-Modus auszuführen, habe ich den folgenden Fehler:

%Vor%

Ich erstelle den sparkContext folgendermaßen:

%Vor%

Danke

    
jegordon 09.07.2015, 20:11
quelle

1 Antwort

21

Der Grund, warum yarn-cluster mode nicht unterstützt wird, ist, dass yarn-cluster das Bootstrapping des Treiberprogramms selbst (z. B. das Programm, das einen SparkContext aufruft) auf einen YARN-Container aufruft. Ausgehend von Ihrer Aussage über das Senden von einer Django-Webanwendung klingt es so, als wolle man den Python-Code, der den SparkContext enthält, in die Web-App selbst einbetten, anstatt den Treibercode an einen YARN-Container zu senden, der dann einen separaten Spark-Job handhabt .

Dies bedeutet, dass Ihr Fall am ehesten mit yarn-client mode anstatt mit yarn-cluster übereinstimmt; Im yarn-client -Modus können Sie Ihren SparkContext-Code an beliebiger Stelle (wie in Ihrer Web-App) ausführen, während er mit YARN über die tatsächlichen Mechanismen laufender Jobs spricht.

Wenn Sie einen speicherinternen Status zwischen Ihrer Webanwendung und Ihrem Spark-Code teilen, bedeutet dies grundsätzlich, dass Sie den Spark-Teil nicht abtrennen können, um ihn in einem YARN-Container auszuführen, was% co_de ist % versucht zu tun. Wenn Sie keinen Status teilen, können Sie einfach einen Subprozess aufrufen, der tatsächlich yarn-cluster aufruft, um einen unabhängigen PySpark-Job zur Ausführung im spark-submit -Modus zu bündeln.

Zusammenfassend:

  1. Wenn Sie Ihren Spark-Code direkt in Ihre Web-App einbetten möchten, müssen Sie stattdessen yarn-cluster mode verwenden: SparkConf (). setMaster ("Garn-Client")
  2. Wenn der Spark-Code locker genug gekoppelt ist, dass yarn-client tatsächlich realisierbar ist, können Sie einen Python- Subprozess um yarn-cluster in spark-submit mode tatsächlich aufzurufen.
Dennis Huo 10.07.2015, 00:34
quelle

Tags und Links