Не найден подходящий драйвер для jdb c: hive2 - PullRequest
0 голосов
/ 31 марта 2020

Попытка подключения к улью с использованием JDB C.

URL: 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)

И я получаю сообщение об ошибке "Не найден подходящий драйвер для jdb c: hive2". Что я делаю не так?

Apache Улей (версия 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}]")
}

1 Ответ

0 голосов
/ 31 марта 2020

Попробуйте явно загрузить драйвер Hive, прежде чем открывать соединение. Похоже, ваша версия не совместима с JDBC4, т.е. не будет загружаться автоматически.

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