以编程方式减少 spark 中的日志 shell
Programmatically reduce log in a spark shell
我可以通过删除所有 "INFO"
标志以编程方式减少 spark shell 中的日志吗?
它在向我的 window 发送垃圾邮件,我无法分析实际输出
例如:
15/01/09 12:23:02 INFO Executor: Finished task 0.0 in stage 0.0 (TID 0). 649 bytes result sent to driver
15/01/09 12:23:02 INFO TaskSetManager: Finished task 0.0 in stage 0.0 (TID 0) in 500 ms on localhost (1/1)
15/01/09 12:23:02 INFO DAGScheduler: Stage 0 (count at MainApp.scala:31) finished in 0.520 s
15/01/09 12:23:02 INFO TaskSchedulerImpl: Removed TaskSet 0.0, whose tasks have all completed, from pool
15/01/09 12:23:02 INFO DAGScheduler: Job 0 finished: count at MainApp.scala:31, took 0.639191 s
正在寻找任何替代品(如果有)!
这会删除大部分信息消息(虽然不是全部)
import org.apache.log4j.{Level, Logger}
// ...
val level = Level.WARN
Logger.getLogger("org").setLevel(level)
Logger.getLogger("akka").setLevel(level)
或作为 util 方法:
def setLogLevel(level: String): Unit = {
setLogLevel(Level.toLevel(level, Level.INFO))
}
def setLogLevel(level: Level): Unit = {
Logger.getLogger("org").setLevel(level)
Logger.getLogger("akka").setLevel(level)
}
spark-submit --options artifact.jar 2>stderr.log
然后在新的 window
中使用 tail -f stderr.log
这应该可以让您的 window 保持干净的标准输出,并能够在您需要时访问日志
只需将它添加到您的 Spark 源代码中,它就会删除日志
import org.apache.log4j.Logger
import org.apache.log4j.Level
Logger.getLogger("org").setLevel(Level.OFF)
Logger.getLogger("akka").setLevel(Level.OFF)
我可以通过删除所有 "INFO"
标志以编程方式减少 spark shell 中的日志吗?
它在向我的 window 发送垃圾邮件,我无法分析实际输出
例如:
15/01/09 12:23:02 INFO Executor: Finished task 0.0 in stage 0.0 (TID 0). 649 bytes result sent to driver
15/01/09 12:23:02 INFO TaskSetManager: Finished task 0.0 in stage 0.0 (TID 0) in 500 ms on localhost (1/1)
15/01/09 12:23:02 INFO DAGScheduler: Stage 0 (count at MainApp.scala:31) finished in 0.520 s
15/01/09 12:23:02 INFO TaskSchedulerImpl: Removed TaskSet 0.0, whose tasks have all completed, from pool
15/01/09 12:23:02 INFO DAGScheduler: Job 0 finished: count at MainApp.scala:31, took 0.639191 s
正在寻找任何替代品(如果有)!
这会删除大部分信息消息(虽然不是全部)
import org.apache.log4j.{Level, Logger}
// ...
val level = Level.WARN
Logger.getLogger("org").setLevel(level)
Logger.getLogger("akka").setLevel(level)
或作为 util 方法:
def setLogLevel(level: String): Unit = {
setLogLevel(Level.toLevel(level, Level.INFO))
}
def setLogLevel(level: Level): Unit = {
Logger.getLogger("org").setLevel(level)
Logger.getLogger("akka").setLevel(level)
}
spark-submit --options artifact.jar 2>stderr.log
然后在新的 window
中使用tail -f stderr.log
这应该可以让您的 window 保持干净的标准输出,并能够在您需要时访问日志
只需将它添加到您的 Spark 源代码中,它就会删除日志
import org.apache.log4j.Logger
import org.apache.log4j.Level
Logger.getLogger("org").setLevel(Level.OFF)
Logger.getLogger("akka").setLevel(Level.OFF)