原文链接:Spark应用程序运行的日志存在哪里

在很多情况下,我们需要查看driver和executors在运行Spark应用程序时候产生的日志,这些日志对于我们调试和查找问题是很重要的。

  Spark日志确切的存放路径和部署模式相关:
  (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界面,比如http://www.iteblog.com:9981/proxy/application_1430820074800_0322,当然你也可以通过访问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
06 # 过往记忆博客,专注于hadoop、hive、spark、shark、flume的技术博客,大量的干货
07 # 过往记忆博客微信公共帐号:iteblog_hadoop
08 spark.root.logger=WARN,console
09  
10 log4j.rootLogger=${spark.root.logger}
11  
12 log4j.appender.console=org.apache.log4j.ConsoleAppender
13 log4j.appender.console.target=System.err
14 log4j.appender.console.layout=org.apache.log4j.PatternLayout
15 log4j.appender.console.layout.ConversionPattern=%d (%t) [%p - %l] %m%n

这样Spark应用程序在运行的时候会打出WARN级别的日志,然后在提交Spark应用程序的时候使用--files参数指定上面的log4j.properties文件路径即可使用这个配置打印应用程序的日志。

最新文章

  1. NOIP模拟赛20161114
  2. matlab struct结构体用法
  3. BZOJ1443: [JSOI2009]游戏Game
  4. 学Python后到底能干什么?
  5. sscanf格式化输出
  6. python默认的是17位小数的精度,但是这里有一个问题,就是当我们的计算需要使用更高的精度(超过17位小数)的时候该怎么做呢?
  7. Python Django之路由系统
  8. DataTable.Compute()用法
  9. 《Java程序设计》实验二 实验报告
  10. 探索react native首屏渲染最佳实践
  11. Oracle获取AWR和ASH
  12. ajax轮询
  13. ubuntu14.04配置lnmp
  14. 高效操作DOM
  15. 基于visual Studio2013解决面试题之0503取最大数字字符串
  16. maven依赖jar包更新,业务jar需同步更新(业务jar依赖API)
  17. jQuery系列 第七章 jQuery框架DOM操作
  18. 解决MyEclipse注册失败的问题
  19. 「HAOI2018」染色 解题报告
  20. python基础语法及知识点总结

热门文章

  1. IEEEXtreme 10.0 - Full Adder
  2. js过滤检测敏感词汇
  3. 一次压力测试Loadrunner经验分享
  4. 转:Linux创建进程
  5. Educational Codeforces Round 38 部分题解
  6. poj1860 & poj2240(Bellman-Ford)
  7. Dalvik 虚拟机 jvm 区别
  8. Codeforces 622 F. The Sum of the k-th Powers
  9. [BZOJ4539][HNOI2016]树(主席树)
  10. 2017-2018-1 JAVA实验站 第二周作业