2016-12-14 3 views
2

Ich habe eine Spark WordCount-Anwendung erstellt, die ich mit spark-submit Befehl in der Shell im lokalen Modus ausgeführt wurde.Wie wird Spark-Anwendung im Cluster-Modus an YARN gesendet?

Wenn ich versuche, es in cluster Modus auf GARN laufen mit dem Befehl:

spark-submit --class com.WordCount --master yarn --deploy-mode cluster WordCount-1.0.jar 

Es scheint nicht zu laufen und zeigt den Status als:

Applikationsbericht für application_1480577073003_0019 (Zustand : AKZEPTIERT)

Wie zu spark-submit die Spark-Anwendung zu YARN im Cluster-Modus?

+1

überprüfen Sie, ob alle Anforderungen für den Job in Garn zur Verfügung stehen, wie die Anzahl der Executoren, Kerne und so weiter – Chobeat

Antwort

0

Der Grund für dieses Problem ist, dass Ihre Anwendung/Treiber zu diesem Zeitpunkt mehr Ressourcen als die verfügbaren Ressourcen im Cluster anfordert.

Da Sie keine Ressourcenparameter angegeben haben, fordert Ihr Treiber Ressourcen mit Standardwerten an. Das bedeutet, dass Ihr Cluster die Ressourcen nicht bereitstellen kann.

Mögliche Gründe:

  1. Der Cluster verfügt nicht über Testamentsvollstrecker mit genügend Speicher/Kerne (Standard 1GB, 1core)
  2. Der Cluster hat Testamentsvollstrecker mit genügend Speicher/Kerne, aber sie zugeordnet sind, einige andere Jobs.

Lösung:

  1. Entweder Standardwerte Testamentsvollstrecker Speicher/Kerne Anfrage reduzieren oder Speicher/Kerne pro Garn-Behälter
  2. Erhöhen Sie die Cluster-Ressourcen erhöhen, indem mehr Testamentsvollstrecker Hinzufügen oder für andere warten Jobs zu beenden [Oder töten sie, wenn Sie diese Jobs nicht mögen;)]
0

Nach Ihnen spark-submit --deploy-mode cluster Ihre Spark-Anwendung, die Dr. iver und die Executoren befinden sich auf den Knoten des Clusters.

Von Spark's official documentation:

Deploy Modus Unterscheidet, wo der Fahrer Prozess ausgeführt wird. Im Cluster-Modus startet das Framework den Treiber innerhalb des Clusters. Im "Client" -Modus startet der Übergeber den Treiber außerhalb des Clusters.

Sie erhalten die Anwendungs-ID als Handle für Ihre Anwendung.

Sie sollten den Befehl yarn application -status verwenden, um den Status einer Spark-Anwendung zu überprüfen.

-status Gibt den Status der Anwendung aus.

Verwandte Themen