Узлы 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 в своей системе.