【发布时间】: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