2017-10-17 3 views
0

Hallo ich mache einige Experimente mit Drill für einen Prototyp, und es funktioniert ok mit "eingebetteten" Modus. Im Moment verwenden wir die Maven-Abhängigkeit für drill-jdbc-all und JDBC mit:Start Apache Drill-Prozess mit Java-API?

Class.forName("org.apache.drill.jdbc.Driver") 
val conn = DriverManager.getConnection("jdbc:drill:drillbit=localhost:31010") 
[...] 

Ich frage mich, ob es einen Weg gibt, einen Bohrer Beispiel direkt mit Java API, ohne die Notwendigkeit der Einführung es von der Konsole zu starten? Ich habe versucht, mit der jdbc:drill:zk=local Verbindungs-URL auch, aber kann keinen Weg finden, einen lokalen Knoten mit Tierpfleger zu starten. Ich habe auf dem Github gesucht, aber ohne Glück.

Vielen Dank im Voraus für jede Anregung

+0

Suchen Sie nach JDBC-Verbindung über Zookeeper Quorum oder starten tatsächlichen Bohrloch-Prozess (org.apache.drill.exec.server.Drillbit) mit Java? Ich bin mir nicht sicher, ob es einen API gibt, um den Drillbit-Prozess über Java API zu starten. Eine Möglichkeit besteht darin, das Skript drillbit.sh mit den notwendigen Argumenten mithilfe von Remote-SSH-Ausführungsbibliotheken wie JSch aufzurufen. – InfamousCoconut

+0

Im Moment starte ich den eingebetteten Drill über die Kommandozeile, dann verbinde ich mich über JDBC mit meinem Java (eigentlich Scala) Programm, und es funktioniert. Soweit ich weiß, die Kommandozeile ist eine Version von sqline, dann nehme ich an, dass es eine Drillbit-Instanz initialisiert, dann arbeite ich damit, es sollte eine Möglichkeit sein, dies durch Java zu tun, nehme ich an. Die Idee ist, eine eingebettete Bibliothek zu verwenden, die externe Dienste vermeidet, also versuche ich im Moment Tierpfleger zu vermeiden, aber wenn es einen Weg gibt, einen eingebetteten Tierpfleger zu läuten, sollte es auch für mich gut sein. –

Antwort

1

Wenn Sie Drill auf einem einzelnen Knoten vollständig programmatisch können Sie Beispiele an den Drill Unit-Tests aussehen ausgeführt werden sollen. Insbesondere verwenden die Komponententests die Klasse ClusterFixture, um Drill programmatisch auszuführen. Ein Beispiel für die Verwendung der ClusterFixture zum Starten eines Bohrers finden Sie unter fifthTest in ExampleTest. Hinweis All dieser Code befindet sich im Testteil des Drill-Projekts. Daher müssen Sie diesen Code (und alle anderen Klassen, auf die er in den Testpaketen angewiesen ist) kopieren, um ihn in Ihrem Projekt zu verwenden. Wenn Sie daran interessiert sind, diese Bibliothek zu veröffentlichen, schreiben Sie Ihre Gedanken bitte an die Drill-Mailingliste. Informationen zur Anmeldung für die Drill-Mailingliste sind here.

+0

Hallo vielen Dank für die Anregungen! Ich war auf der Suche nach einem Testfall, aber nie den spezifischen! Ich musste dieses Experiment für eine Weile pausieren, aber ich werde es so schnell wie möglich neu starten, wie Sie es vorschlagen! danke nochmal –