Сбой фреймворка Луиджи

когда я запускаю задачи luigi, иногда происходит сбой фреймворка, что приводит к сбою всех следующих задач. Вот информация из журнала ошибок:

2017-10-05 22:02:02,564 luigi-interface WARNING  Failed pinging scheduler
2017-10-05 22:02:03,129 requests.packages.urllib3.connectionpool INFO     Starting new HTTP connection (126): localhost
2017-10-05 22:02:03,130 luigi-interface ERROR    Failed connecting to remote scheduler 'http://localhost:8082'
Traceback (most recent call last):
    ...
    File "/home/develop/data_warehouse/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 585, in send
    r = adapter.send(request, **kwargs)
    File "/home/develop/data_warehouse/venv/local/lib/python2.7/site-packages/requests/adapters.py", line 467, in send
    raise ConnectionError(e, request=request)
    ConnectionError: HTTPConnectionPool(host='localhost', port=8082): Max retries exceeded with url: /api/add_worker (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f15128cb3d0>: Failed to establish a new connection: [Errno 111] Connection refused',))
2017-10-05 22:02:03,180 luigi-interface INFO     Worker Worker(salt=150908931, workers=3, host=etl2, username=develop, pid=18019) was stopped. Shutting down Keep-Alive thread
Traceback (most recent call last):
    File "app_metadata.py", line 1567, in <module>
    luigi.run()
    File "/home/develop/data_warehouse/venv/local/lib/python2.7/site-packages/luigi/interface.py", line 210, in run
    return _run(*args, **kwargs)['success']
    File "/home/develop/data_warehouse/venv/local/lib/python2.7/site-packages/luigi/interface.py", line 238, in _run
    return _schedule_and_run([cp.get_task_obj()], worker_scheduler_factory)
    File "/home/develop/data_warehouse/venv/local/lib/python2.7/site-packages/luigi/interface.py", line 197, in _schedule_and_run
    success &= worker.run()
    File "/home/develop/data_warehouse/venv/local/lib/python2.7/site-packages/luigi/worker.py", line 867, in run
    self._add_worker()
    File "/home/develop/data_warehouse/venv/local/lib/python2.7/site-packages/luigi/worker.py", line 652, in _add_worker
    self._scheduler.add_worker(self._id, self._worker_info)
    File "/home/develop/data_warehouse/venv/local/lib/python2.7/site-packages/luigi/rpc.py", line 219, in add_worker
    return self._request('/api/add_worker', {'worker': worker, 'info': info})
    File "/home/develop/data_warehouse/venv/local/lib/python2.7/site-packages/luigi/rpc.py", line 146, in _request
    page = self._fetch(url, body, log_exceptions, attempts)
    File "/home/develop/data_warehouse/venv/local/lib/python2.7/site-packages/luigi/rpc.py", line 138, in _fetch
    last_exception
    luigi.rpc.RPCError: Errors (3 attempts) when connecting to remote scheduler 'http://localhost:8082'

похоже, что попытка проверить связь с центральным расписанием, но не удалась, затем произошел сбой, все последующие задачи были заблокированы, не удалось выполнить успешно.

и у кого-то еще встречается аналогичная ошибка, но его разрешение не работает. Github - не удалось подключиться к удаленному планировщику № 1894


person Xun Lee    schedule 10.10.2017    source источник
comment
Возможно, вы не используете центральный планировщик, но ваша задача пытается подключиться к нему, поскольку вы не указали флаг --local-scheduler.   -  person Abdul Mannan    schedule 19.03.2018


Ответы (2)


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

в luigi.cfg

[core]
rpc-connect-timeout=60.0 #default is 10.0
rpc-retry-attempts=10    #default is 3
rpc-retry-wait=60        #default is 30

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

person MattMcKnight    schedule 11.10.2017
comment
как автоматически проверить статус процесса планировщика, прочитать и проанализировать информацию журнала? - person Xun Lee; 11.10.2017

Правильно ли вы настроили центральный планировщик? См. Документы: https://luigi.readthedocs.io/en/stable/central_scheduler.html

Если нет, попробуйте использовать локальный планировщик, указав --local-scheduler в командной строке.

person cangers    schedule 16.10.2019