flink on yarn 怎么设置按周期清理下任务运行日志呢
在阿里云Flink on YARN上,可以通过修改flink-conf.yaml文件来设置按周期清理下任务运行日志。具体步骤如下:
taskmanager.log.cleanup.interval: 3600s # 设置清理周期为1小时
taskmanager.log.path: file:///path/to/logs # 设置日志存储路径
taskmanager.log.max-history-size: 10 # 设置保留的日志文件数量
其中,“taskmanager.log.cleanup.interval”参数用于设置清理周期,“taskmanager.log.path”参数用于设置日志存储路径,“taskmanager.log.max-history-size”参数用于设置保留的日志文件数量。
设置完成后,Flink on YARN会按照指定的周期清理任务运行日志。
在阿里云实时计算 Flink on YARN 中,任务运行日志默认保存在 HDFS 或本地磁盘上,可以通过配置清理策略来定期清理日志。
具体操作如下:
1.在 Flink 配置文件 flink-conf.yaml 中添加以下配置:
# 指定日志保存的本地目录,如果未指定,日志会保存在 Yarn 的日志目录下
yarn.application.logs.dir: <path>
# 指定日志保留的天数,超过这个时间的日志会被清理
yarn.log-aggregation.retain-seconds: <seconds>
其中,yarn.application.logs.dir
指定日志保存的本地目录(可选),如果未指定,日志会保存在 Yarn 的日志目录下;yarn.log-aggregation.retain-seconds
指定日志保留的天数,超过这个时间的日志会被清理。
2.在 YARN 上启动 Flink 任务时,通过以下命令指定 YARN 的日志目录和日志保留时间:
$ yarn session -n <num> -tm <tm> -s <slot> -jm <jm> -yt \
-D yarn.application.logs.dir=<path> \
-D yarn.log-aggregation.retain-seconds=<seconds>
其中,yarn.application.logs.dir
和 yarn.log-aggregation.retain-seconds
可以指定 YARN 的日志目录和日志保留时间。
通过以上配置和命令,即可实现按周期清理下任务运行日志。同时,如果您需要将日志保存在 HDFS 上,需要在 flink-conf.yaml 中设置 yarn.log-aggregation.include-pattern
和 yarn.log-aggregation.roll-monitoring-interval-seconds
等相关参数。
可以通过配置以下属性来按周期清理Flink on YARN上的任务运行日志: 1. 设置日志保留时间:通过设置 flink.yarn.log.retention-time 参数来指定日志保留时间。默认情况下,保留时间为7天。
log4j.appender.file.RollingPolicy.FileNamePattern=/path/to/logs/flink-%d{yyyyMMddHH}.log
0 0 * * * /path/to/clean_logs.sh
脚本内容如下:
#!/bin/bash
find /path/to/logs/ -type f -mtime +7 -name "flink-*.log" -exec rm {} \;
以上是一些常用的方法,可以根据实际情况进行调整。
您可以通过在 flink-conf.yaml 文件中设置 'yarn.log-aggregation.retain-seconds' 属性来设置日志保留的时间。该属性表示日志应该保留多长时间(以秒为单位),默认情况下为 7 天。例如,您可以将此配置值设置为 86400(即一天的秒数),以将日志自动清除为期一天的所有任务。
在 flink-conf.yaml 文件中添加以下内容:
yarn.log-aggregation.retain-seconds: 86400
然后,按照常规流程在 YARN 上提交 Flink 作业,并等待作业完成。完成后,Flink 会将任务日志统一转移到 YARN 的 HDFS 上,并在指定时间后自动清除任务的运行日志。
这个应该不复杂的,你可以看看它的配置。
在yarn.log-aggregation.retain-seconds参数来设置日志的保留时间。
官方文档中也有示例,你可以参考 yarn.log-aggregation.retain-seconds: 604800 (单位是秒)
如果您使用其他日志管理工具来管理日志,需要使用相应的配置来设置日志的保留时间。
另外,如果您想在任务运行结束后立即清理日志,可以使用以下命令:
yarn logs -applicationId <application_id> -log_files <log_file_pattern> -am -clean
Flink在作业探查界面查看历史作业实例日志,需要您在作业开发页面的高级配置中已打开日志归档功能。默认已开启日志归档功能。默认日志归档有效期是7天。同时Flink全托管上已配置了历史作业实例的日志输出到OSS或者SLS,配置操作参考:文档配置了日志输出到OSS或者SLS之后,日志配置中默认会保留2个文件,每个文件大小为5 MB,不建议修改该值。如果该日志保存大小不满足您的需求,则请将日志输出至OSS中。定时清理日志可以在OSS或者SLS上面操作。
您可以通过在Flink配置文件中设置以下属性来启用Flink的日志清理功能:
yarn.log-aggregation-enable: true
yarn.log-aggregation.retain-seconds: 86400
yarn.log-aggregation.retain-check-interval-seconds: 3600 其中,yarn.log-aggregation-enable属性用于开启日志清理功能,yarn.log-aggregation.retain-seconds属性用于设置日志保留时间,yarn.log-aggregation.retain-check-interval-seconds属性用于设置日志清理周期。
在Flink应用程序中,您可以通过在log4j.properties文件中设置以下属性来控制日志输出:
log4j.appender.file.File=${log.dir}/flink-${sys:jobmanager.rpc.address}-${sys:jobmanager.rpc.port}.log
log4j.rootLogger=INFO, file 在以上配置中,log4j.appender.file.File属性用于设置日志输出路径,log4j.rootLogger属性用于设置日志输出级别。您可以根据自己的需求进行修改。
在 Flink on YARN 中,可以通过设置 yarn.log-aggregation.retain-seconds 参数来控制任务运行日志的清理周期。
具体来说,可以通过在 flink-conf.yaml 配置文件中添加以下内容来实现:
yarn.log-aggregation-enable: true yarn.log-aggregation.retain-seconds:
其中, 代表了日志保留的时间周期,以秒为单位。例如,设置为 3600 表示保留 1 小时的任务运行日志。
需要注意的是,上述配置只对新提交的作业生效。对于已经提交的作业,需要手动杀掉并重新提交才能生效。此外,Flink on YARN 还支持通过其他方式定期清理历史日志
在 Flink on YARN 中,可以通过设置 YARN 的日志清理策略来定期清理 Flink 任务的运行日志。YARN 的日志清理策略可以通过修改 yarn-site.xml 文件来配置,具体步骤如下:
打开 yarn-site.xml 文件,通常位于 $HADOOP_HOME/etc/hadoop 目录下。
添加如下配置项,用于设置日志保留的时间和日志清理的周期,例如设置日志保留 7 天,每天清理一次:
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value> <!-- 7 days in seconds -->
</property>
<property>
<name>yarn.log-aggregation.retain-check-interval-seconds</name>
<value>86400</value> <!-- 1 day in seconds -->
</property>
其中,yarn.log-aggregation.retain-seconds 参数用于设置日志保留的时间,单位为秒,例如上述配置中设置为 604800 秒(即 7 天),表示保留最近 7 天的日志。yarn.log-aggregation.retain-check-interval-seconds 参数用于设置日志清理的周期,单位为秒,例如上述配置中设置为 86400 秒(即 1 天),表示每天清理一次日志。
设置好 YARN 的日志清理策略后,YARN 就会按照配置的时间周期定期清理 Flink 任务的运行日志。需要注意的是,在 Flink on YARN 中,任务的日志通常存储在 YARN 的日志聚合目录中,因此需要确保 Flink 的日志配置中设置了正确的日志路径。可以通过修改 flink-conf.yaml 文件中的相关配置项来设置 Flink 的日志路径,例如:
yarn.application-attempt-id: "{{APPLICATION_ID}}_{{APP_ATTEMPT_ID}}"
yarn.log.server-url: "http://{{HOSTNAME}}:{{HTTP_STATIC_PORT}}"
yarn.log.dir: "hdfs:///flink/logs"
其中,yarn.log.dir 参数用于设置 Flink 的日志存储路径,例如上述配置中设置为 hdfs:///flink/logs,表示将 Flink 的日志存储在 HDFS 的 /flink/logs 目录下。
在 Flink on YARN 中,可以通过修改以下配置参数来实现按周期清理任务运行日志:
yarn.log-aggregation-enable:是否启用 YARN 的日志聚合功能,默认为 true,即启用。可以在 yarn-site.xml 中进行配置。
yarn.log-aggregation.retain-seconds:日志聚合后保留的时间,单位为秒,默认值为 3 * 24 * 60 * 60 秒,即三天。可以在 yarn-site.xml 中进行配置。
设置好以上参数后,YARN 会在一定时间范围内对任务的日志进行聚合,并在一定时间后自动清理聚合后的日志文件。如果需要调整清理周期,可以修改 yarn.log-aggregation.retain-seconds 参数的值。
在 Flink on YARN 中,你可以通过以下参数来控制历史日志的保留和清理行为:
yarn.log-aggregation-enable:指定是否启用日志聚合功能,默认值为 true。如果设置为 false,则 Flink 不会将日志发送到 HDFS 中的聚合目录。
yarn.log-aggregation.retain-seconds:指定历史日志的保留时间(以秒为单位),默认值为 3,600 秒(1 小时)。如果设置为 0,则表示不保留历史日志。在指定时间内,Flink 会将任务运行日志保存在 HDFS 中的聚合目录中。
yarn.log-aggregation.retain-check-interval-seconds:指定检查历史日志保留时间间隔(以秒为单位),默认值为 300 秒(5 分钟)。Flink 会每隔一定时间检查一次历史日志的保留时间,并删除已过期的日志文件。
你可以在 flink-conf.yaml 文件中设置这些参数,例如:
yarn.log-aggregation-enable: true yarn.log-aggregation.retain-seconds: 3600 在此配置中,Flink on YARN 将启用日志聚合功能,并将任务运行日志保留 1 小时。每隔 5 分钟检查一次历史日志的保留时间,并删除已过期的日志文件。
注意,这些参数只控制历史日志的保留和清理行为。如果你想要减少 Flink 程序的运行日志量,可以通过修改 log4j.properties 文件中的日志级别来调整日志输出水平。
对于 Flink on Yarn,Flink TaskManager 的日志文件是由 Yarn 的日志聚合机制负责收集和清理的。因此,要设置日志的清理策略,您需要修改 Yarn 的相关配置项。
您可以按照以下步骤进行操作:
修改 Yarn 的 yarn-site.xml
配置文件,在其中指定日志的滚动和保留策略。具体的配置项包括:
yarn.log-aggregation.retain-seconds
: 指定日志的保留时间,单位为秒,默认值为 -1,表示永久保存;
yarn.log-aggregation.roll-monitoring-interval-seconds
: 指定日志滚动的周期,单位为秒,默认值为 3600,表示每小时滚动。您需要将这些配置项设置为合适的值,以满足您的需求。
例如,如果您希望在任务完成之后的 7 天内保留日志,并以每天为周期进行滚动,可以这样进行配置:
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
<property>
<name>yarn.log-aggregation.roll-monitoring-interval-seconds</name>
<value>86400</value>
</property>
这样,Yarn 就会按照您的配置项进行日志滚动和保留,从而达到清理日志的目的。
需要注意的是,如果您需要清理 Flink 的 TaskManager 日志,可以在 Flink 的 log4j.properties
配置文件中设置具体的清理策略。具体的配置项包括:
log.cleanup.interval
: 指定日志清理的周期,单位为小时,默认为 12 小时;log.cleanup.max-age
: 指定日志最大保留时间,单位为天,默认为 7 天。您可以根据需要进行调整。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。