获取低于WARN的日志语句会在spark-submit脚本中显示

时间:2018-02-19 18:53:27

标签: python apache-spark logging

我有一个python入口点test_logging.py,我在集群模式下提交给spark。它看起来像:

import logging
logger = logging.getLogger(__name__)
from pyspark.sql import SparkSession
with SparkSession.builder.getOrCreate() as spark:
    spark.sparkContext.setLogLevel("DEBUG")
    logger.debug("Debug")
    logger.info("Info")
    logger.warning("Warning")

spark-submit调用如下所示:

/usr/hdp/current/spark2-client/bin/spark-submit
    --conf
    spark.app.name=my-app
    --conf
    spark.driver.cores=8
    --conf
    spark.driver.memory=2g
    --conf
    spark.dynamicAllocation.enabled=true
    --conf
    spark.dynamicAllocation.minExecutors=10
    --conf
    spark.dynamicAllocation.maxExecutors=20
    --conf
    spark.executor.cores=8
    --conf
    spark.executor.instances=20
    --conf
    spark.executor.memory=8g
    --conf
    spark.yarn.executor.memoryOverhead=8g
    --conf
    spark.shuffle.service.enabled=true
    --conf
    spark.executorEnv.PYTHONHASHSEED=0
    --conf
    spark.home={some_dir}/spark2-client
    --conf
    spark.sql.catalogImplementation=hive
    --conf
    spark.yarn.appMasterEnv.PYTHONHASHSEED=0
    --conf
    spark.master=yarn
    --conf
    spark.submit.deployMode=cluster
    --conf
    spark.files={some_dir}/spark2-client/conf/hive-site.xml
    test_logging.py

问题是只有最终的日志语句(警告)出现在spark stdout日志中。我的理解from herespark.sparkContext.setLogLevel("DEBUG")行应该允许调试级语句出现,但它似乎不起作用。

如何使调试级别和信息级别的日志语句也显示出来?

更新

通过设置以下内容,可以显示那些调试和信息日志语句:

logging.basicConfig(level=logging.DEBUG)

我仍然不完全确定为什么修改根记录器的级别有效,而我最初尝试的方法不起作用。我也不明白为什么以下不起作用:

logger.setLevel(logging.DEBUG)

非常感谢任何解释!

0 个答案:

没有答案