hadoop - 找不到适用于jdbc:hive2的驱动程序

标签 hadoop jdbc hive

尝试使用JDBC连接到配置单元。

网址:jdbc:hive2://...
驱动程序:org.apache.hive.jdbc.HiveDriver
我在类路径上:

  • /usr/hdp/current/hive-client/lib/hive-jdbc.jar(3.1.0)
  • /usr/hdp/current/hive-client/lib/hive-common.jar(3.1.0)
  • /usr/hdp/current/hive-client/lib/hive-service.jar(3.1.0)
  • /usr/hdp/current/hadoop-client/hadoop-common.jar(3.1.1)
  • /usr/hdp/current/hive-client/lib/hive-service.jar(3.1.0)
  • /usr/hdp/current/hive-client/lib/libthrift-0.9.3-1.jar
  • /usr/hdp/current/hive-client/lib/libfb303-0.9.3.jar
  • /usr/hdp/current/hive-client/lib/hive-exec.jar(3.1.0)
  • /usr/hdp/current/hive-client/lib/hive-jdbc-handler.jar(3.1.0)

  • 我收到错误消息“找不到适用于jdbc:hive2的驱动程序”。我究竟做错了什么?

    Apache Hive(版本3.1.0.3.1.4.0-315)
      def configure(hiveConfig: HiveSettings): Either[String, Unit] =
    for {
      _ <- Either
        .catchNonFatal(Class.forName("org.apache.hive.jdbc.HiveDriver"))
        .leftMap(_.getMessage)
      _ <- Either.right(ConnectionPool.singleton(hiveConfig.url, null, null))
    } yield {
      Logger.debug(s"Hive URL: [${hiveConfig.url}]")
    }
    

    最佳答案

    在打开连接之前,尝试显式加载Hive驱动程序。您的版本似乎不兼容JDBC4,即不会自动加载。

    try {
          Class.forName("org.apache.hive.jdbc.HiveDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    

    关于hadoop - 找不到适用于jdbc:hive2的驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60949754/

    相关文章:

    hadoop - 如何将Hadoop文件系统与OpenCL/GPU代码合并

    mysql - Hive 使用子查询填充表

    java - Gradle buildscript 找不到 Postgresql JDBC 驱动程序

    hadoop - 如何将多个表的结果写入配置单元中的单个表?

    sql - 从 Hive 数组中选择特定值

    python - Hbase Shell收到此错误:fstat未实现,不受支持或无法加载 native 支持

    hadoop - 如何标记来自不同目录的特定输入文件

    postgresql - 无法连接到 PostgreSQL

    java - 如何将 MySQL 数据库中的 id 解析为变量

    hadoop - 无法通过 JDBC 更新配置单元表