在 spark 执行器上找不到 Apache Phoenix JDBC 驱动程序

Apache Phoenix JDBC driver not found on spark executors

我正在通过胖客户端连接到 apache phoenix,并且已经向 --files 提供了 phoenix-client.jar,但执行程序仍然无法找到驱动程序。

所以问题是如何在驱动程序和执行程序节点上自动启动负载驱动程序 class?

Spark 在添加到其 class 路径的所有 jar 中查找 java.sql.Driver 文件用户 META-INF 目录。此文件包含驱动程序 class 名称,spark 自行读取并加载它们。

在 phoenix 客户端 jar 中,META-INF 中的 java.sql.Driver 文件丢失了,所以我创建了内容 org.apache.phoenix.jdbc.PhoenixDriver

的文件 java.sql.Driver

并放置在 META-INF 目录下并重新创建 jar。

通过放置这个更新的 jar,spark 能够自行加载驱动程序。