Apache Drill - Verbindung zum Bohren im Embedded-Modus [java]
Ich eine Verbindung herstellen möchten, Bohren Sie von der Java-app, und so weit ich habe versucht, JDBC, es zu tun, und ich bin mit Beispiel aus https://github.com/vicenteg/DrillJDBCExample, aber...
wenn ich DB_URL statische variable zu "jdbc:drill:zk=local" und starten der app bekomme ich exception:
java.sql.SQLNonTransientConnectionException: Ausführen von Drill im embedded-Modus verwenden des Drill ' s jdbc-alle JDBC-Treiber-Jar-Datei alleine wird nicht unterstützt.
und so weit ich habe nicht gefunden Abhilfe. Irgendeine Idee, wie die Verbindung zum Bohren im embedded-Modus? Ich möchte nicht bis verteilten Modus so weit.
Gibt es wirklich nicht viel über es auf dem Netz.
Jede mögliche Hilfe würde geschätzt!
- Haben Sie versucht, mit diesem JDBC-URL?
jdbc:drill:drillbit=<drillbit-hostname>:31010
- im mit embedded-Modus, so dass ich nicht starten drillbit soweit ich weiß
- Wenn Sie mit embedded-Modus, beginnen Sie, ein drillbit, es funktioniert einfach so, ohne dass eine zookeeper-Instanz.
- dieser Fehler wird angezeigt, zum ändern JDBC-URL: Keine passenden Treiber gefunden für dbc:drill:drillbit=localhost:31010
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie eine Verbindung zu einem lokalen embedded-Instanz(ohne Tierpfleger), die Sie verwenden sollten, drillbit host, der direkt wie:
zB:
jdbc:drill:drillbit=localhost
TLDR:
jdbc:drill:drillbit=localhost:31010
Ersten Versuch mit SQuirreL SQL client.
Ich mache das mit einer vm mit linux und apache, wenn das alles auf einem host Sie können Sie zu ersetzen mit "localhost".
ersten start des drill-embedded auf Ihre vm-oder host-eg:
/opt/apache-drill-1.1.0/bin/drill-embedded
beginnen sich die embedded-shell. überprüfen der port ist offen - es sieht aus, um einen anderen Standard als Tierpfleger etc:
sroot@localhost:/opt/apache-drill-1.1.0/bin [1089] netstat -anp | grep-31010
tcp 0 0 ::ffff:0.0.0.0:31010 :::* LISTEN 12934/java
sollten Sie in der Lage sein, um telnet localhost 31010 zu diesem port.
haben Sie, um den setup-jar-Treiber wie hier beschrieben :
https://drill.apache.org/docs/using-jdbc-with-squirrel-on-windows/
stellen Sie sicher, dass die jar mit dem Treiber ausführbar ist.
aber ändern Sie den Wert mit den unten seinen verschiedenen ohne Tierpfleger, z.B. in Eichhörnchen sollte so Aussehen (Dank der anderen Antworten oben zu
jdbc:drill:drillbit=localhost:31010
können Sie ersetzen Sie localhost durch die ip oben - dann testen Sie die Verbindung.
das Glas das ich verwende, ist die drill-jdbc-all-1.1.0.jar und der Klassenname ist org.apache.drill.jdbc.Treiber
Beispiel Eichhörnchen Treiber-Konfiguration
Ich glaube nicht, dass man r mit dem richtigen Glas. Es scheint, Sie sind mit jdbc-alle-jar. Es gibt zwei Gläser. Sie müssen fügen Sie die anderen jar zu machen, damit es funktioniert. Hinzugefügt haben die maven-pom. dies sollte erhalten Sie gehen
java.lang.ClassNotFoundException: org.apache.drill.exec
für jetzt. Aber es ist etwas neues!müssen Sie die folgende Abhängigkeit in Ihrem java-Projekt (ich nehme an, maven basiert)
Beispiel-code (Angenommen, Sie möchten, führen Sie drill-Vorgänge im embedded-Modus):
Wenn Sie bereits begonnen Bohrer (assumning drill läuft auf der lokalen Maschine). Dann sollten Sie Verbindung ändern:
Check-Beispielprojekt: https://github.com/devender-yadav/DrillJDBC