Connectez Ruche thorugh Java JDBC
Il est question ici se connecter à partir de java pour la Ruche mais le mien est différents
Ma ruche en cours d'exécution sur la machine1 et j'ai besoin de passer quelques requêtes à l'aide de Java server exécutée sur machine2. Ce que je comprends de la Ruche a une interface JDBC dans le but de recevoir des requêtes à distance. J'ai pris le code à partir d'ici - HiveServer2 Clients
J'ai installé les dépendances écrit dans l'article:-
- ruche-jdbc*.jar
- ruche-service*.jar
- libfb303-0.9.0.jar
- libthrift-0.9.0.jar
- log4j-1.2.16.jar
- slf4j-api-1.6.1.jar
- slf4j-log4j12-1.6.1.jar
- commons-logging-1.0.4.jar
Cependant, je dois java.lang.NoClassDefFoundError erreur lors de la compilation
D'Erreur Complet:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
at org.apache.hive.jdbc.HiveConnection.createBinaryTransport(HiveConnection.java:393)
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:187)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:163)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.bidstalk.tools.RawLogsQuerySystem.HiveJdbcClient.main(HiveJdbcClient.java:25)
Une autre question sur StackOverflow recommandé d'ajouter Hadoop API dépendances Maven - La Ruche D'Erreur
Je ne comprends pas pourquoi ai-je besoin d'hadoop API pour un client de se connecter avec la Ruche. Ne devrait pas le pilote JDBC être agnostique de la requête sous-jacente du système? J'ai juste besoin de passer à quelque requête SQL?
Edit:
Je suis à l'aide de Cloudera(5.3.1), je pense que j'ai besoin d'ajouter CDH dépendances. Cloudera instance est en cours d'exécution hadoop 2.5.0 et HiveServer2
Mais les serveurs sont des machines 1. Sur la machine, le code doit au moins de la compilation, et j'aurais des questions à l'exécution seulement!
OriginalL'auteur Mangat Rai Modi | 2015-02-27
Vous devez vous connecter pour publier un commentaire.
Dans le cas où si vous n'avez pas encore de résoudre ce problème, j'ai donné un rendez-vous.
Et j'ai besoin de la suite de dépendances pour compiler et exécuter :
La ruche documentation est probablement écrit par rapport à une ancienne version de la distribution.
Votre exception est en raison de l'absence
hadoop-common
pot, qui a laorg.apache.hadoop.conf.Configuration
.Espère que cette aide.
Mais c'est la solution à votre problème. Veuillez vous satisfaire. Vous avez été absent hadoop-common.jar
OriginalL'auteur Shyam
Obtenir la même erreur lorsque vous essayez d'utiliser la ruche-jdbc 1.2.1 contre ruche de 0,13.
En comparant à la longue liste d'autres réponses. Maintenant, nous utilisons ces deux:
Un autre côté remarque: vous pouvez obtenir " champ Obligatoire 'client_protocol' est pas défini!' lors de l'utilisation de la dernière jdbc contre une ancienne Ruche. Si oui, changer le jdbc version 1.1.0:
OriginalL'auteur Leon li
Pour répondre à ma propre question!
Avec certains de frapper et d'essai, j'ai ajouté à la suite de dépendances sur mon pom fichier et depuis, je suis en mesure d'exécuter du code sur les deux CHD 5.3.1 et 5.2.1 cluster.
Veuillez noter que certains de ces dépendances ne peuvent pas être tenus
OriginalL'auteur Mangat Rai Modi
Pour les autres, se promener sur ce qui est exactement nécessaire pour exécuter à distance une requête de la RUCHE à l'aide de java...
Code Java
Avec la pom fichier avec les seules dépendances nécessaires..
OriginalL'auteur Mez
Que j'ai rencontré le même problème avec CDH5.4.1 version. J'ai mis à jour mon POM fichier avec le code ci-dessous et il a travaillé pour moi.
Ma Version Hadoop est
Hadoop 2.6.0-cdh5.4.1
et la Ruche version estHive 1.1.0-cdh5.4.1
J'ai résolu avec cette POM mise à jour.
OriginalL'auteur Manindar
Semble que vous travaillez tous avec cloudera, j'ai trouvé que les pensions de titres à maven de l'air vieux, parce que si vous allez sur leur site, vous pouvez télécharger leur jdbc. https://www.cloudera.com/downloads/connectors/hive/jdbc/2-5-20.html
Le pilote semble à l'appui de plus de fonctionnalités que celle de la ruche. Je remarque qu'ils ont addBatch mis en œuvre. Je souhaite juste qu'ils avaient ces bibliothèques dans maven. Peut-être que quelqu'un peut trouver où obtenir de l'aide de maven.
OriginalL'auteur pitchblack408