使用 JAR 文件作为 Databricks 集群库
Using JAR files as Databricks Cluster library
我需要安装一个 JAR 文件作为库,同时将 Databricks 集群设置为我的 Azure 发布管道的一部分。
截至目前,我已经完成了以下 -
- 使用 Azure CLI 任务创建集群定义
- 使用curl命令从Maven仓库下载JAR文件到
管道代理文件夹
- 在管道代理上设置 Databricks CLI
- 使用
databricks fs cp
从本地(管道)复制JAR文件
agent) 目录到 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 文件作为库添加到集群
我知道还有其他方法可以编辑集群库元数据,但据我所知,对集群库进行任何更改都需要集群处于 运行 状态,而我们的情况可能并非如此.这就是为什么我想在我的集群定义中添加一个初始化脚本,以便在集群 RESTARTED/RUNNING 时执行初始化脚本。
请帮忙。
谢谢。
子哈希
如果您只想将 jar 文件复制到集群节点中,只需将它们复制到 /databricks/jars
文件夹中,就像这样(作为您的初始化脚本的一部分):
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
可能会使初始化脚本的调试更加困难,例如,当您遇到网络连接问题或构建错误时。没有它,你将能够提取集群日志(如果它们被启用,它也会包含 init 脚本的日志)
我需要安装一个 JAR 文件作为库,同时将 Databricks 集群设置为我的 Azure 发布管道的一部分。 截至目前,我已经完成了以下 -
- 使用 Azure CLI 任务创建集群定义
- 使用curl命令从Maven仓库下载JAR文件到 管道代理文件夹
- 在管道代理上设置 Databricks CLI
- 使用
databricks fs cp
从本地(管道)复制JAR文件 agent) 目录到 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 文件作为库添加到集群
我知道还有其他方法可以编辑集群库元数据,但据我所知,对集群库进行任何更改都需要集群处于 运行 状态,而我们的情况可能并非如此.这就是为什么我想在我的集群定义中添加一个初始化脚本,以便在集群 RESTARTED/RUNNING 时执行初始化脚本。
请帮忙。
谢谢。 子哈希
如果您只想将 jar 文件复制到集群节点中,只需将它们复制到 /databricks/jars
文件夹中,就像这样(作为您的初始化脚本的一部分):
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
可能会使初始化脚本的调试更加困难,例如,当您遇到网络连接问题或构建错误时。没有它,你将能够提取集群日志(如果它们被启用,它也会包含 init 脚本的日志)