Dask如何在云中的多个虚拟机上执行代码

问题描述 投票:0回答:1

我编写了一个程序,但很快又延迟了,现在我想在云中的多台计算机上运行它。但是有一件我不理解的事-在没有代码所有依赖的情况下,dask如何在云中的多台计算机上运行代码?

pandas dask dask-distributed dask-delayed dask-kubernetes
1个回答
0
投票

在多台计算机上运行时,Dask工作人员必须有权访问所有必需的依赖关系才能运行您的代码。

您已经用dask-kubernetes标记了您的问题,所以我将以它为例。默认情况下,dask-kubernetes使用daskdev/dask Docker image运行您的工作程序。该图像包含Python和运行Dask分布的最小依赖关系。

如果您的代码需要外部依赖,则必须确保已将其安装在映像中。 Dask docker映像支持通过设置daskdev/daskEXTRA_APT_PACKAGESEXTRA_CONDA_PACKAGES环境变量来在运行时安装额外的软件包。

EXTRA_PIP_PACKAGES
# worker-spec.yml

kind: Pod
metadata:
  labels:
    foo: bar
spec:
  restartPolicy: Never
  containers:
  - image: daskdev/dask:latest
    imagePullPolicy: IfNotPresent
    args: [dask-worker, --nthreads, '2', --no-dashboard, --memory-limit, 6GB, --death-timeout, '60']
    name: dask
    env:
      - name: EXTRA_APT_PACKAGES
        value: packagename  # Some package to install with `apt install`
      - name: EXTRA_PIP_PACKAGES
        value: packagename  # Some package to install with `pip install`
      - name: EXTRA_CONDA_PACKAGES
        value: packagename  # Some package to install with `conda install`
    resources:
      limits:
        cpu: "2"
        memory: 6G
      requests:
        cpu: "2"
        memory: 6G

缺点是每次启动工作程序时都必须安装软件包,这会使from dask_kubernetes import KubeCluster cluster = KubeCluster.from_yaml('worker-spec.yml') 变慢。因此,您也可以创建已经安装了所有依赖项的自己的Docker映像,并将其发布到Docker Hub。然后在您的配置中使用它。

adaptive scaling
© www.soinside.com 2019 - 2024. All rights reserved.