【问题标题】:Missing Workspace Directory in Customized Databricks Cluster自定义 Databricks 集群中缺少工作区目录
【发布时间】:2021-12-16 05:52:07
【问题描述】:

我最近开始使用 Azure Databricks 开发一些机器学习管道。为此,我需要能够为可以安装所有依赖项的集群创建和使用自定义 docker 映像。

我尝试遵循提供的官方文档here in this page! 并查看了官方示例dockerfiles Here in the official git repo。到目前为止,我已经能够按照示例使用他们提供的 miniconda 集群的 this example 创建图像。

当我使用此自定义 docker 映像创建集群并在 databricks 上启动它时,一切似乎都很好,我的依赖项已安装,如果我在工作区创建笔记本并将其附加到集群,我可以正常使用集群。但是,如果我尝试从存储库中设置的笔记本执行相同操作,则会收到以下错误:

FileNotFoundError: [Errno 2] No such file or directory: '/Workspace/Repos/[my-id]/[my-repo-name]'

事实上,当我检查集群中可用的目录时,我没有看到任何 Workspace/。值得一提的是,如果我在不使用任何自定义 docker 映像的情况下从 UI 创建一个普通集群,则没有问题,因为我可以在集群中找到复制的工作区,并且可以从 repo 中的笔记本中使用它。

我不确定我做错了什么?还是我错过了一个步骤? 我不知道使用集群的自定义映像与使用提供的复制集群中的工作区的映像有什么不同?想问这个问题是否有人有答案。

我为集群创建的图像是这样的:

    FROM ubuntu:18.04 as builder

RUN apt-get update && apt-get install --yes \
    wget \
    libdigest-sha-perl \
    bzip2

RUN wget -q https://repo.continuum.io/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh -O miniconda.sh \
    # Conda must be installed at /databricks/conda
    && /bin/bash miniconda.sh -b -p /databricks/conda \
    && rm miniconda.sh

FROM databricksruntime/minimal:9.x

COPY --from=builder /databricks/conda /databricks/conda

COPY environment.yml /databricks/.conda-env-def/env.yml

RUN /databricks/conda/bin/conda env create --file /databricks/.conda-env-def/env.yml \
    # Source conda.sh for all login shells.
    && ln -s /databricks/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh

RUN /databricks/conda/bin/conda config --system --set channel_priority strict \
    && /databricks/conda/bin/conda config --system --set always_yes True

ENV DEFAULT_DATABRICKS_ROOT_CONDA_ENV=[my_conda_env_name]
ENV DATABRICKS_ROOT_CONDA_ENV=[my_conda_env_name]
ENV PYSPARK_PYTHON=/databricks/conda/bin/conda

ENV USER root

【问题讨论】:

    标签: docker cluster-computing databricks azure-databricks workspace


    【解决方案1】:

    /Workspace 路径是一种特殊的挂载点,它将存储在控制平面(Databricks 环境)中的工作区对象映射到在您的环境(数据平面)内运行的机器上的真实文件。要拥有这个挂载点,您需要一个默认在 Databricks 运行时中提供的特殊脚本,但您的设置中缺少它。

    我建议向 Microsoft 支持开一张票,以帮助获取您需要安装在 Docker 容器中的此脚本(Azure Databricks 是 Microsoft 产品,因此所有支持案例都需要通过它们。另一种可能性 -联系您的管理员,也许他们与 Databricks 代表有直接联系)。

    但主要问题 - 你真的需要使用自定义 Docker 容器吗?在大多数情况下,使用cluster init scripts 设置库就足够了,特别是如果您将所有必要的库存储为二进制包(因此您不需要编译它们)并放置在 DBFS 上,您可以从中直接安装而无需任何网络传输

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 2014-07-18
      • 2022-01-09
      • 2013-09-02
      相关资源
      最近更新 更多