Spark应用程序运行的日志存在哪里(转)
Spark应⽤程序运⾏的⽇志存在哪⾥(转)
原⽂链接:
在很多情况下,我们需要查看driver和executors在运⾏应⽤程序时候产⽣的⽇志,这些⽇志对于我们调试和查问题是很重要的。
  ⽇志确切的存放路径和部署模式相关:
  (1)、如果是Spark Standalone模式,我们可以直接在Master UI界⾯查看应⽤程序的⽇志,在默认情况下这些⽇志是存储在worker节点的work⽬录下,这个⽬录可以通过SPARK_WORKER_DIR参数进⾏配置。
  (2)、如果是Mesos模式,我们同样可以通过Mesos的Master UI界⾯上看到相关应⽤程序的⽇志,这些⽇志是存储在Mesos slave的work⽬录下。
  (3)、如果是YARN模式,最简单地收集⽇志的⽅式是使⽤YARN的⽇志收集⼯具(yarn logs -applicationId ),这个⼯具可以收集你应⽤程序相关的运⾏⽇志,但是这个⼯具是有限制的:应⽤程序必须运⾏完,因为YARN必须⾸先聚合这些⽇志;⽽且你必须开启⽇志聚合功能(yarn.log-aggregation-enable,在默认情况下,这个参数是false)。
  如果你运⾏在YARN模式,你可以在ResourceManager节点的WEB UI页⾯选择相关的应⽤程序,在页⾯点击表格中Tracking UI列
申请博客帐号的ApplicationMaster,这时候你可以进⼊到Spark作业监控的WEB UI界⾯,这个页⾯就是你Spark应⽤程序的proxy界⾯,⽐如,当然你也可以通过访问Driver所在节点开启的4040端⼝,同样可以看到这个界⾯。
  到这个界⾯之后,可以点击Executors菜单,这时候你可以进⼊到Spark程序的Executors界⾯,⾥⾯列出所有Executor信息,以表格的形式展⽰,在表格中有Logs这列,⾥⾯就是你Spark应⽤程序运⾏的⽇志。如果你在程序中使⽤了println(....)输出语句,这些信息会在stdout⽂件⾥⾯显⽰;其余的Spark运⾏⽇志会在stderr⽂件⾥⾯显⽰。
  在默认情况下,Spark应⽤程序的⽇志级别是INFO的,我们可以⾃定义Spark应⽤程序的⽇志输出级别,可以
到$SPARK_HOME/conf/log4j.properties⽂件⾥⾯进⾏修改,⽐如:
01# User: 过往记忆
02# Date: 2015-05-015
03# Time: 上午07:26
04# bolg:
05# 本⽂地址:
06# 过往记忆博客,专注于hadoop、hive、spark、shark、flume的技术博客,⼤量的⼲货
07# 过往记忆博客公共帐号:iteblog_hadoop
09
11
sole=org.apache.log4j.ConsoleAppender
sole.
sole.layout=org.apache.log4j.PatternLayout
sole.layout.ConversionPattern=%d (%t) [%p - %l] %m%n
这样Spark应⽤程序在运⾏的时候会打出WARN级别的⽇志,然后在提交Spark应⽤程序的时候使⽤--files参数指定上⾯的log4j.properties⽂件路径即可使⽤这个配置打印应⽤程序的⽇志。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。