Узлы Presto со слишком большой нагрузкой

Я выполняю некоторые запросы через набор данных tpch 100 ГБ на Presto, у меня есть 4 узла, 1 мастер, 3 рабочих. Когда я пытаюсь выполнить некоторые запросы, а не все, я вижу в веб-интерфейсе Presto, что узлы умирают во время выполнения, что приводит к сбою запроса, ошибка следующая:

.facebook.presto.operator.PageTransportTimeoutException: обнаружено слишком много ошибок при обращении к рабочему узлу. Возможно, узел вышел из строя или был слишком загружен. Вероятно, это временная проблема, поэтому, пожалуйста, повторите ваш запрос через несколько минут.

Я перезагрузил все узлы и сервис Presto, но ошибка остается, этой проблемы не существует, если я выполняю те же запросы по меньшему набору данных. Может кто-нибудь помочь с этой проблемой?

Спасибо

2 ответа

3 возможных причины такого рода ошибок. Вы можете обратиться к одному из работников, чтобы узнать, в чем проблема, когда выполняется запрос.

  • Высокая загрузка процессора

    Смягчить task.concurrency например 8

  • Высокая память

    в jvm.config, -Xmx Должно быть не более 80% общего объема памяти. в config.properties, query.max-memory-per-node должно быть не более половины Xmx число.

  • Низкий лимит открытого файла

    Установить в /etc/security/limits.conf большее число для процесса Престо. Значение по умолчанию определенно слишком низкое.

Это может быть проблемой для конфигурации. Например, если локальная максимальная память не установлена ​​надлежащим образом и запрос использует слишком много динамической памяти, полный GC может вызвать такие ошибки. Я бы предложил спросить в Presto Google Group и описать, как воспроизвести проблему:)

Я запускал presto на Mac с 16 ГБ оперативной памяти. Ниже приведена конфигурация файла 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 в своей системе.

Ссылка для установки Presto

Другие вопросы по тегам