这是这个question的后续行动。我现在正在尝试在AWS上的多个EC2节点上运行Dask。
我可以在第一台机器上启动调度程序:
然后我在其他几台机器上启动工作人员。从其他机器我可以使用nc -zv ${HOST} ${PORT}
访问调度程序,而工作者似乎能够连接到主服务器,工作人员的sysout证明:Registered to: tcp://10.201.101.108:31001
,但几乎立即工人抱怨超时循环。
从主节点,在我的Jupyter笔记本中,然后我连接到调度程序:
dask_client = Client('10.201.101.108:31001')
但是工作不会传播到工作节点(工作节点CPU保持<1%),甚至传播到与调度程序在同一台机器上运行的工作程序。这是一个高度并行化的任务,当在一台机器上运行时(即,使用Client(processes=False)
消耗机器上的每个核心)。
根据您的网络,在第一次连接时看到“事件循环无响应”警告并不罕见。
有些事要检查
client.get_versions(check=True)
client.scheduler_info()['workers']
有什么?如果没有,那么你可能会遇到连接问题client.get_worker_logs()
查看工作日志client.submit(lambda x: x + 1, 10).result()
这样的简单计算