Hive 具有过多负载的Presto节点

Hive 具有过多负载的Presto节点,hive,hortonworks-data-platform,presto,bigdata,Hive,Hortonworks Data Platform,Presto,Bigdata,我在presto上对tpch 100gb数据集执行一些查询,我有4个节点,1个主节点,3个工作节点。当我尝试运行一些查询(不是所有查询)时,我在Presto web界面上看到节点在执行过程中死亡,导致查询失败,错误如下: .facebook.presto.operator.PageTransportTimeoutException:与工作节点交谈时遇到太多错误。节点可能已崩溃或负载过大。这可能是暂时的问题,请在几分钟后重试您的查询 我重新启动了所有节点和presto服务,但错误仍然存在,如果我在

我在presto上对tpch 100gb数据集执行一些查询,我有4个节点,1个主节点,3个工作节点。当我尝试运行一些查询(不是所有查询)时,我在Presto web界面上看到节点在执行过程中死亡,导致查询失败,错误如下:

.facebook.presto.operator.PageTransportTimeoutException:与工作节点交谈时遇到太多错误。节点可能已崩溃或负载过大。这可能是暂时的问题,请在几分钟后重试您的查询

我重新启动了所有节点和presto服务,但错误仍然存在,如果我在较小的数据集上运行相同的查询,则不存在此问题。有人可以提供有关此问题的帮助吗


谢谢

这可能是一个配置问题。例如,如果未正确设置本地最大内存,并且查询使用了过多的堆内存,则完整GC可能会导致此类错误。我建议向Presto Google小组提问,并描述重现问题的方法:)

3种可能导致此类错误的原因。您可以使用ssh连接到其中一个worker,以了解查询运行时出现的问题

  • 高CPU

    任务。并发性
    调低到,例如8

  • 高内存

    jvm.config
    中,
    -Xmx
    应不超过总内存的80%。在
    config.properties
    中,
    query.max memory per node
    不应超过
    Xmx
    编号的一半

  • 低打开文件限制

    /etc/security/limits.conf
    中为Presto进程设置一个较大的数字。默认值肯定太低了


我在Mac上用16GB的ram运行presto,下面是java.config文件的配置

-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
即使运行查询,我也会遇到以下错误

现在选择()

我将-Xmx16G值更改为-Xmx10G,效果很好

我使用以下链接在我的系统上安装了presto

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.