如何使用apache spark在文件中写入日志

How to write logs in a file using apache spark

我正在做一个 Maven 项目。 Apache spark 有自己的 log4j 功能。有没有一种方法可以将 apache spark 日志和我自己的日志语句写入文件?

与任何其他 java 应用程序一样,您需要类路径中的 jar 和 log4j 配置文件。

[1] 类路径中的 Jars

Spark 已经在其 jars 文件夹中(在 $SPARK_HOME 下)附带了这两个:

slf4j-api-1.7.16.jar 
slf4j-log4j12-1.7.16.jar

所以你只需要在你的 pom 中有一个 "provided" 这样你就可以用它编译:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.16</version>
    <scope>provided</scope>
</dependency>

请注意,不同版本的 Spark 可能带有不同版本的 slf,因此请查看 [jars] 文件夹,将正确的版本与您使用的 Spark 相匹配。

[2] 一个 log4j 配置文件

  • 转到 spark 主目录下的 conf 文件夹。
  • 将此文件 log4j.properties.template 重命名为 log4j.properties
  • 添加您的配置

现在您可以在代码中添加 log.debug

请注意,代码可能 运行 在驱动程序或执行程序上,因此日志将在不同的机器上,具体取决于它 运行 的位置。