手动清理Flink相关的缓存或废弃文件,主要涉及以下几个场景:
CALL
.sys.remove_orphan_files('<database-name>.<table-name>');
<catalog-name>
替换为Paimon Catalog的名称。<database-name>
和 <table-name>
分别替换为数据库和表的名称。CALL
mycat.sys.remove_orphan_files('mydb.mytbl', '2023-10-31 12:00:00');
Apache Flink 是一个用于处理无界和有界数据流的开源流处理框架。在 Flink 中,并没有直接提供“缓存”这一概念,但根据上下文理解,您可能是指状态(state)或检查点(checkpoint)的管理,因为这些机制可以被看作是类似于缓存的东西。
Flink 使用状态来存储每个操作符实例的中间结果,以便在故障发生时能够从中断处恢复执行。状态可以保存在不同的后端中,如内存、文件系统等。检查点则是一种机制,用于周期性地保存应用程序的状态快照。
如果您想要清理状态或检查点,可以考虑以下几种方法:
清除检查点状态:
如果您想在运行时清除检查点状态,可以通过调用 executionEnvironment.execute() 或 streamExecutionEnvironment.execute() 方法前,设置 CheckpointConfig 来控制检查点的行为。例如,您可以取消先前的检查点或清除所有检查点:
清理状态:
您无法直接在运行时清除状态,但如果需要重新开始计算,可以重新启动作业或者通过重新配置初始状态来实现。例如,在创建新的 StreamExecutionEnvironment 或 ExecutionEnvironment 时,可以指定初始状态为空。
使用 REST API:
对于正在运行的作业,您也可以使用 Flink 的 REST API 来管理检查点。例如,要删除最新的检查点,可以发送 DELETE 请求到 /jobs/:jobid/triggered-checkpoints/:checkpointId。
要删除所有检查点,可以发送 DELETE 请求到 /jobs/:jobid/checkpoints。
登录实时计算控制台: 首先,登录阿里云实时计算控制台。
新建查询脚本: 在控制台上,新建一个查询脚本。具体操作可参考相关文档中的“查询脚本”部分。
编写并执行SQL清理命令: 在查询脚本的文本编辑区域,输入如下SQL语句模板来调用清理函数:
CALL <catalog-name>
.sys.remove_orphan_files('.');
Flink Web UI 提供了一些操作来触发缓存清理,比如触发检查点(Checkpoints)或者重启任务。
可以通过设置 state.backend.rocksdb.memory.managed 为 false 来避免 Flink 管理状态的大小,但这需要你手动管理 RocksDB 的缓存大小。
设置 taskmanager.network.memory.fraction 和 taskmanager.network.memory.min 来调整大小,但这不会清理现有缓存,而是调整缓存的容量。
要手动清理Flink作业的缓存或特定的废弃文件,您可以按照以下步骤操作:
对于因作业报错重启等原因在Paimon表目录下遗留的未提交临时文件,可以通过以下步骤清理:
CALL `<catalog-name>`.sys.remove_orphan_files('<database-name>.<table-name>');
其中,<catalog-name>
是Paimon Catalog的名称,<database-name>
是数据库名称,<table-name>
是表名称。CALL `<catalog-name>`.sys.remove_orphan_files('<database-name>.<table-name>', TIMESTAMP '2023-10-31 12:00:00');
相关链接
作业状态集管理 从(其他作业)指定快照恢复作业 https://help.aliyun.com/zh/flink/user-guide/status-set-management
手动清理缓存通常涉及以下步骤:
您需要确定Flink作业中缓存的位置。确保停止所有相关的Flink作业。清理状态存储清理中间结果
根据您的作业类型和配置,可能还有其他类型的缓存需要清理,
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。