在使用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 的写锁是否真的必要呢?*来自志愿者整理的flink邮件归档
这个问题在ha的情况下非常突出,因为和hdfs的交互式线性的,当文件达到几百的时候,特别慢
*来自志愿者整理的FLINK邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。