2017-10-25 5 views
0

Es sind keine Arbeitskraftknoten verfügbar. Wir bekommen diesen Fehler intermittierend für Postgres. Ich habe sichergestellt, dass .properties-Datei in allen Knoten verfügbar ist und korrekt ist und daher einige der Abfragen ausgeführt werden.Keine Arbeitskraftknoten verfügbar - Presto

Kann dieser Fehler auftreten, wenn die Hardwareressourcen nicht ausreichen, um die Anzahl der Abfragen auszuführen?

Genaue Fehlermeldung lautet: RESPONSE -> { "id": "20170816_111721_01180_c5tn3", "infoUri": "http://ec2-52-91-204-246.compute-1.amazonaws.com:8080/query.html?20170816_111721_01180_c5tn3", "Statistik": { "state": "Fehler", "Warteschlange": false, "geplant": false, "Knoten": 0, "totalSplits": 0, "queuedSplits": 0, "runningSplits": 0, "completedSplits": 0, "userTimeMillis": 0, "cpuTimeMillis": 0, "wallTimeMillis ": 0," processedRows ": 0," processedBytes ": 0}," Fehler ": {" message ":" Keine Arbeiterknoten verfügbar "," errorCode ": 65541," errorName ":" NO_NODES_AVAILABLE "," errorType " : "INTERNAL_ERROR", "failureInfo": {"type": "com.facebook.presto.spi.PrestoException", "Nachricht": "Keine Worker-Knoten verfügbar", "unterdrückt": [], "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.g etNodePartitioningMap (NodePartitioningManager.java:105) "," com.facebook.presto.execution.scheduler.SqlQueryScheduler.lambda $ null $ 0 (SqlQueryScheduler.java:140) "," java.util.HashMap.computeIfAbsent (HashMap.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) " ]}}}

+0

Dies bedeutet im Allgemeinen, dass Sie verstehen müssen, was * vor * diesem Fehler passiert ist. Sind die Arbeiter abgestürzt/haben die Verbindung unterbrochen/sind eingefroren/reagieren nicht mehr und warum. –

+0

Tatsächlich waren die Worker erreichbar/funktionierend und die Abfragen scheiterten daher zeitweise. Kann es daran liegen, dass die aktuelle Hardware die Last nicht unterstützen kann? – dabansal

Antwort

1

Es mag viele Gründe für Ihre Mitarbeiter sein abstürzen:

Ihre Anfrage möglicherweise einige Ressourcen blockieren und Ihre Arbeiter abstürzen oder es möglicherweise nicht genügend Ressourcen für Ihre Abfrage sein auszuführen. Sie müssen Ihren Presto-Server in der Datei neu konfigurieren, um Ihre Abfrageanforderungen zu erfüllen.

+0

ja. Es wurde durch Ändern des Parameters xmx in der Datei jvm.config behoben – dabansal