You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks Runtime 11.3搭配MLflow 2.1.8时出现创建临时目录‘permission denied’权限错误

Databricks Runtime 11.3搭配MLflow 2.1.8时出现创建临时目录‘permission denied’权限错误

我之前在DBR 11.3上用MLflow 2.1.8的时候也踩过完全一样的坑!这个问题的核心是DBR 11.3对本地/tmp目录做了严格的权限限制,普通用户根本写不了,而你尝试的MLFLOW_DFS_TMP环境变量在这个组合下确实没用——因为这个变量是MLflow后续版本配合DBR 13+才新增的适配配置,2.1.8还不支持它。

给你几个亲测有效的解决办法:

  • 全局指定MLflow临时目录到DBFS可写路径
    DBFS的/tmp目录是每个用户都有读写权限的,你可以把MLflow的临时目录指向这里的自定义子路径。有两种设置方式:

    1. 用Notebook魔法命令在开头设置:
      %env MLFLOW_TEMP_DIR=/dbfs/tmp/你的用户名/mlflow-temp
      
      (记得把「你的用户名」换成你实际的Databricks用户名)
    2. 用Python代码动态设置(适合在脚本中使用):
      import os
      from databricks import dbutils
      
      # 定义临时目录的DBFS路径
      temp_dir = "/dbfs/tmp/你的用户名/mlflow-temp"
      # 设置环境变量
      os.environ["MLFLOW_TEMP_DIR"] = temp_dir
      # 确保目录存在,不存在就创建
      dbutils.fs.mkdirs(temp_dir.replace("/dbfs", ""))
      

    这样MLflow所有需要写临时文件的操作都会自动用这个路径,不会再碰本地/tmp了。

  • 针对性设置Artifact存储路径
    如果只是在日志记录模型或文件时出错,也可以在调用MLflow的日志方法时直接指定合法的DBFS路径,比如:

    mlflow.log_artifact("训练结果.csv", artifact_path="/dbfs/tmp/你的模型存储路径")
    

    不过这种方式是局部生效,不如全局设置临时目录省心。

  • 验证权限和路径
    设置完之后,可以先手动测试一下路径的可写性:

    with open("/dbfs/tmp/你的用户名/mlflow-temp/test.txt", "w") as f:
        f.write("test")
    

    如果能成功写入,说明路径和权限都没问题,MLflow也能正常使用这个目录。

备注:内容来源于stack exchange,提问作者Gordon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 07:03:01