1

在将 Databricks 集群设置为 Azure 发布管道的一部分时,我需要将 JAR 文件安装为库。到目前为止,我已经完成了以下 -

  • 使用 Azure CLI 任务创建集群定义
  • 使用 curl 命令将 JAR 文件从 Maven 存储库下载到管道代理文件夹中
  • 在管道代理上设置 Databricks CLI
  • 用于databricks fs cp将 JAR 文件从本地(管道代理)目录复制到 dbfs:/FileStore/jars 文件夹

我正在尝试创建一个集群范围的初始化脚本(bash)脚本,它将 -

  • 安装 pandas、azure-cosmos 和 python-magic 包
  • 将 JAR 文件(已在前面的步骤中复制到 dbfs:/FileStore/jars 位置)作为集群库文件安装

我的集群初始化脚本如下所示 -

#!/bin/bash
/databricks/python/bin/pip install pandas 2>/dev/null
/databricks/python/bin/pip install azure-cosmos 2>/dev/null
/databricks/python/bin/pip install python-magic 2>/dev/null

但我不知道——

  • 如果这会将包添加到集群中
  • 如何将现有的 JAR 文件作为库添加到集群中

我知道还有其他方法可以编辑集群库元数据,但据我所知,集群库的任何更改都需要集群处于 RUNNING 状态,这可能不是我们的情况。这就是为什么我想在我的集群定义中添加一个初始化脚本,以便在集群重新启动/运行时执行初始化脚本。

请帮忙。

谢谢。子哈希

4

1 回答 1

1

如果您只想将 jar 文件复制到集群节点中,只需将它们复制到/databricks/jars文件夹中,如下所示(作为 init 脚本的一部分):

cp `/dbfs/FileStore/jars/<file-name.jar> /databricks/jars/

或者

cp `/dbfs/FileStore/jars/*.jar /databricks/jars/

关于初始化脚本的其余部分 - 是的,它将根据需要在所有集群节点上安装软件包。只有两条评论:

  • 您可以使用一个命令安装多个包pip- 它应该比一个一个安装稍快:
#!/bin/bash
/databricks/python/bin/pip install pandas azure-cosmos python-magic
  • 的使用2>/dev/null可能会使初始化脚本的调试更加困难,例如,当您遇到网络连接问题或构建错误时。没有它,您将能够提取集群日志(如果它们已启用,它将包含初始化脚本的日志)
于 2021-09-17T06:20:57.123 回答