Spark local模式运行时executor日志的默认位置及配置方法是什么
Spark Local模式Executor日志默认存储路径
Spark Local模式下,Driver与Executor运行在同一JVM进程内,默认不会生成独立的Executor日志文件,日志默认直接输出到进程的控制台(即你执行测试命令的终端输出流)。
若你已经配置了日志落盘,默认日志会存储在执行命令的当前工作目录,而非SPARK_HOME目录下。SPARK_HOME下的work目录存放Executor日志是集群运行模式的逻辑,Local模式默认不会生成该目录。
自定义Executor日志存储路径的方法
- 方法1:通过log4j配置文件自定义
首先编写自定义的log4j.properties配置文件,示例配置如下:
初始化SparkSession时指定加载该配置文件即可生效(Local模式下配置Driver参数即可覆盖Executor日志配置):# 配置Executor日志输出到指定文件 log4j.appender.executorFile=org.apache.log4j.FileAppender log4j.appender.executorFile.File=/你自定义的绝对路径/executor.log log4j.appender.executorFile.Append=true log4j.appender.executorFile.layout=org.apache.log4j.PatternLayout log4j.appender.executorFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n # 指定Executor相关日志输出到上述文件 log4j.logger.org.apache.spark.executor=INFO, executorFilefrom pyspark.sql import SparkSession spark = SparkSession.builder \ .master("local[*]") \ .appName("pyspark-unit-test") \ .config("spark.driver.extraJavaOptions", "-Dlog4j.configuration=file:/你存放log4j.properties的绝对路径/log4j.properties") \ .getOrCreate() - 方法2:通过Spark本地目录配置指定
若无需单独定制日志格式,可直接配置spark.local.dir参数指定Spark本地工作目录,Executor日志会自动生成在该目录的work子文件夹下,按应用ID分类归档:from pyspark.sql import SparkSession spark = SparkSession.builder \ .master("local[*]") \ .appName("pyspark-unit-test") \ .config("spark.local.dir", "/你自定义的Spark工作根目录") \ .getOrCreate()
如果是通过pytest fixture统一初始化Spark实例,将上述配置添加到fixture的SparkSession构造逻辑中,即可全局生效。
内容的提问来源于stack exchange,提问作者user1701840
相关产品推荐
相关产品推荐

