自定义Databricks集群找不到Workspace目录问题咨询
问题根因
你遇到的/Workspace目录不存在的问题由两个核心原因导致:
- 你使用的
databricksruntime/minimal:9.x是最简基础镜像,默认未预装Workspace FUSE挂载所需的系统依赖包和配套服务配置 - 自定义容器集群默认不会自动开启Workspace文件系统挂载权限,需要额外配置集群环境变量启用该功能
修复步骤
1. 修改Dockerfile补充依赖与配置
你需要在现有Dockerfile基础上补充fuse相关依赖,同时修正错误的PYSPARK_PYTHON配置(当前配置指向的是conda二进制文件路径,应该指向你创建的conda环境的python解释器路径),修改后的Dockerfile示例如下:
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 \ && /bin/bash miniconda.sh -b -p /databricks/conda \ && rm miniconda.sh FROM databricksruntime/minimal:9.x # 新增:安装Workspace FUSE挂载所需依赖 RUN apt-get update && apt-get install --yes \ fuse \ libfuse2 \ && rm -rf /var/lib/apt/lists/* 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 \ && 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] # 修正:PYSPARK_PYTHON指向你创建的conda环境的python路径 ENV PYSPARK_PYTHON=/databricks/conda/envs/[my_conda_env_name]/bin/python # 新增:启用Workspace FUSE挂载的环境变量 ENV DATABRICKS_ENABLE_WORKSPACE_FUSE=1 ENV DATABRICKS_MOUNT_WORKSPACE=1 ENV USER root
2. 补充集群高级配置
在Databricks集群创建页面的「高级选项」-「Spark配置」中添加如下参数,开启Workspace文件系统支持:
spark.databricks.workspace.fuse.enabled true spark.databricks.workspace.fuse.mount.enabled true
3. 功能验证
重新构建镜像推送至容器registry后,用新镜像启动集群,待集群运行后执行%sh ls /Workspace即可看到对应的工作区目录,Repos中的Notebook也可以正常运行。
自定义镜像与默认集群的挂载逻辑差异
- 官方标准集群预装了所有Workspace FUSE所需的组件,默认开启挂载配置
- 自定义容器集群为了保持镜像的轻量化和灵活性,默认关闭了Workspace挂载能力,需要用户主动在镜像和集群配置中开启对应功能
内容的提问来源于stack exchange,提问作者Hirad Gorgoroth
相关产品推荐
相关产品推荐

