Hive-Java JDBC проблемы с подключением - PullRequest
0 голосов
/ 13 июня 2018

Я делаю программу на Java, и мне нужно соединиться с базой данных в кусте.Я использую MySQL в качестве метастаза.Hadoop, mysql и hive работают без проблем.Я создал свою базу данных хранилища и таблицу в ней, а также вставил данные для консоли hirve.Проблема в том, что я собираюсь установить соединение через JDBC с этой базой данных через программу Java.Я искал интернет, и я также поместил все библиотеки, которые я указал.

Когда я выполняю эти строки, появляется исключение:

Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
Connection co = DriverManager.getConnection("jdbc:hive://localhost:9000/warehousedb", "", "");

java.sql.SQLException: org.apache.thrift.transport.TTransportException
at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:191)
at org.apache.hadoop.hive.jdbc.HiveStatement.execute(HiveStatement.java:127)
at org.apache.hadoop.hive.jdbc.HiveConnection.configureConnection(HiveConnection.java:126)
at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveConnection.java:121)
at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:104)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at connection.Conection.getHiveConnection(Conection.java:38)
at logic.Exc.main(Exc.java:19)

Если я пытаюсь использовать hiveserver2:

Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
Connection co = DriverManager.getConnection("jdbc:hive2://localhost:9000/warehousedb", "hive", "hive");

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
at org.apache.hive.jdbc.HiveConnection.createUnderlyingTransport(HiveConnection.java:432)
at org.apache.hive.jdbc.HiveConnection.createBinaryTransport(HiveConnection.java:452)
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:193)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:157)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at connection.Conection.getHiveConnection(Conection.java:38)
at logic.Exc.main(Exc.java:19)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 9 more

Как я могу установить соединение?

1 Ответ

0 голосов
/ 14 июня 2018

Сначала удостоверьтесь, какую банку (улей) вы хотите .. потому что она имеет разные версии. Старая банка версионов -

org.apache.hadoop.hive.jdbc.HiveDriver

, а самая новая банка - org.apache.hive.jdbc.HiveDriver
Порт hiveserver2.составляет 1000

например

 Class.forName(org.apache.hive.jdbc.HiveDriver);
    Connection conn = DriverManager.getConnection(jdbc:hive2://192.168.1.1:10000/default);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...