You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by Peihui He <pe...@gmail.com> on 2021/08/15 03:18:00 UTC

flink sql job 提交流程问题

Hi all:

在使用zeppelin提交sql的过程中总是发现超时现象,通过定位发现有如下问题:
1、blob client 和blob server 通信时采用单客户端通行,当有比较多的文件时,比如100个,这个耗时挺大的
2、blob server 虽然有blob.fetch.num-concurrent 进行并发控制,但是blob
server在moveTempFileToStore方法中采用了写锁的方式,当时并发失效。

通过本地测试,简单的调整了代码,示例如下:
BlobServer:
[image: image.png]

ClientUtils
[image: image.png]
调整后通过zeppelin 提交job后,时间由之前的几分钟到现在几十秒,并且不会随着依赖的jar的增加而线性增长。

现有如下疑问:
1、blob server 中的锁的粒度是不是过大?当并行提交多个sql,实际上也只能一个一个的执行。
2、blob server 中moveTempFileToStore 的写锁是否真的必要呢?

Best wishes.

Re: flink sql job 提交流程问题

Posted by Peihui He <pe...@gmail.com>.
补充:
这个问题在ha的情况下非常突出,因为和hdfs的交互式线性的,当文件达到几百的时候,特别慢

Peihui He <pe...@gmail.com> 于2021年8月15日周日 上午11:18写道:

> Hi all:
>
> 在使用zeppelin提交sql的过程中总是发现超时现象,通过定位发现有如下问题:
> 1、blob client 和blob server 通信时采用单客户端通行,当有比较多的文件时,比如100个,这个耗时挺大的
>
> 2、blob server 虽然有blob.fetch.num-concurrent 进行并发控制,但是blob server在moveTempFileToStore方法中采用了写锁的方式,当时并发失效。
>
> 通过本地测试,简单的调整了代码,示例如下:
> BlobServer:
> [image: image.png]
>
> ClientUtils
> [image: image.png]
> 调整后通过zeppelin 提交job后,时间由之前的几分钟到现在几十秒,并且不会随着依赖的jar的增加而线性增长。
>
> 现有如下疑问:
> 1、blob server 中的锁的粒度是不是过大?当并行提交多个sql,实际上也只能一个一个的执行。
> 2、blob server 中moveTempFileToStore 的写锁是否真的必要呢?
>
> Best wishes.
>