生产设置的presto集群的并发任务是10个,队列200。43台worker,每台分配15G内存。今天由于任务量过大,而且大查询任务很多,导致很多sql跑的很慢,并且有些sql在跑到99%的时候一直pengding,到了timeout时间就抛错了
点进去看报错原因,发现以下报错
com.facebook.presto.spi.PrestoTransportException: Encountered too many errors talking to a worker node.
The node may have crashed or be under too much load. This is probably a transient issue,
so please retry your query in a few minutes. (getting task status http://10.38.199.117:8090/v1/task/20200717_054320_01590_tu6mh.2.0 - 261 failures,
failure duration 308.87s, total failed request time 247.15s)
从内容看似乎是10.38.199.117这台机器负载过高了,因为还跑了其他程序,导致presto任务无法顺利执行。那能否把这台机器直接踢出去呢,yarn或slider命令似乎没有能指定剔除某一台worker的,没办法直接在117的控制台找到presto进程,直接kill掉
然而在没过一会,presto又在这台上起来了。就是说117presto掉了之后,yarn又把它拉起来了。
最后没办法,直接在把117打一个标签,而presto启动的时候是使用无标签的,那么117有了标签,yarn就不会再拉它起来了