Я работаю над проектом maven. Apache spark имеет собственную функциональность log4j. Есть ли способ, с помощью которого я могу записывать журналы искры Apache и свои собственные операторы журнала в файл?




Как и в любом другом Java-приложении, вам нужны jar-файлы в пути к классам и вам нужен файл конфигурации log4j.
[1] Банки в пути к классам
Spark уже поставляется с этими двумя в своей папке jars (под $SPARK_HOME):
slf4j-api-1.7.16.jar
slf4j-log4j12-1.7.16.jar
Итак, вам просто нужен "предоставленный" в вашем pom, чтобы вы могли скомпилировать его:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.16</version>
<scope>provided</scope>
</dependency>
Обратите внимание, что другая версия Spark может поставляться с другой версией slf, поэтому загляните в папку [jars], чтобы сопоставить правильную версию с используемой вами Spark.
[2] Файл конфигурации log4j
conf в домашнем каталоге spark.log4j.properties.template в log4j.propertiesТеперь вы можете добавить log.debug в свой код.
Обратите внимание, что код может выполняться на Драйвере или Исполнителе, поэтому журналы будут находиться на разных машинах в зависимости от того, где он выполняется.