presto节点负载过大

u4dcyp6a  于 2021-06-26  发布在  Hive
关注(0)|答案(3)|浏览(814)

我在presto上对tpch100gb数据集执行一些查询,我有4个节点,1个主节点,3个工作节点。当我尝试运行一些查询(不是所有查询)时,我在presto web界面上看到节点在执行过程中死亡,导致查询失败,错误如下:
.facebook.presto.operator.pagetransporttimeoutexception:与工作节点交谈时遇到太多错误。节点可能已崩溃或负载过大。这可能是暂时的问题,请在几分钟后重试您的查询。
我重新启动了所有节点和presto服务,但错误仍然存在,如果我在较小的数据集上运行相同的查询,则不存在此问题。有人能提供有关此问题的帮助吗?
谢谢

ssgvzors

ssgvzors1#

这可能是一个配置问题。例如,如果本地最大内存设置不正确,并且查询使用了太多堆内存,则完全gc可能会导致此类错误。我建议问一下presto google小组,并描述一些重现问题的方法:)

ohtdti5x

ohtdti5x2#

我在mac上运行presto,16gb内存下面是java.config文件的配置。

-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p

即使运行查询,我也会遇到以下错误
立即选择();

Query 20200817_134204_00005_ud7tk failed: 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.

我把我的-xmx16g值改成了-xmx10g,效果很好。
我使用以下链接在我的系统上安装presto。
用于预安装的连杆

2ledvvac

2ledvvac3#

这类错误的3个可能原因。您可以ssh到其中一个worker中,以了解查询运行时的问题所在。
高cpu
调低音量 task.concurrency 例如,到8
高内存
jvm.config , -Xmx 不应超过总内存的80%。在 config.properties , query.max-memory-per-node 应该不超过 Xmx 号码。
低打开文件限制
设置在 /etc/security/limits.conf 普雷斯托过程的一个较大的数字。默认值肯定太低了。

相关问题