首页 > 编程知识 正文

flink standalone模式,flink应用场景

时间:2023-05-04 19:33:03 阅读:28841 作者:2968

1.flink地图状态TTL设置publicclassiopvdeduplicateprocessfunctionextendsrichflatmapfunctionfundiopvindicators,fundIopvindicators fundIopvindicatordicators /***状态初始化*/@ overridepublicvoidopen (配置参数) throwsexception(//MapState状态状态的处理时间定义statettlconfigstatettlconfig=statettlconfig//状态有效时间一天内到期(.new builder (time.days ) ) ) ) 652状态更新类型. setupdatetype (statettlconfig.update type.ondate.one ) 用户. setstate visibility (statettlconfig.state visibility.neverreturnexpired )/全部清理过期对象策略. cleanupfullsnapshority//map state状态管理配置mapstatedescriptordescriptor=newmapstatedescriptor String.class,fundiopvindicators //有效状态生存时间descriptor.enabletimetolive (statettlconfig ); //状态实例map state=getruntimecontext (.getmapstate (描述符) ); } @ overridepublicvoidflatmap (fundiopvindicatorsiopvindicators,collectorfundiopvindicatorscollector ) throws exception { stior collector.collect (iopvindicators; }}2.TTL过期时间和范围当前(Flink1.13.1 )状态的TTL是相对于状态处理时间定义的

表示状态的过期时间

在newbuilder(time.seconds )1)上单击一旦设置了 TTL,那么如果上次访问的时间戳 + TTL超过了当前时间,则表明状态过期了。

3 .状态时间戳更新定时通过setupdatetype (statettlconfig.update type.oncreateandwrite )设置指示状态时间戳更新的定时(延长状态有效期) 如果设置为Disabled,则不更新时间戳。 如果设置为OnCreateAndWrite,则在创建状态时或每次写入状态时都会更新时间戳。 如果设置为OnReadAndWrite,则状态时间戳会在创建、写入和读取状态时更新。 4 .过期状态处理策略(是否返回给用户) statettlconfig.state visibility.neverreturnexpired中的http://www.sisibility

ReturnExpiredIfNotCleanedUp上,一旦此状态过期,它就永远不会返回给调用方,而只是返回到空状态,从而避免了过期状态的干扰。 (过期状态不会返回给用户。)

5 .过期清理策略(.cleanupIncrementally ) )增量清理(.cleanupFullSnapshot ) )支持总量清理NeverReturnExpired只有在作业重新启动并从上一个快照点恢复之后,指示不应对过期状态的本地状态才会实际减少,这可能无法解决内存压力问题。

为了解决这个问题,Flink还提供了增量清理的枚举值。 这分别是对Heap StateBackend的INCREMENTAL_CLEANUP。 支持IncrementalCleanupStrategy类

和对RocksDB StateBackend有效的rocks db _ compaction _ filter (对应于rocksdbcompactfiltercleanupstrategy类) ) )。

对于增量清理功能,可以将Flink配置为在每次读取多个记录时执行清理操作,并指定一次要清理的无效记录数。 RocksDB的状态清理是通过调用用c语言编写的FlinkCompactionFilter来实现的,基础是通过RocksDB提供的后台Compaction操作来实现失效状态的过滤。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。