如何使用 init 脚本以编程方式将 Maven 库安装到集群?
How do I programmatically install Maven libraries to a cluster using init scripts?
现在已经尝试了一段时间,我确信解决方案很简单,只是在努力寻找它。我很新,所以对我放轻松..!
需要使用预制初始化脚本执行此操作,然后在配置集群时在 UI 中选择。
我正在尝试将 com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.18
安装到 Azure Databricks 上的集群。按照文档示例(它正在安装 postgresql 驱动程序),他们使用以下命令生成一个初始化脚本:
dbutils.fs.put("/databricks/scripts/postgresql-install.sh","""
#!/bin/bash
wget --quiet -O /mnt/driver-daemon/jars/postgresql-42.2.2.jar https://repo1.maven.org/maven2/org/postgresql/postgresql/42.2.2/postgresql-42.2.2.jar""", True)```
我的问题是,这段代码的 /mnt/driver-daemon/jars/postgresql-42.2.2.jar
部分是什么?我需要做什么才能使这项工作适合我的情况?
非常感谢。
/mnt/driver-daemon/jars/postgresql-42.2.2.jar
这里是放置jar文件的输出路径。但这是没有意义的,因为这个 jar 不会被放入 CLASSPATH 中,也不会被 Spark 找到。需要将 Jar 放入 /databricks/jars/
目录,Spark 会自动在该目录中提取它们。
但是这种下载 jar 的方法仅适用于没有依赖项的 jar,而对于像 EventHubs 连接器这样的库,情况并非如此 - 如果没有下载依赖项,它们将不起作用。相反,最好使用 Cluster UI 或 Libraries API(或 Jobs API for jobs)——使用这些方法,所有依赖项也将被获取。
P.S。但实际上,与其使用 EventHubs 连接器,还不如使用 EventHubs 也支持的 Kafka 协议。有几个原因:
- 从性能的角度来看更好
- 从稳定性的角度来看更好
- Kafka 连接器包含在 DBR 中,因此您无需安装任何额外的东西
您可以在 EventHubs documentation.
中阅读如何使用 Spark + EventHubs + Kafka 连接器
现在已经尝试了一段时间,我确信解决方案很简单,只是在努力寻找它。我很新,所以对我放轻松..!
需要使用预制初始化脚本执行此操作,然后在配置集群时在 UI 中选择。
我正在尝试将 com.microsoft.azure:azure-eventhubs-spark_2.12:2.3.18
安装到 Azure Databricks 上的集群。按照文档示例(它正在安装 postgresql 驱动程序),他们使用以下命令生成一个初始化脚本:
dbutils.fs.put("/databricks/scripts/postgresql-install.sh","""
#!/bin/bash
wget --quiet -O /mnt/driver-daemon/jars/postgresql-42.2.2.jar https://repo1.maven.org/maven2/org/postgresql/postgresql/42.2.2/postgresql-42.2.2.jar""", True)```
我的问题是,这段代码的 /mnt/driver-daemon/jars/postgresql-42.2.2.jar
部分是什么?我需要做什么才能使这项工作适合我的情况?
非常感谢。
/mnt/driver-daemon/jars/postgresql-42.2.2.jar
这里是放置jar文件的输出路径。但这是没有意义的,因为这个 jar 不会被放入 CLASSPATH 中,也不会被 Spark 找到。需要将 Jar 放入 /databricks/jars/
目录,Spark 会自动在该目录中提取它们。
但是这种下载 jar 的方法仅适用于没有依赖项的 jar,而对于像 EventHubs 连接器这样的库,情况并非如此 - 如果没有下载依赖项,它们将不起作用。相反,最好使用 Cluster UI 或 Libraries API(或 Jobs API for jobs)——使用这些方法,所有依赖项也将被获取。
P.S。但实际上,与其使用 EventHubs 连接器,还不如使用 EventHubs 也支持的 Kafka 协议。有几个原因:
- 从性能的角度来看更好
- 从稳定性的角度来看更好
- Kafka 连接器包含在 DBR 中,因此您无需安装任何额外的东西
您可以在 EventHubs documentation.
中阅读如何使用 Spark + EventHubs + Kafka 连接器