早上的时候同事找,说presto查询报error executing query。第一反应是presto集群和presto-jdbc包版本不一致,后续确认一致后,做了以下排除。
1、服务器端ping presto机器ip是否通
2、telnet presto端口是否通
3、jdbc是否设置超时时间
4、presto是否设置超时参数
(1)确认/presto/etc/config.properties文件下是否有query.max-execution-time、query.max-run-time之类的参数
(2)如果是多租户,配置了maxQueued参数,是否连接被占满。
(3)其它别的参数
5、debug代码,看是否能获取到connection,确认账号密码是否正确
远程支持,排除过程中同事给了一些错误信息,比如查询成功过——一下子把问题1,2排除了,只有超过10秒的连接才会报连接超时——于是感觉好像是问题4导致的。基于同事之前已经排除了问题1,检查了问题4,让其再telnet一下端口以及直接在presto集群上用cli方式登录,排除终端能登录的问题,缩小问题定位范围。最后的最后,同事定位是端口不通的问题……