REFRESH EXTERNAL TABLE FAILD失败报错

fe_jstack.log (1.0 MB)
您好,这是失败的时候跑的jstack的日志

好的,估计是表的分区数太多,fe访问hive metastore卡住了,请问咱们这个表的分区数是多少啊?

这表没有分区哎。数据量在1700多万

我看您的表结构PARTITION BY (etl_dt, etl_hour) ,数据是按小时分区的,分区数应该不少了,您再看下hive表

额,看错表了,这个表是有很多分区。但是其他的表有部分没有分区,数据量也只有千万。然后也是报一样的错误。

先拿这个表分析吧,分区数多少?怀疑是个已知问题,其他报错的表, refresh的时候也打印下jstack -l $pid

分区数:18,166 数量:4219795127 这张表是这个情况,是因为分区过多、数据量过大吗?

分区太多了,fe访问hive metastore,长时间占用db读锁问题,可以升级下2.2.9,有优化通过添加session变量来控制获取表级别统计信息时访问的分区数,默认5000 ;2.5重构之后增加了分区级别统计信息,首次查询不会拉全表

1赞

好,谢谢您,我们找时间升级版本试试

请问这张表有40多亿数据量?分区数是:18,166 是吗?

嗯嗯,是的40多亿数据量,分区数是:18,166

好的,先尝试升级2.2.9吧,有优化