谈谈 Spark 应用日志级别的坑

蚀窗继承
• 阅读 6972
环境说明:HDP 3.0 + Kerberos + Livy

根据 Spark 官方文档的指引,清楚的知道存在三种方式可以对应用的日志级别进行调整。

  • upload a custom log4j.properties using spark-submit, by adding it to the --files list of files to be uploaded with the application.
  • add -Dlog4j.configuration=<location of configuration file> to spark.driver.extraJavaOptions (for the driver) or spark.executor.extraJavaOptions (for executors). Note that if using a file, the file: protocol should be explicitly provided, and the file needs to exist locally on all the nodes.
  • update the $SPARK_CONF_DIR/log4j.properties file and it will be automatically uploaded along with the other configurations. Note that other 2 options has higher priority than this option if multiple options are specified.

第三种方案是我们最不希望看到的选择,因而选择了第一、二两种进行尝试。

第一种方案

过程:

  1. 将编辑准备好的 log4j-error.properties 文件上传到 HDFS
  2. 授予接下来启动 Spark 应用的用户读取权限
  3. 启动参数中,添加 "files":["/logfile/log4j-error.properties"] 参数,来指定 log4j.properties 文件路径。
  4. 启动参数中,添加 "spark.driver.extraJavaOptions": "-Dlog4j.configuration=log4j-error.properties","spark.executor.extraJavaOptions": "-Dlog4j.configuration=log4j-error.properties" ,相对路径即可
  5. 使用 Livy 进行启动应用

这里的可能遇到的问题:

  • -files 参数是数组,不是简单的 String
  • spark.driver.extraJavaOptions 用于 Driver 的日志级别文件的指定,"spark.executor.extraJavaOptions 用于 Executor 的日志级别文件的指定。可以单独分别指定,支持相对路径。
  • HDFS 下文件的权限一定要注意

第二种方案

过程:

  1. 将编辑准备好的 log4j-error.properties 文件上传到 Spark Server 所在服务器的 $SPARK_CONF_DIR/ 目录下
  2. 授予 log4j-error.properties 文件读取权限,粗暴一点直接设置为 777
  3. 启动参数中,添加 "spark.driver.extraJavaOptions": "-Dlog4j.configuration=log4j-error.properties","spark.executor.extraJavaOptions": "-Dlog4j.configuration=log4j-error.properties" ,如果相对路径不生效,可以使用绝对路径( file:/spark/conf/log4j-error.properties )
  4. 使用 Livy 进行启动应用

这里的可能遇到的问题:

  • 读取的权限,一定要启动应用的用户拥有权限
  • 所有 Spark 节点下都要有日志文件哦

第三种方案

过程:

  1. HDP Ambari 页面 Spark 下,对日志配置进行相应的修改
  2. 重启 Spark 服务使其生效

这里的可能遇到的问题:

  • 优先级该方案是三者中最低的,前两种都可以覆盖该种方案

谈谈 log4j 配置

自定义某路径下的日志级别

比如:希望 com.zerostech.demo 路径下日志级别为 ERROR

log4j.logger.com.zerostech.demo=ERROR
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java实现spark常用算子之cogroup
importorg.apache.spark.SparkConf;importorg.apache.spark.api.java.JavaPairRDD;importorg.apache.spark.api.java.JavaSparkContext;importorg.apache.spark.api.java.function.VoidF
Stella981 Stella981
3年前
Spark 3.0 on Kubernetes 的模式与最新发展
Spark3.0发布后,对Kubernetes的原生支持得到大幅增强,从而方便了Spark在云原生环境中的快速部署和运行实例的管理。这里探讨Spark onKubernetes生态的现状与挑战。参考:Spark3.01onKubernetes官方文档(https://www.oschina.net/actio
Wesley13 Wesley13
3年前
05.kafka提前准备工作:搭建zookeeper集群环境
总体参考:http://www.cnblogs.com/zhangs1986/p/6564839.html搭建之间同步下spark01、02、03的环境复制/opt/flume这个文件夹到spark02的/opt目录下,同理03scpr/opt/flume/spark02:/opt/scpr/opt/kafka/spar
Stella981 Stella981
3年前
Exceptionless
<divid"cnblogs\_post\_body"class"blogpostbodycnblogsmarkdown"<h1id"exceptionless.netcore开源日志框架"Exceptionless.NetCore开源日志框架</h1<blockquote<p作者:markjiang7m2<b
Stella981 Stella981
3年前
Spark 1.6.0 源码精读
Spark1.6.0一般程序的入口都是这个步骤,ConfigContextSpark也不例外,先从入口开始SparkConf:Spark应用程序的配置/   SparkConf.scala        Configuration for a Spark applicatio
Stella981 Stella981
3年前
SparkSQL查询程序的两种方法,及其对比
import包:importorg.apache.spark.{SparkConf,SparkContext}importorg.apache.spark.rdd.RDDimportorg.apache.spark.sql.types.{IntegerType,StringType,StructField,StructTyp
Stella981 Stella981
3年前
Spark2.4.0源码——RpcEnv
参考《Spark内核设计的艺术:架构设计与实现——耿嘉安》NettyRpcEnv概述 Spark的NettyRpc环境的一些重要组件:privatenettyvaltransportConfSparkTransportConf.fromSparkConf(...)privat
可莉 可莉
3年前
10.Spark之RDD及编程接口
1.起点HelloWorld    valscnewSparkContext("spark://...","HelloWorld","SPARK\_HOME路径","APP\_JAR路径")    valfilesc.textFile("hdfs:///root/Log")   
Stella981 Stella981
3年前
Spark学习之Spark安装
Spark安装spark运行环境spark是Scala写的,运行在jvm上,运行环境为java7如果使用Python的API,需要使用Python2.6或者Python3.4Spark1.6.2  Scala2.10  Spark2.0.0  Scala 2.11
Stella981 Stella981
3年前
Spark scala和java的api使用
1、利用scala语言开发spark的worcount程序(本地运行)packagecom.zy.sparkimportorg.apache.spark.rdd.RDDimportorg.apache.spark.{SparkConf,SparkContext}//todo:利用s
spark运行的基本流程
前言:由于最近对spark的运行流程非常感兴趣,所以阅读了《Spark大数据处理:技术、应用与性能优化》一书。通过这本书的学习,了解了spark的核心技术、实际应用场景以及性能优化的方法。本文旨在记录和分享下spark运行的基本流程。一、spark的基础组