gpt4 book ai didi

python - 您可以在 Databricks 池节点上预安装库吗?

转载 作者:行者123 更新时间:2023-12-02 06:06:57 26 4
gpt4 key购买 nike

我们有许多 Python Databricks 作业,它们都使用相同的底层 Wheel 包来安装其依赖项。即使节点已在池中闲置,安装此 Wheel 软件包仍需要 90 秒。

其中一些作业运行时间非常长,因此我们希望使用作业计算机集群 for the lower cost in DBUs.

其中一些作业的运行时间要短得多(<10 秒),其中 90 秒的安装时间似乎更重要。我们一直在考虑使用热集群(通用计算)来完成这些较短的作业。如果可能的话,我们希望避免通用计算的额外成本。

阅读 Databricks 文档表明 Idle instances in the Pool are reserved for us but not costing us DBUs 。有没有办法让我们在空闲实例上预安装所需的库,以便当作业完成时我们能够立即开始处理它?<​​/p>

是否有替代方法可以满足类似的用例?

最佳答案

您无法将库直接安装到池中的节点中,因为实际代码是在与 Databricks Runtime 对应的 Docker 容器中执行的。有多种方法可以加快库的安装速度:

  • 创建您的own Docker image预安装了所有必需的库,并且 pre-load Databricks Runtime version和你的 Docker 镜像 - 这部分无法通过 UI 完成,因此你需要使用 REST API (参见preloaded_docker_images属性的描述),databrick-cli ,或Databricks Terraform provider 。自定义 Docker 镜像的主要缺点是某些功能无法开箱即用,例如 Repos 中的任意文件、Web 终端等(不记得完整列表)
  • 将所有必需的库及其依赖项放入 DBFS 并通过 cluster init script 安装它们。收集二进制依赖项,而不是仅包含源代码的包,这一点非常重要,因此在安装时不需要编译它们。这可以完成一次:
    • 对于 Python,这可以通过 pip download --prefer-binary lib1 lib2 ... 来完成
    • 对于 Java/Scala,您可以使用 mvn dependency:get -Dartifact=<maven_coordinates> ,这会将依赖项下载到 ~/.m2/repository文件夹,您可以从中将 jar 复制到 DBFS 并在 init 脚本中使用 cp /dbfs/.../jars/* /databricks/jars/命令
    • 对于 R,它稍微复杂一些,但也是可行的

关于python - 您可以在 Databricks 池节点上预安装库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70229777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com