2017-06-20 106 views
0

问题本地DASK调度无法连接到工人远程资源

如何在远程资源的调度DASK本地运行指定DASK工人的正确地址?

形势

我有一个远程资源,我可以ssh到。在那里,我有一个docker容器,它运行一个包含我需要运行Dask的所有依赖项的映像,Distributed。

运行时,容器执行以下操作:

dask-worker --nprocs 14 --nthreads 1 {inet_addr_local}:878 

在同一个网络,但我的笔记本电脑,我跑同一图像的另一个容器。在这个容器中,我运行DASK调度,就像这样:

dask-scheduler --port 8786 

当我启动调度程序,一切都很好。当我启动工人容器时,它似乎连接到调度程序。在状态我看到以下内容:

Waiting to connect to: tcp://{this_matches_inet_address_of_local}:8786 

在调度,我看到了下面反复记录,在一个循环中,它不断地试图联系/响应每个工人:

distributed.scheduler - INFO - Remove worker tcp://172.18.0.10:41508 
distributed.scheduler - INFO - Removed worker tcp://172.18.0.10:41508 
distributed.scheduler - ERROR - Failed to connect to worker 'tcp://172.18.0.10:44590': Timed out trying to connect to 'tcp://172.18.0.10:44590' after 3 s: OSError: [Errno 113] No route to host 

这个问题(我认为)可以在这里看到。 tcp://172.18.0.10不正确。工作人员在资源db.foo.net上运行,我可以通过[email protected] ssh进入。

从调度程序容器,我可以看到,我能够ping db.foo.net成功。我认为工人们假设他们的地址是他们所在的集装箱的当地地址,而不是db.foo.net。我需要覆盖这个默认值作为工人的某种配置。我认为--host标签会这样做,但这会导致Tornado发出以下错误:OSError: [Errno 99] Cannot assign requested address

+0

你能找到你的工人的数字IP常用工具连接的,如果不是172.18.0.10?它是否在eth0以外的接口上? – mdurant

回答

1

Dask工作人员需要能够使用提供给他们的地址联系调度程序。这听起来像这不是为你发生的。这可能是由于很多与您的网络相关的原因。一对夫妇的可能性:

  1. 你打错了地址(例如:我注意到,你在你的问题,而在另一个端口8786所使用的端口878在同一个地方)
  2. 您的网络不允许对某些端口进行通信(与系统管理员联系)
  3. 你的码头工人集装箱都没有设立在外部发布端口(你可能需要做一些搬运工布线或明确地使用主机网络)

不幸Dask本身并不能帮助您识别t这些网络问题。您可以尝试在相关端口上运行的其他服务,看是否可以重新创建缺少与像pingpython -m http.serve --port 8786

+0

谢谢 - 请问工作人员如何告诉调度员他们在哪里?该地址是否自动获取?当工作人员和调度程序在同一资源上时,一切正常。在这种情况下,我已将'dask_scheduler'设置为Docker Compose链接配置中的别名。我假设Docker能够在容器之间进行代理。我认为在我的调度程序位于其他地方的情况下不会发生这种情况。如果是这样的话,我需要能够以某种方式告诉工作人员如何告知调度人员他们所在的位置。希望这种思路是有道理的。 – kuanb

+1

您可以使用'--host'或'--interface'关键字指定地址。尝试'dask-worker --help'获取更多信息。 – MRocklin

+1

只是想跟进这里,以防其他人遇到这个问题 - 问题是#3。我们在Docker中使用了“主机联网”模式,以便Docker容器在主机计算机网络堆栈上运行,而不是默认的“桥”模式,从而创建码头专用网络。然后,你可以在我们的EC2实例上使用'dask-worker --host $(curl -s http:// instance-data/latest/meta-data/local-ipv4)...'来运行调度器(参见更多关于在这里获取实例元数据https://forums.aws.amazon.com/message.jspa?messageID=536813)。 – kuanb