美文网首页
Spark History Server自动删除日志文件

Spark History Server自动删除日志文件

作者: sparkle123 | 来源:发表于2020-12-30 16:44 被阅读0次

    背景

    公司的计算平台上,写入spark-history目录日志文件数超过设定阈值(1048576),导致任务失败。

    临时的解决方案

    mv spark-history spark-history_bak,并新建spark-history空目录,新起的任务日志可以往新的空目录下写入,不过,如果之前有任务往旧目录写入日志,在重定向过程中,append写入新的日志数据,就会报错,还是影响到了业务。
    另外,该目录下有将近100W的文件数,常规hdfs dfs命令操作的话,报out of mememory gc overlimit exceed之类的错误,
    通过export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xmx6000m"加大hadoop客户端堆内存,遍历出文件数,发现这些文件是最近一个月产生的。
    自动删除日志文件的机制并没有work。

    关于Spark History Server参数

    spark.history.fs.update.interval 默认值10秒
    指定刷新日志的时间,更短的时间可以更快检测到新的任务以及任务执行情况,但过快会加重服务器负载

    spark.history.ui.maxApplication 默认值intMaxValue
    这个参数指定UI上最多显示的作业的数目

    spark.history.ui.port默认值18080
    这个参数指定history-server的网页UI端口号

    spark.history.fs.cleaner.enabled 默认为false
    这个参数指定history-server的日志是否定时清除,true为定时清除,false为不清除。这个值一定设置成true啊,不然日志文件会越来越大。

    spark.history.fs.cleaner.interval默认值为1d
    这个参数指定history-server的日志检查间隔,默认每一天会检查一下日志文件

    spark.history.fs.cleaner.maxAge默认值为7d
    指定history-server日志生命周期,当检查到某个日志文件的生命周期为7d时,则会删除该日志文件

    spark.eventLog.compress 默认值为false
    设置history-server产生的日志文件是否使用压缩,true为使用,false为不使用。这个参数务可以成压缩哦,不然日志文件岁时间积累会过大

    spark.history.retainedApplications  默认值:50
    在内存中保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,当再次访问已被删除的应用信息时需要重新构建页面。

    ambari设置页面

    image.png

    最终方案:

    虽然通过ambari页面设置了该清理文件的时间,不过到spark-historyserver服务器,
    cd /usr/xdp/current/spark-history-server目录的conf文件下面
    看到并没有反映到里面来,只能手动加入。重启 History Server

    # Generated by Apache Ambari. Wed Dec  2 16:14:32 2020
    
    spark.driver.extraLibraryPath /usr/xdp/current/mapreduce_client/lib/native:/usr/ndp/current/mapreduce_client/lib/native/Linux-amd64-64
    spark.eventLog.dir hdfs://cluster123/spark2-history/
    spark.eventLog.enabled true
    spark.executor.extraLibraryPath /usr/xdp/current/mapreduce_client/lib/native:/usr/xdp/current/mapreduce_client/lib/native/Linux-amd64-64
    spark.history.fs.cleaner.enabled true
    spark.history.fs.cleaner.interval 1d
    spark.history.fs.cleaner.maxAge 5d
    spark.history.fs.logDirectory hdfs://cluster123/spark2-history/
    spark.history.fs.numReplayThreads 20
    spark.history.fs.update.interval 5s
    spark.history.kerberos.enabled true
    spark.history.kerberos.keytab /home/hadoop/yarn/conf/spark2.headless.keytab
    spark.history.kerberos.principal spark-hz-cluster11@HADOOP2.XXYY.COM
    spark.history.provider org.apache.spark.deploy.history.FsHistoryProvider
    spark.history.retainedApplications 50
    spark.history.store.maxDiskUsage 500g
    spark.history.store.path /mnt/dfs/2/spark/historyStore
    spark.history.ui.maxApplications 50000
    spark.history.ui.port 18081
    spark.shuffle.io.maxRetries 18
    spark.shuffle.io.retryWait 5s
    spark.shuffle.registration.maxAttempts 30
    spark.shuffle.registration.timeout 20000
    spark.sql.authorization.enable true
    spark.sql.autoBroadcastJoinThreshold -1
    spark.yarn.historyServer.address spark10.DDFF.org:18081
    spark.yarn.queue default
    

    相关文章

      网友评论

          本文标题:Spark History Server自动删除日志文件

          本文链接:https://www.haomeiwen.com/subject/amhqoktx.html