背景
Spark程序扫一张Hive表(大小3-7G),然后用http协议的streamLoad任务提交给Doris集群,在Doris集群从0.13.15升级到0.14.12后spark程序报错streamLoad时突然会Connection reset
分析
enable_http_server_v2
这个参数可以参考FE中文配置中查看到,作用是对于Doris界面是否开启新风格的界面,但是实际上他的作用远不止如此,请接着看
新老版本对于enable_http_server_v2
参数默认值是不同的
在0.13.15中,默认值是false,即默认界面是老版本的风格,UI比较旧些。
0.14.12反之,默认值是true,即默认界面开启新风格新UI界面,但同时会有问题
看源码(PaloFe.java)分析http v2中并未对http上传的文件大小做limit限制,那么就会使用springBoot中默认的值去限定,则在外表象则会出现Connection reset的问题。
解决
方法一:关闭这个参数任务即可正常运行
方法二:我本来想对这个问题进行修复,看了社区发现在两天前刚刚merge了一个Doris-6013,正好是这个问题,需要进行打patch,但是注意这个PR有问题,单位写错了,需要结合Doris-6070一起打patch就能修复
这俩PR主要是在Doris新版本中对httpV2进行了两个参数的添加
spring.servlet.multipart.max-file-size=100M
spring.servlet.multipart.max-request-size=100MB
max-file-size 是单个文件大小
max-request-size 是设置总上传的数据大小
如果是想要不限制文件上传的大小,那么就把两个值都设置为-1,这个-1我没测试,不过应该是有作用的,后续我测试了后或者跟PR的提出者确定后,再评论此博客
重点补充
经测试发现,上述两个参数并无作用,参考社区Issue-6149
这个补丁打上才能修复此问题