开发者社区> 问答> 正文

使用 StreamingFileSink后 checkpoint状态中的数据如何hive读取

本人使用的StreamingFileSink将数据按照行保存到hdfs中 StreamingFileSink streamingFileSink = StreamingFileSink. forRowFormat(new Path(path), new SimpleStringEncoder ("UTF-8")) .withBucketAssigner(bucketAssigner) .withRollingPolicy( DefaultRollingPolicy.builder()

withRolloverInterval(TimeUnit.HOURS.toMillis(1))

withInactivityInterval(TimeUnit.MINUTES.toMillis(30)) withMaxPartSize(1024 * 1024 * 1024) build()) withOutputFileConfig( OutputFileConfig.builder() withPartSuffix(partSuffix) build() ) build(); 配置如上,checkpoint的配置是10分钟一次,现在有个疑惑想要问下,现在hdfs上文件只是在半个小时都是未完成状态, 如 .part-0-11606723036.inprogress.5b46f31b-8289-44e9-ae26-997f3e479446 这种的处于 inprocress状态,但是我这checkpoint是10分钟一次,如果我的任务在29分钟挂了,那么hdfs上这个文件就肯定不是FINISHED状态,那么那20分钟的数据我这应该怎么处理. 我这现在按照默认的处理中,hive对于inprogress的数据是直接过滤掉的,我这把文件改成正常的名称是能读取到*来自志愿者整理的flink邮件归档

展开
收起
小阿怪 2021-12-06 12:38:28 879 0
1 条回答
写回答
取消 提交回答
  • 你需要使用oncheckpoint的policy,这样在每次Checkpoint时会滚动文件*来自志愿者整理的flink邮件归档

    2021-12-06 14:44:20
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Comparison of Spark SQL with Hive 立即下载
Hive Bucketing in Apache Spark 立即下载
2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载