部分场景下broker load速度特别慢 SR 2.3

服务器: 3FE , 6个BE(16core * 64G ) 磁盘SSD
一张144W的数据,字段313个,hive表数据存储hdfs orc格式 。
broker load时间开销22分钟 !!! 另外也有2亿的表 百来个字段全量同步也才20分钟左右。

broker load相关参数为SR默认参数,因为load任务并发在25左右,load任务约为1200个左右,大概有五六个模型存在这种问题

image

HDFS文件个数为672个

这是broker这个任务的日志信息
1.log (507.1 KB)

看起来是读取HDFS太慢了
可能是小文件太多,也可能是我们处理的问题
你是什么版本?你可以通过创建Hive外表,然后insert into select * from hive_external 看下需要耗时多久么?

作了租户分区 所以文件数600多个,用的是SR 2.3.1

用外部表写入只要九秒钟

672个也不算多

这是你们正在处理的那个问题么? 大概什么版本修复?

我找我们的同学跟进下

能提供一下这个导入时间段的fe日志吗

load信息


对应时间点: 2022-09-05 07:31:44 ~ 2022-09-05 07:53:24 label = p00002_ds_pms_hotel_main_factor1662334302243 表名: ds_pms_hotel_main_factor
对应FE日志:
1.log (4.1 MB)

这个导入慢是稳定复现吗,你修改一下FE的配置min_bytes_per_broker_scanner= 16777216试一下导入时间有什么变化。

稳定的,每次都差不多这个时间, 这个值放成16M 会不会对其他的load有影响,两千多个任务 就只有几个会比较慢。

基本没有影响,如果有其他环境可以在其他环境里验证,感觉和数据集有关。也可以在没有其他导入的时候单独建个表验证一下。

快很多了 这从只要四分钟了 ,但是还是赶不上外部表做insert 外部表直接insert只要九秒

大佬,这还是因为小文件的问题么? 另外还有提升空间么? 外部表只要九秒, broker这里还是慢了些, 或者是不是还可以将这个参数再放小点?


这里也还有一张,表字段584个 数据两万多 broker 也需要花费四五分钟 ds_ext_finance_main_factor

你可以直接使用外表的方式进行导入么?

之前测试外部表用久了会有GC问题,才转成load方式没多久,另外如果用外部表如果我基于分区做过滤条件这个条件会下沉到hdfs文件过滤上去么? 因为会存在多线程同时操作一张表的场景。