Reinigung Spark-history-logs
Wir haben lange läuft EMR-cluster, in dem wir unterbreiten Spark-jobs. Ich sehe, dass im Laufe der Zeit die HDFS füllt sich mit der Spark application-logs, die manchmal macht ein host ungesund wie angezeigt von EMR/Garn (?).
Läuft hadoop fs -R -h /
zeigt [1], die eindeutig zeigt, keine Anwendung Protokolle nie gelöscht.
Wir haben die spark.history.fs.cleaner.enabled
zu true
(validiert diese in der Funke UI) und hofften, dass Sie die anderen Standardeinstellungen, wie Reiniger Intervall (1 Tag) und Reiniger, max Alter (7d) ist erwähnt: http://spark.apache.org/docs/latest/monitoring.html#spark-configuration-options würde, übernimmt die Bereinigung dieser Protokolle. Aber das ist nicht der Fall.
Irgendwelche Ideen?
[1]
-rwxrwx--- 2 hadoop spark 543.1 M 2017-01-11 13:13 /var/log/spark/apps/application_1484079613665_0001
-rwxrwx--- 2 hadoop spark 7.8 G 2017-01-17 10:51 /var/log/spark/apps/application_1484079613665_0002.inprogress
-rwxrwx--- 2 hadoop spark 1.4 G 2017-01-18 08:11 /var/log/spark/apps/application_1484079613665_0003
-rwxrwx--- 2 hadoop spark 2.9 G 2017-01-20 07:41 /var/log/spark/apps/application_1484079613665_0004
-rwxrwx--- 2 hadoop spark 125.9 M 2017-01-20 09:57 /var/log/spark/apps/application_1484079613665_0005
-rwxrwx--- 2 hadoop spark 4.4 G 2017-01-23 10:19 /var/log/spark/apps/application_1484079613665_0006
-rwxrwx--- 2 hadoop spark 6.6 M 2017-01-23 10:31 /var/log/spark/apps/application_1484079613665_0007
-rwxrwx--- 2 hadoop spark 26.4 M 2017-01-23 11:09 /var/log/spark/apps/application_1484079613665_0008
-rwxrwx--- 2 hadoop spark 37.4 M 2017-01-23 11:53 /var/log/spark/apps/application_1484079613665_0009
-rwxrwx--- 2 hadoop spark 111.9 M 2017-01-23 13:57 /var/log/spark/apps/application_1484079613665_0010
-rwxrwx--- 2 hadoop spark 1.3 G 2017-01-24 10:26 /var/log/spark/apps/application_1484079613665_0011
-rwxrwx--- 2 hadoop spark 7.0 M 2017-01-24 10:37 /var/log/spark/apps/application_1484079613665_0012
-rwxrwx--- 2 hadoop spark 50.7 M 2017-01-24 11:40 /var/log/spark/apps/application_1484079613665_0013
-rwxrwx--- 2 hadoop spark 96.2 M 2017-01-24 13:27 /var/log/spark/apps/application_1484079613665_0014
-rwxrwx--- 2 hadoop spark 293.7 M 2017-01-24 17:58 /var/log/spark/apps/application_1484079613665_0015
-rwxrwx--- 2 hadoop spark 7.6 G 2017-01-30 07:01 /var/log/spark/apps/application_1484079613665_0016
-rwxrwx--- 2 hadoop spark 1.3 G 2017-01-31 02:59 /var/log/spark/apps/application_1484079613665_0017
-rwxrwx--- 2 hadoop spark 2.1 G 2017-02-01 12:04 /var/log/spark/apps/application_1484079613665_0018
-rwxrwx--- 2 hadoop spark 2.8 G 2017-02-03 08:32 /var/log/spark/apps/application_1484079613665_0019
-rwxrwx--- 2 hadoop spark 5.4 G 2017-02-07 02:03 /var/log/spark/apps/application_1484079613665_0020
-rwxrwx--- 2 hadoop spark 9.3 G 2017-02-13 03:58 /var/log/spark/apps/application_1484079613665_0021
-rwxrwx--- 2 hadoop spark 2.0 G 2017-02-14 11:13 /var/log/spark/apps/application_1484079613665_0022
-rwxrwx--- 2 hadoop spark 1.1 G 2017-02-15 03:49 /var/log/spark/apps/application_1484079613665_0023
-rwxrwx--- 2 hadoop spark 8.8 G 2017-02-21 05:42 /var/log/spark/apps/application_1484079613665_0024
-rwxrwx--- 2 hadoop spark 371.2 M 2017-02-21 11:54 /var/log/spark/apps/application_1484079613665_0025
-rwxrwx--- 2 hadoop spark 1.4 G 2017-02-22 09:17 /var/log/spark/apps/application_1484079613665_0026
-rwxrwx--- 2 hadoop spark 3.2 G 2017-02-24 12:36 /var/log/spark/apps/application_1484079613665_0027
-rwxrwx--- 2 hadoop spark 9.5 M 2017-02-24 12:48 /var/log/spark/apps/application_1484079613665_0028
-rwxrwx--- 2 hadoop spark 20.5 G 2017-03-10 04:00 /var/log/spark/apps/application_1484079613665_0029
-rwxrwx--- 2 hadoop spark 7.3 G 2017-03-10 04:04 /var/log/spark/apps/application_1484079613665_0030.inprogress
- Was EMR-AMI-version verwenden Sie ? Sind diese container/Vollstrecker logs ? Verwenden Sie GARN-Modus ?
- Haben Sie in der Lage gewesen, um dieses problem zu beheben? Wir laufen schon in etwas ähnliches, wo unsere 1 lange Ausführung Anwendung hat nie seine Protokolle gereinigt.
- Ich denke, ferris-tseng korrekt ist. Werde es ausprobieren. Schlagen ähnliche Probleme
- Wir haben versucht, diese Lösung, und es nicht scheinen, um den trick zu tun. Der Grund dafür ist in unserer Anwendung ist die lange Laufzeit. Für die Bereinigung stattfinden kann, muss die Anwendung beenden, wird es nicht drehen-Protokolle zum ausführen von Anwendungen. Wir mussten komplett deaktivieren Spark-Geschichte-Server.
- Ich denke, wir gehen zu schlagen, das gleiche Problem. werde schauen ob ich etwas anderes finden
- Shah kann ich bestätigen, dass die Lösung geschrieben von Ferris Tseng arbeitet. EMR-support empfiehlt auch die gleiche Lösung.
- aber es würde nicht funktionieren, für lange laufende Anwendungen richtig ? Es kann nicht mit Dateien klar, die derzeit geschrieben werden. Bekam ähnliche Antworten von AWS zu deaktivieren Sie die Protokolle für lang laufende app
- Nein, es funktioniert nicht. Dies liegt daran, diese Eigenschaften verwendet werden, die durch die Geschichte-server und nicht der eigentliche Funke Anwendung. Sie brauchen nicht neu zu starten, die Funke-Anwendung, können Sie einfach aktualisieren Sie die spark-defaults.conf und starten Sie den history-server. Ich habe es in unserer langen Anwendung und haben keine Probleme hatte, für mehrere Monate jetzt. Für die Dateien, die derzeit geschrieben werden, Sie müssen die Anwendung neu starten, manchmal aber Recht? Was neue Implementierungen usw?
- Habe ich nicht verstanden vorherigen Kommentar, sagen Sie, dass für eine ausgeführte Anwendung, die akzeptierten Antworten können die unten verringern Sie die Größe der Protokolldatei, in meinem Fall habe ich eine einzelne Datei von 20GB , ich habe den max im Alter von 1 Std. und Intervall 1H und immer noch die Ereignis-log-Datei nicht drehen - ich habe spark-streaming-Anwendung, und ich nicht neu starten, einfach einen Antrag auf EMR-cluster
- Entschuldigung. Ich habe deine Frage falsch verstanden. Sie sind richtig, dass es nur die Bereinigung der Protokolle, wenn die Anwendung neu gestartet wird. Protokolle generiert, die vom aktuell ausgeführten app nicht bereinigt werden, auch wenn Sie vielleicht abgelaufen sind, Ihr maximales Alter.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich lief in dieses Problem auf
emr-5.4.0
, und legen Siespark.history.fs.cleaner.interval
zu1h
, und war in der Lage, den cleaner ausführen.Referenz, hier ist das Ende meiner
spark-defaults.conf
Datei:Nachdem Sie die änderung vorgenommen haben, starten Sie Ihren spark-Geschichte-server.
Eine weitere Klärung: zum Einstellen dieser Werte während der Anwendung führen, ich.e
spark-submit
über--conf
hat keine Wirkung. Entweder setzen Sie bei der clustererstellung über das EMR-configuration-API oder manuell Bearbeiten Sie die spark-defaults.conf, diese Werte festzulegen, und starten Sie den spark-Geschichte-server. Beachten Sie auch, dass die logs sauber gemacht werden, bis das nächste mal Ihr Spark app neu gestartet wird. Zum Beispiel, wenn Sie eine lange Laufzeit Spark streaming job, es wird nicht löschen Sie alle Protokolle, die für die Anwendung laufen und halten akkumulieren Protokolle. Und wenn das nächste mal der job neu gestartet wird (werden kann, weil eine Bereitstellung) es wird die Bereinigung der älteren Protokolle.