【问题标题】:No Worker Nodes Available - Presto没有可用的工作节点 - Presto
【发布时间】:2018-04-06 07:26:09
【问题描述】:

没有可用的工作节点。对于 postgres,我们会间歇性地收到此错误。我确保 .properties 文件在所有节点中都可用并且是正确的,因此一些查询正在运行。

当硬件资源不足以执行查询数量时会出现此错误吗?

确切的错误信息是: 响应 --> {"id":"20170816_111721_01180_c5tn3","infoUri":"http://ec2-52-91-204-246.compute-1.amazonaws.com:8080/query.html?20170816_111721_01180_c5tn3","stats":{"state":"FAILED","queued":false,"scheduled":false,"nodes ":0,"totalSplits":0,"queuedSplits":0,"runningSplits":0,"completedSplits":0,"userTimeMillis":0,"cpuTimeMillis":0,"wallTimeMillis":0,"processedRows": 0,"processedBytes":0},"error":{"message":"没有可用的工作节点","errorCode":65541,"errorName":"NO_NODES_AVAILABLE","errorType":"INTERNAL_ERROR","failureInfo" :{"type":"com.facebook.presto.spi.PrestoException","message":"没有可用的工作节点","suppressed":[],"stack":["com.facebook.presto.util. Failures.checkCondition(Failures.java:85)","com.facebook.presto.sql.planner.SystemPartitioningHandle.getNodePartitionMap(SystemPartitioningHandle.java:149)","com.facebook.presto.sql.planner.NodePartitioningManager.getNodePartitioningMap( NodePartitioningManager.java:105)","com.facebook.presto.execution.scheduler.SqlQueryScheduler.lambda$null$0(SqlQueryScheduler.java:140)","java.util.HashMap.computeIfAbsent(Hash Map.java:1126)","com.facebook.presto.execution.scheduler.SqlQueryScheduler.lambda$new$1(SqlQueryScheduler.java:140)","com.facebook.presto.execution.scheduler.SqlQueryScheduler.createStages(SqlQueryScheduler .java:241)","com.facebook.presto.execution.scheduler.SqlQueryScheduler.\u003Cinit\u003E(SqlQueryScheduler.java:131)","com.facebook.presto.execution.SqlQueryExecution.planDistribution(SqlQueryExecution.java: 388)","com.facebook.presto.execution.SqlQueryExecution.start(SqlQueryExecution.java:252)","com.facebook.presto.execution.QueuedExecution.lambda$start$1(QueuedExecution.java:62)"," java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)","java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)","java.lang.Thread.run(Thread. java:748)"]}}}

【问题讨论】:

  • 这通常意味着您需要了解此错误之前发生了什么。工人是否崩溃/断开连接/冻结/变得无响应以及原因。
  • 实际上工作人员可以访问/工作,因此查询会间歇性地失败。会不会是目前的硬件无法支撑负载?

标签: presto


【解决方案1】:

您的工作人员崩溃的原因可能有很多:

您的查询可能会阻塞某些资源并导致您的工作线程崩溃,或者您的查询可能没有足够的资源来执行。您需要在config.properties文件中重新配置您的presto服务器以满足您的查询需求。

【讨论】:

  • 是的。通过更改jvm.config文件中的xmx参数解决了
猜你喜欢
  • 2015-03-08
  • 2015-02-06
  • 1970-01-01
  • 2019-07-13
  • 2014-09-23
  • 2017-05-21
  • 2019-07-09
  • 2019-08-30
  • 1970-01-01
相关资源
最近更新 更多