Wie in früheren Antworten erläutert, ändert sich die Ausführlichkeit eines Spark-Clusters am besten durch eine Änderung der corresponding log4j.properties. Doch auf Dataproc Funken auf Garn läuft, deshalb müssen wir die globale Konfiguration anpassen und nicht/usr/lib/Funken/confWas ist die eleganteste und robusteste Art, LogPegel für Spark anzupassen?
Mehrere Vorschläge:
Auf Dataproc wir mehrere gcloud Befehle und Eigenschaften haben, können wir weitergeben während der Cluster-Erstellung. See documentation Ist es möglich, durch die Angabe
--properties 'log4j:hadoop.root.logger=WARN,console'
Vielleicht nicht, wie von der Dokumentation des log4j.properties unter/etc/hadoop/conf zu ändern:
Der --properties Befehl nicht Konfigurationsdateien ändern kann nicht gezeigt oben.
Eine andere Möglichkeit wäre ein Shell-Skript während Cluster init zu bedienen und laufen sed:
# change log level for each node to WARN
sudo sed -i -- 's/log4j.rootCategory=INFO, console/log4j.rootCategory=WARN, console/g'\
/etc/spark/conf/log4j.properties
sudo sed -i -- 's/hadoop.root.logger=INFO,console/hadoop.root.logger=WARN,console/g'\
/etc/hadoop/conf/log4j.properties
Aber ist es genug oder müssen wir auch die env Variable hadoop.root.logger ändern?
Der zweite Weg funktioniert tatsächlich für mich, aber ich frage mich immer noch, ob es einen besseren Weg gibt, ohne die Konfigurationsdateien zu bearbeiten, die sich im Laufe der Zeit und Releases ändern können. – Frank