【问题标题】:Logger is not working inside spark UDF on cluster记录器在集群上的 spark UDF 内不工作
【发布时间】:2018-09-13 06:59:11
【问题描述】:

我已在我的 UDF 中放置 log.info 语句,但它在集群上失败了。本地工作正常。这是sn-p:

def relType = udf((colValue: String, relTypeV: String) => {
var relValue = "NA"
val relType = relTypeV.split(",").toList
val relTypeMap = relType.map { col =>
  val split = col.split(":")
  (split(0), split(1))

}.toMap

//    val keySet = relTypeMap
relTypeMap.foreach { x =>
  if ((x._1 != null || colValue != null || x._1.trim() != "" || colValue.trim() != "") && colValue.equalsIgnoreCase(x._1)) {
    relValue = relTypeMap.getOrElse(x._1, "NA")
    log.info("testing.........")
  }
}
relValue
})

另外,当我在 UDF 中调用任何函数并使用日志语句时,日志不会打印在集群中,它也可以正常工作。

【问题讨论】:

  • 你的日志配置是什么?您是否将其配置为打印?如果是这样,这些语句将打印在远程工作人员上,而不是您当前的机器上。
  • 这是我的 log4j.properties

标签: scala apache-spark hadoop user-defined-functions


【解决方案1】:
log4j.appender.myConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.myConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.myConsoleAppender.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %p %c{1}: %m%n


log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppender.File=src//main//resources//spark.log
log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingAppender.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %p %c{1}: %m%n

log4j.appender.RollingAppenderU=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppenderU.File=src//main//resources//sparkU.log
log4j.appender.RollingAppenderU.DatePattern='.'yyyy-MM-dd
log4j.appender.RollingAppenderU.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingAppenderU.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %p %c{1}: %m%n


# By default, everything goes to console and file
log4j.rootLogger=INFO, RollingAppender, myConsoleAppender

# My custom logging goes to another file
log4j.logger.myLogger=INFO, RollingAppenderU

# The noisier spark logs go to file only
log4j.logger.spark.storage=INFO, RollingAppender
log4j.additivity.spark.storage=false
log4j.logger.spark.scheduler=INFO, RollingAppender
log4j.additivity.spark.scheduler=false
log4j.logger.spark.CacheTracker=INFO, RollingAppender
log4j.additivity.spark.CacheTracker=false
log4j.logger.spark.CacheTrackerActor=INFO, RollingAppender
log4j.additivity.spark.CacheTrackerActor=false
log4j.logger.spark.MapOutputTrackerActor=INFO, RollingAppender
log4j.additivity.spark.MapOutputTrackerActor=false
log4j.logger.spark.MapOutputTracker=INFO, RollingAppender
log4j.additivty.spark.MapOutputTracker=false

【讨论】:

    猜你喜欢
    • 2018-08-23
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 2020-05-14
    • 2020-04-25
    • 2021-04-19
    • 1970-01-01
    • 2015-08-20
    相关资源
    最近更新 更多