Hi Chief,

目前Hive connector读取数据是通过 InputFormatSourceFunction 来实现的。
InputFormatSourceFunction 的工作模式不是预分配的模式,而是每个source task向master请求split。
如果某些source task提前调度起来且读完了所有的split,后调度起来的source task就没有数据可读了。
你可以看看JM/TM日志,确认下是不是前十个调度起来的source task读完了所有的数据。

*Best Regards,*
*Zhenghua Gao*


On Wed, Mar 25, 2020 at 3:31 PM Chief <code...@foxmail.com> wrote:

> hi&nbsp;Jun Zhang
> 您说的我明白,就是不太理解,为什么根据文件数量自动推断任务并行后,不是每个并行任务读取一个文件?
>
>
>
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:&nbsp;"Jun Zhang"<zhangjunemail...@gmail.com&gt;;
> 发送时间:&nbsp;2020年3月25日(星期三) 上午9:08
> 收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
>
> 主题:&nbsp;Re: 关于flink sql 1.10 source并行度自动推断的疑问
>
>
>
> hi,Chief:
>
>
> 目前flink读取hive的时候,如果开启了自动推断,系统会根据所读取的文件数来推断并发,如果没有超过最大并发数(默认1000),source的并行度就等于你文件的个数,
> 你可以通过table.exec.hive.infer-source-parallelism.max来设置source的最大并发度。
>
> Kurt Young <ykt...@gmail.com&gt; 于2020年3月25日周三 上午8:53写道:
>
> &gt; 你的数据量有多大?有一个可能的原因是source的其他并发调度起来的时候,数据已经被先调度起来的并发读完了。
> &gt;
> &gt; Best,
> &gt; Kurt
> &gt;
> &gt;
> &gt; On Tue, Mar 24, 2020 at 10:39 PM Chief <code...@foxmail.com&gt;
> wrote:
> &gt;
> &gt; &gt; hi all:
> &gt; &gt; 之前用flink sql查询hive的数据,hive的数据文件是150个,sql
> &gt; &gt; client配置文件设置的并行度是10,source通过自动推断生成了150并发,但是通过看web
> &gt; &gt; ui发现只有前十个子任务是读到数据了,其他的任务显示没有读到数据,请问是我设置有问题吗?
> &gt;

回复