Vam*_*the 9 apache-spark spark-streaming
我们有一个火花流应用程序,这是一个长期运行的任务.事件日志指向hdfs位置hdfs:// spark-history,当我们启动流应用程序和文件大小增长到70GB时,正在创建application_XXX.inprogress文件.要删除日志文件,我们将停止火花串流应用程序并清除它.有没有办法在不停止或重新启动应用程序的情况下自动执行此过程.我们已将spark.history.fs.cleaner.enabled = true配置为清洁间隔为1天,最大年龄为2天.但是它没有清理.inprogress文件.我们正在使用spark 1.6.2版本.我们在纱线上运行火花并以群集模式部署.
这个问题你必须在一些配置中进行一些更改,你必须向你的文件添加一些更改yarn-default.xml。在此文件中,您需要更改此行或添加此行:
yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds=3600
Run Code Online (Sandbox Code Playgroud)
此修改会将您的文件聚合给您,这将允许您通过以下方式查看数据yarn logs -applicationId YOUR_APP_ID
这是第一步。您可以在这里看到一些相关内容。
第二步您需要创建文件 log4j-driver.property 和 log4j-executor.property
在此文件中,您可以使用以下示例:
log4j.rootLogger=INFO, rolling
log4j.appender.rolling=org.apache.log4j.RollingFileAppender
log4j.appender.rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.rolling.layout.conversionPattern=[%d] %p %m (%c)%n
log4j.appender.rolling.maxFileSize=50MB
log4j.appender.rolling.maxBackupIndex=5
log4j.appender.rolling.file=/var/log/spark/${dm.logging.name}.log
log4j.appender.rolling.encoding=UTF-8
log4j.logger.org.apache.spark=WARN
log4j.logger.org.eclipse.jetty=WARN
log4j.logger.com.anjuke.dm=${dm.logging.level}
Run Code Online (Sandbox Code Playgroud)
这几行在说什么?
这家伙:log4j.appender.rolling.maxFileSize=50MB只会创建 50MB 大小的文件。当日志文件达到 50MB 时,它将被关闭并开始新的日志文件。
相关的另一行是这一行:log4j.appender.rolling.maxBackupIndex=5这意味着您将拥有 5 个 50MB 文件的备份历史记录。在此期间,当新文件开始显示时,该文件将被删除。
创建此日志文件后,您需要通过 spark-submit 命令发送此文件:
spark-submit
--master spark://127.0.0.1:7077
--driver-java-options "-Dlog4j.configuration=file:/path/to/log4j-driver.properties -Ddm.logging.level=DEBUG"
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:/path/to/log4j-executor.properties -Ddm.logging.name=myapp -Ddm.logging.level=DEBUG"
...
Run Code Online (Sandbox Code Playgroud)
您可以为您的驱动程序和工作人员创建日志文件。在命令中,我使用两个不同的文件,但您可以使用相同的文件。欲了解更多详情,请参阅此处。
| 归档时间: |
|
| 查看次数: |
1802 次 |
| 最近记录: |