【问题标题】:Apache spark JDBC connection read write driver missingApache spark JDBC连接读写驱动程序丢失
【发布时间】:2016-06-10 06:09:30
【问题描述】:

您好,关于这个话题已经有很多问题了, 解决方案总是:

  • 通过 sbt-assembly 包含驱动程序
  • 使用 spark-submit 的选项 --packages 动态加载它们

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

【问题讨论】:

    标签: jdbc apache-spark apache-spark-sql


    【解决方案1】:

    这里是修复: Apache Spark : JDBC connection not working 添加prop.put("driver", "org.postgresql.Driver") 工作正常。

    奇怪的是,连接似乎不稳定,例如使用 hive-context 它只能工作 2 次中的 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 参数指向应提供给作业工人的额外 jar。然而这不适用于这种方法,因此我们必须在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
      

      【讨论】:

        猜你喜欢
        • 2012-11-15
        • 2013-11-11
        • 1970-01-01
        • 2017-04-22
        • 2019-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多