Frage

Ich bin neu bei Spark.Jetzt kann ich Spark 0.9.1 auf Garn (2.0.0-cdh4.2.1) ausführen.Es gibt jedoch kein Protokoll nach der Ausführung.

Der folgende Befehl wird verwendet, um ein Spark-Beispiel auszuführen.Protokolle werden jedoch nicht wie bei einem normalen MapReduce-Job auf dem Verlaufsserver gefunden.

SPARK_JAR=./assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.0.0-cdh4.2.1.jar \
./bin/spark-class org.apache.spark.deploy.yarn.Client --jar ./spark-example-1.0.0.jar \
--class SimpleApp --args yarn-standalone  --num-workers 3 --master-memory 1g \
--worker-memory 1g --worker-cores 1

Wo finde ich die Protokolle/stderr/stdout?

Gibt es einen Ort, an dem man die Konfiguration festlegen kann?Ich habe eine Ausgabe der Konsole gefunden, die besagt:

14.04.14 18:51:52 INFO Kunde:Befehl für den ApplicationMaster:$JAVA_HOME/bin/java -server -Xmx640m -Djava.io.tmpdir=$PWD/tmp org.apache.spark.deploy.yarn.ApplicationMaster --class SimpleApp --jar ./spark-example-1.0.0.jar --args 'yarn-standalone' --worker-memory 1024 --worker-cores 1 --num-workers 3 1> <LOG_DIR>/stdout 2> <LOG_DIR>/stderr

Beachten Sie in dieser Zeile 1> $LOG_DIR/stdout 2> $LOG_DIR/stderr

Wo kann LOG_DIR eingestellt werden?

War es hilfreich?

Lösung

Hübscher Artikel zu dieser Frage:

Spark auf YARN ausführen - siehe Abschnitt „Debuggen Ihrer Anwendung“.Gute Erklärung mit allen erforderlichen Beispielen.

Das Einzige, was Sie befolgen müssen, um einen ordnungsgemäß funktionierenden Verlaufsserver für Spark zu erhalten, ist, Ihren Spark-Kontext in Ihrer Anwendung zu schließen.Andernfalls sieht der Anwendungsverlaufsserver Sie nicht als VOLLSTÄNDIG an und zeigt nichts an (obwohl die Benutzeroberfläche des Verlaufs zugänglich, aber nicht so sichtbar ist).

Andere Tipps

Sie können über den Befehl auf Protokolle zugreifen

yarn logs -applicationId <application ID> [OPTIONS]

Allgemeine Optionen sind:

  • appOwner <Application Owner> - AppOwner (wird als aktueller Benutzer angenommen, wenn nicht angegeben)
  • containerId <Container ID> - ContainerID (muss angegeben werden, wenn die Knotenadresse angegeben ist)
  • nodeAddress <Node Address> - NodeAddress im Format nodename:port (muss angegeben werden, wenn die Container-ID angegeben ist)

Beispiele:

yarn logs -applicationId application_1414530900704_0003                                      
yarn logs -applicationId application_1414530900704_0003 myuserid

// the user ids are different
yarn logs -applicationId <appid> --appOwner <userid>

Keine der Antworten macht klar, wo nach Protokollen gesucht werden muss (auch wenn sie in Teilen vorliegen), also stelle ich sie zusammen.

Wenn die Protokollaggregation aktiviert ist (mit der Datei „garn.log-aggregation-enable“ in „garn-site.xml“), führen Sie dies aus

yarn logs -applicationId <app ID>

Wenn dies jedoch nicht aktiviert ist, muss man auf den Data-Node-Rechner gehen und nachschauen

$HADOOP_HOME/logs/userlogs/application_1474886780074_XXXX/

application_1474886780074_XXXX ist die Anwendungs-ID

Es protokolliert auf:

/var/log/hadoop-yarn/containers/[application id]/[container id]/stdout

Die Protokolle befinden sich auf jedem Knoten, auf dem Ihr Spark-Job ausgeführt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top