Ох! Хотел про логирование спросить, а его тут уже обсуждают 🤩 памагити, привет всем)
Запускаю джобу в ярне в кластерном режиме, пытаюсь отдебажить сабж и разобраться, почему логирование настраивается не так как нужно, знакомлюсь с кодом попутно. Спарк 3.0.1
- В
launchcintainer.sh вижу в конце
java .... org.apache.spark.deploy.yarn.ApplicationMaster. Окей, видим там
-
https://github.com/apache/spark/tree/2b147c4cd50da32fe2b4167f97c8142102a0510d/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala#L841- прям первой строкой
SignalUtils.registerLogger(log)- смотрим в Logging.log()
https://github.com/apache/spark/tree/2b147c4cd50da32fe2b4167f97c8142102a0510d/core/src/main/scala/org/apache/spark/internal/Logging.scala#L49- два вызова, можно там прям посмотреть, ничего сложного, попадаем в
initializeLogging-
https://github.com/apache/spark/tree/2b147c4cd50da32fe2b4167f97c8142102a0510d/core/src/main/scala/org/apache/spark/internal/Logging.scala#L124- там проверка на то, что Logging.isLog4j12() == true, у меня это так, потому что в stderr контейнера вижу
-
SLF4J: Found binding in [jar:file:/home/yarn/local-dirs/filecache/13/spark-3.0.1-bin-hadoop3.2.jar/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class] + еще сам дополнительно чекнул из самой джобы
Я к чему -- видно, что
https://github.com/apache/spark/tree/2b147c4cd50da32fe2b4167f97c8142102a0510d/core/src/main/scala/org/apache/spark/internal/Logging.scala#L137должно вывестить в stderr
-
"Using Spark's default log4j profile: $defaultLogProps"-
"либо Spark was unable to load $defaultLogProps"Я ни того, ни другого не вижу, следовательно log4j12Initialized = true.
Вопрос -- в какой момент эта фигня настраивается?