【问题标题】:Spark logging isn't being returned sent to driver, messages only exist in workersSpark 日志记录未返回发送给驱动程序,消息仅存在于工作人员中
【发布时间】:2017-03-18 09:20:48
【问题描述】:

我刚刚开始使用的 Spark 集群出现了非常奇怪的行为。

日志记录的正常行为是当运行spark-submit 时,会看到如下日志消息:

INFO 2016-11-04 13:14:10,671 org.apache.spark.executor.Executor: Finished task 227.0 in stage 4.0 (TID 3168). 1992 bytes result sent to driver

这些通常会很快填满控制台,尤其是当应用程序使用大量分区时。

但在运行 spark-submit 后,我​​没有看到任何来自 Spark 的常见日志消息。也许大约 5 行。相反,所有正常的日志消息都在 Spark UI 的驱动程序标准输出中。

那么问题是什么设置以及在哪里可能告诉 Spark 不要将这些日志条目返回给驱动程序?

这相当令人沮丧,因为当日志消息分散到多个位置时,很难调试应用程序。通常,我只是在运行 spark-submit 后观看日志涌入我的屏幕,然后我就能感觉到它在做什么。现在我无法获得那种感觉,因为我必须在事件发生后查看日志

【问题讨论】:

  • 用日志收集来控制单点故障听起来很冒险,你不觉得吗?
  • @LostInOverflow 我正在尝试调试应用程序。

标签: logging apache-spark apache-spark-standalone


【解决方案1】:

所以在深入了解我正在使用的 jar 之后,我发现它是用一个奇怪的 log4j 文件构建的。我不知道它在这个文件中是什么,但是有些东西阻止了日志到达驱动程序。一旦我在没有这个 log4j 文件的情况下重建 jar,日志就可以正常工作!!

# Set everything to be logged to the console
log4j.rootCategory=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n

# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark-project.jetty=WARN
log4j.logger.org.spark-project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark=WARN
log4j.logger.org.apache.hadoop=INFO
log4j.logger.io.netty=INFO
log4j.logger.com.datastax.cassandra=INFO


# SPARK-9183: Settings to avoid annoying messages when looking up nonexistent UDFs in SparkSQL with Hive support
log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR

【讨论】:

    【解决方案2】:

    这个问题现在有点老了,但是对于那些运行 spark YARN 作业的人,您可以使用以下命令查看日志:

    yarn logs -applicationId <Your applicationId>
    

    我发现这个命令对于在 YARN 集群模式下调试非常有用。

    没有完全回答 OP 的问题,但看看他们是否可以以这种方式查看日志可能会很有趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 2018-11-03
      相关资源
      最近更新 更多