env.readFile 递归监控目录 如何清理状态(历史目录)

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

env.readFile 递归监控目录 如何清理状态(历史目录)

star
 


env.readFile(format,path, FileProcessingMode.PROCESS_CONTINUOUSLY, 60000)


上面是一个监控目录里的数据的source
format设置成递归监控一个父目录A , A下面是日期目录 ,如:


A/20200101/
A/20200102/
A/20200103/
.......
.......


随着时间的增加,比如到6月需要监控近200个目录,每个目录又有500个文件,每次ck需要同步的状态就是200*500个文件的消费的offset,这样经常ck超时,


请问这种可以清理历史状态吗,比如业务上知乎有近7天的目录才会有数据更新,历史的就可以不监控了。
Reply | Threaded
Open this post in threaded view
|

Re: env.readFile 递归监控目录 如何清理状态(历史目录)

Jark
Administrator
Hi,

我觉得这个也许可以先从业务上解决。比如你可以有另一个作业定期去 HDFS 上把过期的数据清理掉(比如半个月前的?)。

另外,我也开了一个 issue 去跟进这个问题,看看社区里面对这块比较熟的同学有没有更好的建议。FLINK-18357
<https://issues.apache.org/jira/browse/FLINK-18357>
我的一个初步的想法是,是否可以有一个 inactive-interval 去标记一个子目录已经不会有新文件产生了,这样 checkpoint
就不用跟踪这个子目录下的所有文件。


Best,
Jark

On Wed, 17 Jun 2020 at 14:04, star <[hidden email]> wrote:

> &nbsp;
>
>
> env.readFile(format,path, FileProcessingMode.PROCESS_CONTINUOUSLY, 60000)
>
>
> 上面是一个监控目录里的数据的source
> format设置成递归监控一个父目录A , A下面是日期目录 ,如:
>
>
> A/20200101/
> A/20200102/
> A/20200103/
> .......
> .......
>
>
>
> 随着时间的增加,比如到6月需要监控近200个目录,每个目录又有500个文件,每次ck需要同步的状态就是200*500个文件的消费的offset,这样经常ck超时,
>
>
> 请问这种可以清理历史状态吗,比如业务上知乎有近7天的目录才会有数据更新,历史的就可以不监控了。
Reply | Threaded
Open this post in threaded view
|

回复:env.readFile 递归监控目录 如何清理状态(历史目录)

star
感谢您的建议!如果我把hdfs目录删掉,flink里对应的状态也会清掉吗?



发自我的iPhone


------------------ 原始邮件 ------------------
发件人: Jark Wu <[hidden email]&gt;
发送时间: 2020年6月18日 15:07
收件人: user-zh <[hidden email]&gt;
主题: 回复:env.readFile 递归监控目录 如何清理状态(历史目录)



Hi,

我觉得这个也许可以先从业务上解决。比如你可以有另一个作业定期去 HDFS 上把过期的数据清理掉(比如半个月前的?)。

另外,我也开了一个 issue 去跟进这个问题,看看社区里面对这块比较熟的同学有没有更好的建议。FLINK-18357
<https://issues.apache.org/jira/browse/FLINK-18357&gt;
我的一个初步的想法是,是否可以有一个 inactive-interval 去标记一个子目录已经不会有新文件产生了,这样 checkpoint
就不用跟踪这个子目录下的所有文件。


Best,
Jark

On Wed, 17 Jun 2020 at 14:04, star <[hidden email]&gt; wrote:

&gt; &amp;nbsp;
&gt;
&gt;
&gt; env.readFile(format,path, FileProcessingMode.PROCESS_CONTINUOUSLY, 60000)
&gt;
&gt;
&gt; 上面是一个监控目录里的数据的source
&gt; format设置成递归监控一个父目录A , A下面是日期目录 ,如:
&gt;
&gt;
&gt; A/20200101/
&gt; A/20200102/
&gt; A/20200103/
&gt; .......
&gt; .......
&gt;
&gt;
&gt;
&gt; 随着时间的增加,比如到6月需要监控近200个目录,每个目录又有500个文件,每次ck需要同步的状态就是200*500个文件的消费的offset,这样经常ck超时,
&gt;
&gt;
&gt; 请问这种可以清理历史状态吗,比如业务上知乎有近7天的目录才会有数据更新,历史的就可以不监控了。