达斯克仪表板是空的

Dask dashboard is empty

我有几个 python 脚本 运行 来自不同数据库的不同 Dask 任务,我使用 Python 多处理模块来 运行 所有 Python 脚本同时进行。我向我的任务管理器核实了这些脚本是 运行 并行的,并且我能够访问我的 dask 仪表板。但是,我的 dask 仪表板没有显示任何内容。这是我的 dask 仪表板的屏幕截图。

这是我的 Python 代码片段示例(已简化):

if __name__ == '__main__':
    # Setup Dask Distributed Client
    client = Client(n_workers=4, threads_per_worker=4)
    """
    call the scripts here and store it in a process list
    """
    for process in processes:
        process.start()

将多个进程与 Client() 组合时,您将在每个进程中创建一个默认集群。主进程中的一个将是您可以看到的仪表板,其他的也会有仪表板,但在不同的端口。如果您捕获子进程的标准输出,它们会告诉您在哪些端口上。

这可能不是您的本意。如果您希望多个进程与单个集群通信,您应该首先创建该集群,然后使用 client("tcp://locaklhost:8786").

之类的东西连接到它

然而,这一切也提出了一个问题,如果你想使用dask,你为什么还要创建进程?为什么不让 Dask 负责执行事情,例如 client.submit().

感谢大家的回答和回复。我设法通过在每个脚本的函数中定义一个带有 dask-scheduler tcp 的客户端(例如 client("tcp://192.168.x.xx:8786"))来解决它在我的 main.py 中设置单个客户端。至于为什么我同时使用 multiprocessing 和 dask,是因为我的公司需要同时处理很多 dask 脚本。在每个脚本中,我需要处理来自客户端数据仓库的不同数据查询所产生的不同巨大数据帧。我在每个脚本中使用 dask 来处理巨大的数据帧和 python 多处理模块来同时执行所有脚本并在单个 cmd window.

中处理它们