2016-07-19 32 views
0

Ich versuche, die Ursache für einen Fehler in der letzten Spark-Anwendung in der Produktion zu finden. Wenn die Spark-Anwendung ausgeführt wird, kann ich die known.nodemanager.log-dir-Eigenschaft von NodeManager überprüfen, um die Spark-Executor-Containerprotokolle abzurufen.Wie Spark-Executor-Protokolle in Garn gespeichert werden, nachdem die Spark-Anwendung abgestürzt ist

Der Behälter hat Protokolle sowohl für die Lauffunken Anwendungen

Hier ist die Ansicht des Behälters logs: drwx - x --- 3 Garn-Garn 51 19 Jul 9.04 application_1467068598418_0209 drwx - x --- 5 Garngarn 141 Jul 19 09:04 application_1467068598418_0210

Aber wenn die Anwendung beendet wird, werden beide Anwendungsprotokolle automatisch gelöscht. Ich habe alle Log-Aufbewahrungseinstellungen usw. in Garn auf eine sehr große Anzahl gesetzt. Diese Protokolle werden jedoch gelöscht, sobald die Spark-Anwendungen abgestürzt sind.

Frage: Wie können wir diese Spark-Anwendungsprotokolle in Yarn zum Debuggen beibehalten, wenn die Spark-Anwendung aus irgendeinem Grund abgestürzt ist.

Antwort

1

Der folgende Speicherort verfügt über Executor-Protokolle.

HADOOP_USER_NAME=mapred hadoop fs -ls /hadoop/log/yarn/user/USER/logs/APPLICATION_ID 

auch sicher, dass die folgende Eigenschaft: -

"yarn.log-aggregation-enable","false" 
"spark.eventLog.enabled", "true"  
"spark.eventLog.dir","hdfs:///user/spark/applicationHistory" 
+0

für Ihre Antwort so vielen Dank. Ich habe bereits Log-Aggregation aktiviert, um wahr zu sein. Und ich benutze Cloudera 5.5, ich habe keinen Hadoop/Garn Ordner in HDFS. Wie kann ich die Yarn-Protokollierung aktivieren, um Spark-Executor-Protokolle in HDFS zu speichern? – Alchemist

+0

"spark.eventLog.enabled", "true" und "spark.eventLog.dir", "hdfs: /// user/spark/applicationHistory" Durch das Setzen dieser beiden Eigenschaften können wir die Executor-Protokolle in Spark History Server sehen . – morfious902002

+0

Ja, das funktioniert sehr gut. – Alchemist