开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

这个是保存flink作业的ck的oss,想问下,flink job为什么会这么大,里面存的什么东西?

这个是保存flink作业的ck的oss,想问下,flink job为什么会这么大,里面存的什么东西?
e09f0ec46888559f2c6b17017cd5ac13.png

展开
收起
嘟嘟嘟嘟嘟嘟 2024-01-17 09:40:29 84 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink作业的checkpoint(ck)文件是用于故障恢复和容错的重要机制。它包含了作业在运行过程中的状态信息,以便在发生故障时能够从最近的checkpoint恢复。

    Flink作业的checkpoint文件可能会比较大,主要是因为它包含了多个组件的状态信息,包括:

    1. 算子状态(Operator State):每个算子都有自己的状态,用于保存中间结果或临时数据。这些状态信息会随着作业的执行而不断更新。
    2. KeyedStateBackend:对于有状态的流式计算任务,Flink使用KeyedStateBackend来管理键控状态(Keyed State)。KeyedStateBackend将状态数据存储在RocksDB或其他支持事务的存储系统中。
    3. Savepoint:除了常规的checkpoint之外,Flink还支持Savepoint操作,它可以将作业的某个特定状态保存下来,以便后续恢复。Savepoint文件通常比常规checkpoint文件小一些。
    4. RocksDB事务日志:RocksDB是一个嵌入式数据库引擎,用于存储Flink的状态数据。在每次checkpoint时,RocksDB会生成一个事务日志文件,记录了所有对状态数据的修改操作。这个事务日志文件也会占用一定的磁盘空间。

    因此,Flink作业的checkpoint文件大小主要取决于作业的状态量、并发度以及Checkpoint策略等因素。如果发现checkpoint文件过大,可以考虑调整Checkpoint策略,例如增加并行度、减少状态量或者调整Checkpoint间隔等方法来减小文件大小。

    2024-01-17 14:06:40
    赞同 展开评论 打赏
  • 网站:http://ixiancheng.cn/ 微信订阅号:小马哥学JAVA

    Apache Flink作业在运行过程中产生的Checkpoint(检查点)数据,这些数据被存储在对象存储服务(OSS)上。Checkpoint是Flink作业的重要特性,用于保证作业的可靠性和容错性。

    Flink作业在运行过程中会产生大量的数据,包括:

    第一、算子状态:每个算子都有自己的状态,包括数据缓冲区、计数器等。这些状态在每次处理数据时都会发生变化。
    第二、水位线:用于标记哪些数据已经被处理过,哪些还没有。
    第三、序列化后的数据:Flink的算子状态和数据需要进行序列化,以便在网络中传输和存储。
    第四、元数据:例如作业的配置信息、元数据等。

    当Flink作业运行时,它会定期将上述数据写入到OSS中,作为Checkpoint。这样,如果作业出现故障,Flink可以重新启动并从最近的一个Checkpoint恢复,而不是从头开始。这大大提高了作业的可靠性和容错性。

    Checkpoint的大小取决于多个因素,例如:
    第一、作业的数据量和处理逻辑。
    第二、配置的Checkpoint间隔和Timeout时间。
    第三、使用的序列化框架和数据结构。

    2024-01-17 12:02:41
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    阿里云 ClickHouse 企业版技术白皮书 立即下载
    ClickHouse在手淘流量分析应用实践Jason Xu 立即下载
    云数据库clickhouse最佳实践 立即下载