Hive on spark日志打印问题总结(任务执行进度的透明化)

一:问题

hive on spark中,当切到spark计算引擎的时候发现打印的日志不全,默认的日志只到下图就结束了

 

对比之前mapreduce的日志

Hive on spark日志打印问题总结(任务执行进度的透明化)_第1张图片

我们可以很容易的发现MR日志有很详细的进度,用户可以通过查看这个map和reduce的进度来查看任务的执行情况,但是spark我们怎么办呢?

二:分析

通过在hiveserver端查看MR这些日志打印的行,都是SessionState这个类打印的,而这个类在hive-log4j.properties是我们自定义告警级别的,默认的告警基本是WARN

 

通过查看hive源码可以看到spark的进度信息主要集中在下面的三个类中

  • RemoteSparkJobMonitor
  • LocalSparkJobMonitor
  • SparkJobMonitor

所以如果我们想实时看到spark任务执行的进度,我们需要把这三个类设置为Info级别:

 

三:结果:

设置好了之后我们可以看到spark的执行和统计信息一目了然。Bingo!

 

Hive on spark日志打印问题总结(任务执行进度的透明化)_第2张图片

你可能感兴趣的:(hadoop,hive,spark)