Azure Databricks小集群加载Python库过慢,求优化方案
加速Azure Databricks集群库加载的方法
针对你遇到的每次集群启动都重新安装库导致耗时过长的问题,以下是几个实用的优化方案:
使用自定义集群镜像
这是最有效的方案,直接把所有依赖预安装到镜像中,集群启动时无需重复安装:- 启动一个临时集群,通过库管理或
%pip install安装好所有需要的12个库 - 在Databricks控制台的“集群”页面,找到这个临时集群,点击“创建镜像”,填写镜像名称和描述
- 后续创建新集群时,选择这个自定义镜像作为基础镜像,启动时会直接加载已配置好的环境
- 启动一个临时集群,通过库管理或
通过Databricks库管理附加库到集群
避免在Notebook中每次执行%pip install,改为通过工作区的库管理功能永久安装:- 进入Databricks工作区的“库”页面,点击“创建”
- 选择“上传Python Egg或PyPI”,上传你的
requirements.txt文件,或者逐个指定库和版本 - 将创建好的库附加到目标集群,集群启动时会自动加载这些已安装的依赖
使用集群初始化脚本+本地缓存依赖
如果暂时无法创建自定义镜像,可以将依赖包缓存到DBFS,减少下载时间:- 提前将所有需要的库的wheel包下载到本地,上传到DBFS的某个目录(比如
dbfs:/libraries/cache/) - 创建一个初始化脚本
install_libraries.sh,内容为:#!/bin/bash pip install /dbfs/libraries/cache/altair-5.1.2-py3-none-any.whl \ /dbfs/libraries/cache/azure.storage.blob-12.17.0-py3-none-any.whl \ /dbfs/libraries/cache/gensim-4.3.0-cp310-cp310-linux_x86_64.whl - 将脚本上传到DBFS,在集群配置的“初始化脚本”中添加该脚本路径,集群启动时会从本地缓存安装库,避免重复从PyPI下载
- 提前将所有需要的库的wheel包下载到本地,上传到DBFS的某个目录(比如
优化集群资源配置(临时方案)
若集群规模过小(比如单节点、低配置实例),可能因资源不足拖慢安装速度。可以临时升级集群实例规格(比如增加CPU和内存)完成库安装或创建镜像,之后再换回原小规格集群。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

