我设置了一个群集,该群集似乎可以正确连接到调度程序(3台Linux Ubuntu 18.04和3台Windows 10计算机,调度程序位于Win 10计算机之一上)。在所有操作系统均为Win 10之前,我已经成功运行的代码出现超时错误。
这是所有错误中的错误:
tornado.application - ERROR - Multiple exceptions in yield list
Traceback (most recent call last):
File "C:\Apps\Anaconda\lib\site-packages\distributed\comm\core.py", line 186, in connect
quiet_exceptions=EnvironmentError)
File "C:\Apps\Anaconda\lib\site-packages\tornado\gen.py", line 1133, in run
value = future.result()
tornado.util.TimeoutError: Timeout
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Apps\Anaconda\lib\site-packages\tornado\gen.py", line 883, in callback
result_list.append(f.result())
File "C:\Apps\Anaconda\lib\site-packages\tornado\gen.py", line 1141, in run
yielded = self.gen.throw(*exc_info)
File "C:\Apps\Anaconda\lib\site-packages\distributed\core.py", line 634, in send_recv_from_rpc
comm = yield self.pool.connect(self.addr)
File "C:\Apps\Anaconda\lib\site-packages\tornado\gen.py", line 1133, in run
value = future.result()
File "C:\Apps\Anaconda\lib\site-packages\tornado\gen.py", line 1141, in run
yielded = self.gen.throw(*exc_info)
File "C:\Apps\Anaconda\lib\site-packages\distributed\core.py", line 745, in connect
connection_args=self.connection_args)
File "C:\Apps\Anaconda\lib\site-packages\tornado\gen.py", line 1133, in run
value = future.result()
File "C:\Apps\Anaconda\lib\site-packages\tornado\gen.py", line 1141, in run
yielded = self.gen.throw(*exc_info)
File "C:\Apps\Anaconda\lib\site-packages\distributed\comm\core.py", line 195, in connect
_raise(error)
File "C:\Apps\Anaconda\lib\site-packages\distributed\comm\core.py", line 178, in _raise
raise IOError(msg)
OSError: Timed out trying to connect to 'tcp://138.55.36.169:43033' after 10 s: connect() didn't finish in time
因此,此错误重复3次,每个IP都是我的Linux机器之一。这使我相信,也许我不能在一个轻松的集群中拥有多个操作系统,但是我却无法在文档中找到任何类似的内容。我是在做错事还是只是在某个地方错过了这个机会?
答案 0 :(得分:1)
所有工作人员都需要能够有效地对功能进行序列化和反序列化。因此,如果您正在使用的功能和数据可以在一个操作系统上进行序列化,而在另一个操作系统上进行反序列化并且仍然可以执行,那么一切就可以了。
原则上,这是正确的。 Python函数应该可以在任何地方使用。实际上,尽管例如,如果您在一台机器上有库但另一台机器上没有库,则可能会中断。
您出现的错误可能是由于多种原因,包括不同的Python版本或网络问题。
我建议致电以下内容,以检查Dask工作人员和客户端中相关库的版本是否相同。
client.get_versions(check=True)