解决spark日志清理问题

解决spark日志清理问题

背景

由于采用了sparkstreaming 任务一直再运行导致日志文件暴涨,达到了硬盘的预警,不得已必须指定策略定期删除日志已保证服务器硬盘空间。

 

spark的日志分类

spark的日志都有那些:

1.event(history)

2.work

3.executor

 

解决方法

方案1

一开始为了快速实现日志清理,选择了脚本自动清理,写了shell脚本便于清理历史文件,但是会有很多细节甚至有些文件不能删除(由于进程占用),这里不做详细介绍了。

方案2

spark配置来解决这几个问题

conf文件下面的两个文件中修改配置:

1.解决executor(work目录) 日志太大的问题,修改spark-defaut.conf

# 日志循环复写的策略(一般就是size和time)这里受限于空间选择了大小
spark.executor.logs.rolling.strategy size
# 设定复写的大小,这里设定了1G spark.executor.logs.rolling.maxSize
1073741824
# 设定组大保留文件
spark.executor.logs.rolling.maxRetainedFiles 100
# 设定更新周期这里选择一小时检查一次是否超过最大值
spark.executor.logs.rolling.time.interval hourly

2.解决历史日志问题spark-env.sh 文件添加 历史日志清洗参数配置

export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=/export/opt/spark/spark2.4.0/logs -Dspark.history.fs.cleaner.enabled=true -Dspark.history.fs.cleaner.interval=1d -Dspark.history.fs.cleaner.maxAge=2d -Dspark.history.retainedApplications=100"

3.woker日志清理同上文件

export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=1800 -Dspark.worker.cleanup.appDataTtl=86400"

 

方案3

log4j 替代默认的日志记录,再shell的提交脚本中加入如下参数

--files "./log4j.properties" \
--driver-java-options "-Dlog4j.debug=true -Dlog4j.configuration=log4j.properties" \
--conf spark.driver.extraJavaOptions='-Dlog4j.configuration=file:/opt/spark/conf/log4j.properties' \

 

总结

  再实际应用过程中依然有很多不能日志复写或者不能文件导致日志太大的问题,需要具体问题具体解决。比如spark3.0 才支持history日志循环写。另外yarn模式和standalone 也有很多不同,需要区别处理。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119634.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ValidateRequest 属性[通俗易懂]

    ValidateRequest 属性[通俗易懂]               在ASP.NET1.1中,@Page指令上的ValidateRequest属性被打开后,将检查以确定用户没有在查询字符串、Cookie或表单域中发送有潜在危险性的HTML标记。如果检测到这种情况,将引发异常并中止该请求。该属性默认情况下是打开的;您无需进行任何操作就可以得到保护。如果您想允许HTML标记通过,必须主动禁用该属性。  Valida

    2022年6月10日
    31
  • step by step guide tell you how to build a website like apkmirror

    step by step guide tell you how to build a website like apkmirrorTherearemanyfreeapkdownloadwebsitessuchasapkmirror,todayiwilltellyouhowtobuildawebsitelikeapkmirror,theprogramminglanguageiusedisnode.js,thedatabaseiusedismongodb,searchengineusediselasticsearch,thewebframeworki.

    2025年8月14日
    4
  • 回归分析详解及matlab实现[通俗易懂]

    回归分析详解及matlab实现[通俗易懂] 回归分析方法 想要资源的请关注公众号:在一起的足球自动获取资源和数十种经典算法,帮助各位提升自己之前留的是自己的qq号感觉好多资源都不能让大家自行选择本着开源的精神,在公众号挂了百度云链接,这样晚上就不用被吵醒了当人们对研究对象的内在特性和各因素间的关系有比较充分的认识时,一般用机理分析方法建立数学模型。如果由于客观事物内部规律的复杂性及人们认识程度的限制,无法分析实际对象内在的因果关系,…

    2025年7月20日
    7
  • std::的概念与作用

    std::的概念与作用

    2022年3月13日
    51
  • C++ 中获取 可变形參函数中的參数[通俗易懂]

    C++ 中获取 可变形參函数中的參数

    2022年1月20日
    57
  • 软件安全之动态链接库的使用 Libzplay 播放音乐「建议收藏」

    实验1动态链接库的使用实验说明Libzplay是遵循GPL协议的开源库,它集成了mp3、flac、ac3、aac、wav等多种音频格式的解码器和编码器,提供了面向C/C++、C#、Delphi等多种编程语言的接口,仅需3行代码(创建播放资源,打开文件,开始播放)便可实现音乐播放功能。实验目的本实验通过Libzplay提供的C语言接口,实现简单的音乐播放器,以此学习DLL的隐式和显式加载方式。实验原理课程第2讲基础知识实验环境Windows

    2022年4月17日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号