繁体   English   中英

如何找出任务在 dask 分布式中失败的原因?

[英]How to find why a task fails in dask distributed?

我正在使用dask.distributed开发分布式计算系统。 我使用Executor.map函数提交给它的任务有时会失败,而其他看起来相同的任务会成功运行。

该框架是否提供了任何诊断问题的方法?

更新失败我的意思是增加 Bokeh Web UI 中失败任务的计数器,由调度程序提供。 完成任务的计数器也会增加。

Executor.map运行的函数返回None 它与数据库通信,从其表中检索一些行,执行计算并更新值。

我map有40000多个任务,所以研究日志有点乏味。

如果任务失败,则任何检索结果的尝试都将引发与工作线程相同的错误

In [1]: from distributed import Client

In [2]: c = Client()

In [3]: def div(x, y):
   ...:     return x / y
   ...: 

In [4]: future = c.submit(div, 1, 0)

In [5]: future.result()
<ipython-input-3-398a43a7781e> in div()
      1 def div(x, y):
----> 2     return x / y

ZeroDivisionError: division by zero

但是,其他事情可能会出错。 例如,您的工作人员上可能没有与客户端上相同的软件,或者您的网络可能不允许连接通过,或者现实世界网络中发生的任何其他事情。 为了帮助诊断这些,有几个选项:

  1. 您可以使用Web 界面来跟踪您的任务和工作人员的进度
  2. 您可以在调度程序或工作程序中启动 IPython 内核以直接检查它们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM