2016-03-21 5 views
1

Ich verwende DbVisualizer 9.2 und Cloudera 5.4.1DbVisualizer und HIVE

ich einrichten möchte, dass meine db Visualizer, so dass ich Hive-Datenbank aus dem DbVisualizer Tool abfragen.

heruntergeladen ich den JDBC-Treiber für HIVE von hier

http://www.cloudera.com/downloads/connectors/hive/jdbc/2-5-16.html

ich alle JAR-Dateien in /Users/User1/.dbvis/jdbc

Aber jetzt extrahiert, wenn ich anfangen DbVisualizer, ich erhalte einen Fehler

Ignored as there is no matching Default Driver for "com.cloudera.hive.jdbc41.HS1Driver", "com.cloudera.hive.jdbc41.HS2Driver" 
    /Users/User1/.dbvis/jdbc 
    HiveJDBC41.jar 
    TCLIServiceClient.jar 
    hive_metastore.jar 
    hive_service.jar 
    libfb303-0.9.0.jar 
    libthrift-0.9.0.jar 
    log4j-1.2.14.jar 
    ql.jar 
    slf4j-api-1.5.11.jar 
    slf4j-log4j12-1.5.11.jar 
    zookeeper-3.4.6.jar 

Also meine Frage ist, hat jemand erfolgreich das DbVisualizer Tool konfiguriert cloudera hive verbinden Server?

+0

Ich habe es mit dem Cloudera * Impala * -Treiber gemacht, der genau die gleichen JAR-Abhängigkeiten hat, also sollte es genau so funktionieren. Sollte. Der Trick ist, DBVis erwartet wahrscheinlich, dass der ** Hive ** -Treiber der ** Apache Hive ** -Treiber ist, mit einem anderen Klassennamen und anderen JAR-Abhängigkeiten. Ich rate Ihnen zu * (a) * Bewegen Sie die Cloudera JARs in ein anderes Verzeichnis, außerhalb der Reichweite der Auto-Load-Treiber-für-Idioten-Feature, die - dauert-bei jedem-Start-ups; * (b) * setup ** manuell ** der Hive-Treiber unter [Tools] [Driver Manager] –

+0

Ich habe versucht, den Treiber manuell über "tools -> driver manager" einzurichten. Danach wähle ich Datenbankbasierte Verbindung und wähle meinen neuen Treiber und URL 'jdbc: hive2: // foo: 10000/bar'. Ich habe admin/admin als Benutzername Passwort gewählt. Ping war erfolgreich. aber wenn ich versuche, eine Verbindung herzustellen, heißt es: Beim Verbindungsaufbau ist ein Fehler aufgetreten: Der ausgewählte Treiber kann die angegebene Datenbank-URL nicht verarbeiten. Der häufigste Grund für diesen Fehler ist, dass die Datenbank-URL einen Syntaxfehler enthält, der verhindert, dass der Treiber den Fehler akzeptiert. Der Fehler tritt auch auf, wenn versucht wird, eine Verbindung zu einer Datenbank herzustellen. –

+0

Ich habe versucht, beide mit Impala und Hive-Treiber. –

Antwort

3

Nach mehreren Stunden der Fehlersuche. Ich war in der Lage, den Fehler zu beheben und erfolgreich Verbindung zu HIVE von DB Visualizer unter Verwendung des HIVE JDBC Treibers von Cloudera herzustellen.

Dies sind die Schritte, die ich

nahm
  1. Zuerst gehen Sie auf Extras -> Werkzeugeigenschaften -> Driver Finder Pfade.

Hier registrieren Sie ein neues leeres Verzeichnis. Dies ist der Ort, wo Sie alle Ihre Gläser herunterladen werden.

  1. Zuerst in diesem Verzeichnis extrahieren Sie alle JAR-Dateien, die mit dem Cloudera JDBC Hive-Treiber geliefert werden.

http://www.cloudera.com/downloads/connectors/hive/jdbc/2-5-4.html

  1. Nun gehen Sie auf Extras -> Treiber-Manager und wählen Sie Hive. Auf der Registerkarte "Benutzerdefiniert". Klicken Sie auf das "Ordnersymbol" auf der rechten Seite und wählen Sie alle gerade entpackten Jar-Dateien aus. (nicht nur der Ordner ... alle Gläser auswählen).

  2. Stellen Sie sicher, com.cloudera.hive.jdbc41.HS2Driver

  3. Jetzt Verbindung definieren, um Hive mit diesen Parametern wählen

url: jdbc: hive2: // foo: 10000/default Benutzer: admin Passwort: admin

  1. Jetzt, als ich versuchte zu verbinden, habe ich immer noch Fehler.

    „Typ: java.lang.reflect.UndeclaredThrowableException“

  2. Um das oben zu lösen, ich brauche Sie das Fehlerprotokoll zu sehen. (Dies war der wichtigste Schritt).

Tools -> Debug-Fenster -> Fehlerprotokoll

Hier sah ich, dass der geheimnisvolle "UndeclaredThrowableException" wird auftreten, weil eine Reihe von Klassendateien wie http utils, http Kern, hadoop Kern, hive Kern und Bienenstock-CLI-Jar-Dateien fehlten. Ich heruntergeladen diese Gläser von Maven zentralen

  • hadoop-Core-0.20.2.jar
  • hive-exec-2.0.0.jar
  • hive-Service-1.1.1.jar
  • Httpclient -4.5.2.jar
  • httpcore-4.4.4.jar

und wieder ging ich in Extras-> Driver -> Hive -> Benutzer definiert und klickte auf Ordner auf der rechten Seite und ausgewählt jeweils diese Gläser auch.

Jetzt, als ich DBVisualizer neu gestartet habe, stellte ich eine Verbindung zu Hive her und kann sie mit DBVisualizer abfragen.

+0

Duh. Diese Kombination von "hadoop-core" und "hive-blahblah" ist normalerweise erforderlich, um auf die Metastore API zuzugreifen. Sollte von 'hive_metastore.jar' abgedeckt worden sein. Und warum zum Teufel das "http" Zeug - es sei denn, Ihr HS2-Dienst verwendet HTTP-Protokoll anstelle der Standard (Binary Thrift)? –

+1

Übrigens ist es etwas peinlich, Komponenten von Hadoop 0.20, Hive 1.1 und Hive 2.0 zu mischen - wäre sicherer, die JARs von Ihrem eigentlichen Hadoop-Cluster zu erhalten (mit Hadoop 2.7 und Hive 1.2) –