我在我的机器上使用Dask和Docker本地写作(OSX Catalina 10.15.17)。我的停靠-撰写文件与这相同,只是我在笔记本容器中添加了一个卷。
我可以在默认地址localhost:8787正确地访问仪表板,但是当我启动一些任务时,比如使用xarray或类似的东西:
import dask.array as da
x = da.random.random((1000,1000,10), chunks=(1000,1000,5))
y = da.random.random((1000,1000,10), chunks=(1000,1000,5))
z = (da.arcsin(x) + da.arccos(y)).sum(axis=(1,))
z.compute()仪表板上没有显示任何内容:
我已经尝试过用LocalCluster启动这两种系统
from dask.distributed import Client, LocalCluster
cluster = LocalCluster()
client = Client(cluster)
client然后在左侧使用木星实验室的Dask扩展,从那里发射星系团。
你有什么意见建议?我是不是遗漏了什么?
干杯
发布于 2020-11-19 11:43:26
我已经运行了与您描述的相同的工作流,并有几个指针。
为了连接到Dask集群,您需要创建一个客户对象。
因此,在运行笔记本中的任何代码之前,首先需要运行
from dask.distributed import Client
client = Client("tcp://scheduler:8786") # We could also omit the address because it is set in the `DASK_SCHEDULER_ADDRESS` environment variable然后,运行您的Dask数组代码将在集群上执行。然而,也值得注意的是,这是一个如此少量的工作,它几乎立即完成,仪表板没有显示给我。但是,如果我转到概要文件页面,我可以看到执行的工作的概要文件,因此它肯定运行在那里。

如果我将数组大小增加到da.random.random((10_000,10_000,10), chunks=(1000,1000,5)),那么就会看到仪表板上的活动。

我在这里的最后一点评论是,您使用的docker-compose.yml文件实际上是用于Docker映像的构建管道的一部分,实际上并不打算让人们使用它来运行Dask。虽然它确实有效。您可能会发现这个更简单的配置更易于使用。
version: "3.1"
services:
scheduler:
image: daskdev/dask
hostname: dask-scheduler
ports:
- "8786:8786"
- "8787:8787"
command: ["dask-scheduler"]
worker:
image: daskdev/dask
hostname: dask-worker
command: ["dask-worker", "tcp://scheduler:8786"]
notebook:
image: daskdev/dask-notebook
hostname: notebook
ports:
- "8888:8888"
environment:
- DASK_SCHEDULER_ADDRESS="tcp://scheduler:8786"https://stackoverflow.com/questions/64901994
复制相似问题