hi, 你需要使用oncheckpoint的policy,这样在每次Checkpoint时会滚动文件
> 2020年11月30日 下午4:57,liliang <904716...@qq.com> 写道: > > 本人使用的StreamingFileSink将数据按照行保存到hdfs中 > StreamingFileSink<String> streamingFileSink = StreamingFileSink. > forRowFormat(new Path(path), new > SimpleStringEncoder<String>("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的数据是直接过滤掉的,我这把文件改成正常的名称是能读取到 > > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/