У меня есть dask-планировщик, работающий в док-контейнере на машине A
У меня есть работники dask, работающие в док-контейнерах на машине B (8 процессоров)
Я получил сообщение "shared.client - ПРЕДУПРЕЖДЕНИЕ - Не удалось собрать 1 ключ, перепланирование" и обнаружил проблему по адресу: https://github.com/dask/distributed/pull/1278
Насколько я понимаю, мне нужно установить оба: --contact-address
и: --listen-address
Однако я не могу понять, какими они должны быть.
Ниже приведены выходные данные планировщика и рабочего.
При запуске работника я использовал физический адрес dask-планировщика.
Однако планировщик печатает другой IP-адрес. Я пытался их использовать, но, похоже, ничего не работает.
Использование репозитория dask-docker
в терминале я запустил:
$ docker-compose up
Docker-Scheduler работает на машине с физическим IP-адресом 192.16.3.10
Выход с терминала:
scheduler_1 | distributed.scheduler - INFO - -----------------------------------------------
worker_1 | distributed.nanny - INFO - Start Nanny at: 'tcp://192.18.0.2:42383'
scheduler_1 | distributed.scheduler - INFO - Clear task state
scheduler_1 | distributed.scheduler - INFO - Scheduler at: tcp://192.18.0.4:8786
scheduler_1 | distributed.scheduler - INFO - bokeh at: :8787
scheduler_1 | distributed.scheduler - INFO - Local Directory: /tmp/scheduler-sdf8azmg
scheduler_1 | distributed.scheduler - INFO - -----------------------------------------------
worker_1 | distributed.diskutils - INFO - Found stale lock file and directory '/worker-hs49w9fj', purging
worker_1 | distributed.worker - INFO - Start worker at: tcp://179.18.0.2:42883
worker_1 | distributed.worker - INFO - Listening to: tcp://179.18.0.2:42883
worker_1 | distributed.worker - INFO - nanny at: 179.18.0.2:42383
worker_1 | distributed.worker - INFO - bokeh at: 179.18.0.2:40741
worker_1 | distributed.worker - INFO - Waiting to connect to: tcp://scheduler:8786
worker_1 | distributed.worker - INFO - -------------------------------------------------
worker_1 | distributed.worker - INFO - Threads: 6
worker_1 | distributed.worker - INFO - Memory: 2.10 GB
worker_1 | distributed.worker - INFO - Local Directory: /worker-az7a16hp
worker_1 | distributed.worker - INFO - -------------------------------------------------
scheduler_1 | distributed.scheduler - INFO - Register tcp://192.18.0.2:42883
scheduler_1 | distributed.scheduler - INFO - Starting worker compute stream, tcp://192.18.0.2:42883
worker_1 | distributed.worker - INFO - Registered to: tcp://scheduler:8786
worker_1 | distributed.worker - INFO - -------------------------------------------------
На работнике с физическим IP-адресом 192.16.3.98 я запустил
$ docker run -it --network host daskdev/dask dask-worker tcp://192.16.3.10:8786 --nprocs 8
Вывод на терминал был:
+ dask-worker tcp://192.16.3.10:8786 --nprocs 8
distributed.nanny - INFO - Start Nanny at: 'tcp://192.16.3.98:43684'
distributed.nanny - INFO - Start Nanny at: 'tcp://192.16.3.98:36592'
distributed.nanny - INFO - Start Nanny at: 'tcp://192.16.3.98:36824'
distributed.nanny - INFO - Start Nanny at: 'tcp://192.16.3.98:45223'
distributed.nanny - INFO - Start Nanny at: 'tcp://192.16.3.98:36275'
distributed.nanny - INFO - Start Nanny at: 'tcp://192.16.3.98:34367'
distributed.nanny - INFO - Start Nanny at: 'tcp://192.16.3.98:33851'
distributed.nanny - INFO - Start Nanny at: 'tcp://192.16.3.98:42186'
distributed.worker - INFO - Start worker at: tcp://192.16.3.98:44199
distributed.worker - INFO - Listening to: tcp://192.16.3.98:44199
distributed.worker - INFO - nanny at: 192.16.3.98:45223
distributed.worker - INFO - bokeh at: 192.16.3.98:38916
distributed.worker - INFO - Waiting to connect to: tcp://192.16.3.10:8786
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO - Threads: 1
distributed.worker - INFO - Memory: 4.19 GB
distributed.worker - INFO - Local Directory: /worker-3w1rygoa
distributed.worker - INFO - -------------------------------------------------
Соединение выше, но я получаю вышеупомянутые ошибки.
есть ли контактные адреса по умолчанию, которые я должен использовать для
--contact-address и --listen-address?
если я хочу использовать несколько рабочих на одном компьютере, нужно ли мне запускать несколько контейнеров?
любая помощь или направление будут оценены.