当前位置: 首页 > 知识库问答 >
问题:

如何设置默认的火花日志记录级别?

夏祺然
2023-03-14

我将pyspark应用程序从我自己的工作站上的pycharm启动到一个8节点集群。这个群集还有编码在spark-defaults.conf和spark-env.sh中的设置

spark = SparkSession \
        .builder \
        .master("spark://stcpgrnlp06p.options-it.com:7087") \
        .appName(__SPARK_APP_NAME__) \
        .config("spark.executor.memory", "50g") \
        .config("spark.eventlog.enabled", "true") \
        .config("spark.eventlog.dir", r"/net/share/grid/bin/spark/UAT/SparkLogs/") \
        .config("spark.cores.max", 128) \
        .config("spark.sql.crossJoin.enabled", "True") \
        .config("spark.executor.extraLibraryPath","/net/share/grid/bin/spark/UAT/bin/vertica-jdbc-8.0.0-0.jar") \
        .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") \
        .config("spark.logConf", "true") \
        .getOrCreate()

    sc = spark.sparkContext
    sc.setLogLevel("INFO")
        .config("spark.logConf", "true") \
sc.setLogLevel("INFO")

显示未来的信息消息,但到那时已经太晚了。

如何设置spark开始时的默认日志记录级别?

共有1个答案

璩珂
2023-03-14

您还可以像下面这样以编程方式更新日志级别,从JVM中获得spark对象,然后像下面这样做

    def update_spark_log_level(self, log_level='info'):
        self.spark.sparkContext.setLogLevel(log_level)
        log4j = self.spark._jvm.org.apache.log4j
        logger = log4j.LogManager.getLogger("my custom Log Level")
        return logger;


use:

logger = update_spark_log_level('debug')
logger.info('you log message')

如果你需要更多细节,请随时发表评论

 类似资料:
  • 我注意到在 Spark 中的规则探索器每次催化剂更改计划时都会执行跟踪日志: https://github . com/Apache/spark/blob/78801881 c 405 de 47 f 7 e 53 EEA 3 e 0420 DD 69593 DBD/SQL/catalyst/src/main/Scala/org/Apache/spark/SQL/catalyst/rules/ru

  • 我想更改我的Quarkus应用程序的日志记录级别。 如何从配置文件或运行时执行此操作?

  • 我有一个多线程Java应用程序,每个线程都是一个扩展基类的类。其中一个线程偶尔会给基类中的一个方法大量机器生成的数据,而其他线程只给出少量的人类类型数据。我想在比机器数据更高的日志级别上记录这些人类类型的消息,但是由于基类是所有线程的一部分,我无法在代码中区分出来。 一种解决方案是通知扩展类中的基类在不同的级别上登录,但是我必须将这些知识硬编码到应用程序中,这很难看。 我想做的是通过我的logba

  • 这是一个很简单的问题,但我找不到信息。 (可能我对Java框架的知识严重缺乏) 如何使用application.properties设置日志级别? 和日志文件位置等?

  • 有人能帮我设置日志级别以调试和捕获更多日志所需的spark配置吗

  • 我在Spring Boot(1.3M1)中使用了application.properties,并开始将其转换为yaml文件,因为它变得越来越复杂。 但我在将其转换为YAML时遇到了问题: