Apache Spark JDBC 连接读写驱动程序丢失



嗨,关于这个话题已经有很多问题了,解决方案始终是:

  • 通过SBT程序集包含驱动程序
  • 使用 Spark-submit 的选项 --packages即时加载它们

我在这里设置了一个最小的例子:https://github.com/geoHeil/sparkJDBCHowTo,尝试了两种方法,但没有一种方法对我有用。获取java.sql.SQLException: No suitable driver

这是修复:Apache Spark:JDBC连接不起作用添加prop.put("driver", "org.postgresql.Driver")工作正常。

奇怪的是,连接似乎不稳定,例如,在蜂巢上下文中,它只能工作 1 次中的 2 次。

这很简单。若要连接到外部数据库以将数据检索到 Spark 数据帧中,需要额外的jar文件。

例如,对于MySQL,JDBC驱动程序是必需的。下载驱动程序包,并在可从群集中的每个节点访问的路径中提取mysql-connector-java-x.yy.zz-bin.jar。最好是共享文件系统上的路径。例如,对于Pouta虚拟集群,这样的路径将在/shared_data下,这里我使用/shared_data/thirdparty_jars/

通过从终端直接提交 Spark 作业,可以指定–driver-class-path参数,指向应提供给具有作业的工作人员的额外罐子。但是,这不适用于此方法,因此我们必须在spark-defaults.conf文件中(通常在/opt/spark/conf目录中)为前端和工作节点配置这些路径。

放置取决于您使用的服务器的任何jar

spark.driver.extraClassPath /"your-path"/mysql-connector-java-5.1.35-bin.jar
spark.executor.extraClassPath /"your-path"/mysql-connector-java-5.1.35-bin.jar

相关内容

  • 没有找到相关文章

最新更新