如何使用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
。
请注意,代码可能 运行 在驱动程序或执行程序上,因此日志将在不同的机器上,具体取决于它 运行 的位置。
我正在做一个 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
。
请注意,代码可能 运行 在驱动程序或执行程序上,因此日志将在不同的机器上,具体取决于它 运行 的位置。