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