开发者社区> 问答> 正文

flink 1.11 streaming 写入hive 5min表相关问题

现象: CREATE TABLE test.xxx_5min (

......

) PARTITIONED BY (dt string , hm string) stored as orc TBLPROPERTIES(

'sink.partition-commit.trigger'='process-time',

'sink.partition-commit.delay'='5 min',

'sink.partition-commit.policy.kind'='metastore,success-file',

'sink.rolling-policy.file-size'='128MB',

'sink.rolling-policy.check-interval' ='30s',

'sink.rolling-policy.rollover-interval'='5min'

); dt = FROM_UNIXTIME((UNIX_TIMESTAMP()/300 * 300) ,'yyyyMMdd') hm = FROM_UNIXTIME((UNIX_TIMESTAMP()/300 * 300) ,'HHmm') 5min产生一个分区, ,checkpoint频率:30s 问题: 1.flink 1.11 steaming写入为什么是1min产生一个文件,而且文件大小没有到128M,如果参数sink.rolling-policy.rollover-interval'='5min 文件滚动时间 5min 滚动大小128M生效的话,就不应该产生这么小的问题,文件大小没有按照预期控制,为啥? 2.小文件问题该如何解决?有什么好的思路 3. 标记文件_Success文件为啥上报延迟? 如果是 12:30的分区,5min的分区,理论上应该12:35左右的时候就应该提交partition?*来自志愿者整理的flink邮件归档

展开
收起
小阿怪 2021-12-07 09:57:10 585 0
1 条回答
写回答
取消 提交回答
  • Hi,

    1.checkpoint会强制滚动 2.目前最简单的思路是加大checkpoint interval,另一个思路是在partition commit时触发hive去compaction。 3.success文件的生成依赖checkpoint interval,所以会有一定延迟。*来自志愿者整理的flink邮件归档

    2021-12-07 11:46:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hive Bucketing in Apache Spark 立即下载
spark替代HIVE实现ETL作业 立即下载
2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载