PySpark verteilte Verarbeitung auf einem YARN-Cluster

8

Ich habe Spark auf einem Cloudera CDH5.3-Cluster ausgeführt, wobei YARN als Ressourcenmanager verwendet wird. Ich entwickle Spark Apps in Python (PySpark).

Ich kann Jobs einreichen und sie werden erfolgreich ausgeführt, scheinen jedoch nie auf mehr als einem Computer ausgeführt zu werden (dem lokalen Computer, von dem aus ich den Computer sende).

Ich habe eine Vielzahl von Optionen ausprobiert, wie zum Beispiel: --deploy-mode auf Cluster und --master auf Garn-client und yarn-cluster einzustellen, aber es scheint nie auf mehr als einem Server zu laufen.

Ich kann es auf mehr als einem Kern laufen lassen, indem ich etwas --master local [8] übergebe, aber das verteilt die Verarbeitung offensichtlich nicht über mehrere Knoten.

Ich habe ein sehr einfaches Python-Skript, das Daten von HDFS wie folgt verarbeitet:

%Vor%

Und ich führe einen Submit-Befehl wie:

aus %Vor%

Was kann ich tun, um sicherzustellen, dass der Job im gesamten Cluster parallel ausgeführt wird?

    
aaa90210 30.01.2015, 05:06
quelle

4 Antworten

8

Können Sie die Argumente für den Befehl austauschen? spark-submit --deploy-mode-client --master yarn-client atest.py

Wenn Sie den Hilfetext für den Befehl sehen:

spark-submit

%Vor%     
MrChristine 08.02.2015, 20:26
quelle
4

Ich glaube, dass @MrChristine korrekt ist - die von Ihnen angegebenen Optionsflags werden an Ihr Python-Skript übergeben, nicht an funke-submit. Außerdem sollten Sie --executor-cores und --num-executors angeben, da diese standardmäßig auf einem einzelnen Kern ausgeführt werden und zwei Executoren verwenden.

    
Rok 09.02.2015 16:50
quelle
0

Es stimmt nicht, dass das Python-Skript nicht im Cluster-Modus ausgeführt wird. Ich bin mir nicht sicher über vorherige Versionen, aber dies wird in der funke 2.2-Version auf Hortonworks-Cluster ausgeführt.

Befehl: spark-supply --master Garn --num-executors 10 --executor-cores 1 --driver-memory 5g /pyspark-example.py

Python-Code:

%Vor%

Ausgabe: Es ist groß, also klebe ich nicht. Aber es läuft perfekt.

    
Avinav Mishra 16.10.2017 07:06
quelle
-2

Es scheint, dass PySpark nicht im verteilten Modus mit Spark / YARN läuft - Sie müssen Stand-alone-Spark mit einem Spark-Master-Server verwenden. In diesem Fall lief mein PySpark-Skript sehr gut über den Cluster mit einem Python-Prozess pro Kern / Knoten.

    
aaa90210 30.01.2015 05:25
quelle