La connexion à distance Mapr Ruche via JDBC

Cette question est similaire, mais pas identique, comme La ruche JDBC getConnection n'est pas de retour . Pourtant, c'est sur une connexion à distance. Aussi le metastore est présent dans l'annuaire dans lequel le hiveserver2 a commencé.

Nous avons une course de mapr cluster sur une machine distante. Je tiens à vous connecter à la Ruche sur ce cluster à l'aide de Java JDBC.

Donc nous avons commencé la ruche serveur:

/opt/mapr/ruche/ruche 0.11/bin/hiveserver2

La sortie du processus du serveur ne contiennent pas de messages d'erreur. Il écoute sur le port 10000 tel que rapporté par la commande netstat.

J'essaie de me connecter au serveur, comme décrit dans https://cwiki.apache.org/confluence/display/Hive/HiveClient, qui remplace localhost par le nom du serveur où le hiveserver2 est en cours d'exécution:

Connection con = 
  DriverManager.getConnection("jdbc:hive://myserver.example.com:10000/default", "", "");

Pourtant, le programme se bloque exactement à cette déclaration. Il ne semble pas pour obtenir une connexion.

J'ai peut-être besoin de fournir un nom d'utilisateur et le mot de passe?

Au début, j'avais utilisé le pilote org.apache.hadoop.de la ruche.jdbc.HiveDriver.

Pourtant il me semble que je devrais être à l'aide du pilote org.apache.de la ruche.jdbc.HiveDriver si le hive2 serveur est en cours d'exécution. Maintenant, je suis l'Exception suivante:

Exception in thread "main" java.sql.SQLException: Could not establish connection to jdbc:hive2://myserver.example.com:10000/default: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null)
at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:246)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:132)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at HiveJdbcClient.main(HiveJdbcClient.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: org.apache.thrift.TApplicationException: Required field 'client_protocol' is unset! Struct:TOpenSessionReq(client_protocol:null)
at org.apache.thrift.TApplicationException.read(TApplicationException.java:108)
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:71)
at org.apache.hive.service.cli.thrift.TCLIService$Client.recv_OpenSession(TCLIService.java:144)
at org.apache.hive.service.cli.thrift.TCLIService$Client.OpenSession(TCLIService.java:131)
at org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:237)
... 10 more
InformationsquelleAutor user152468 | 2013-12-05