10.1. 升级完成后部分任务运行报错,导致任务无法完成,出现connection pointer is NULL && bucket num与实际文件不符两个错误
➢ 问题
➢ 分析&&解答
对应第一次任务失败,主要两个报错信息,分别对应两个问题:
1)、connection pointer is NULL
分析:通过日志分析,定位这个问题是新版本一个已知问题,因为 kdw 正常情况上限 qe(最小执行单位,进程)个数在 5000,而系统参数 net.core.somaxconn 默认值为 128。
处理:将 net.core.somaxconn 调整为 10000,该报错消失。
2)、bucket num 与实际文件不符
分析:这个问题比较复杂,因为新版本对并行度的优化,我们将 hawq_rm_nvseg_perquery_perseg_limit 参数的默认值从以前的 6 改为 8,众邦环境没有设置这个值,所以升级后是 8,本来这个点没什么影响,不过以为众邦用的是函数跑任务,作为 hash 表在函数里认的是 hawq_rm_nvseg_perquery_perseg_limit 参数,所以导致以前表设置是 24(4 个计算节点,每节点 6 就是 24)个文件,现在默认值是 8(8*4=32),在任务导入时分成 32 个文件写入,最后文件是 32 但是 hash 定义是 24,这对 hash 表来说就会有一个报错。
处理:将问题的 hash 重建导数后,该报错消失