2017-10-17 3 views
0

Salut, je fais des expérimentations avec Drill pour un prototype, et cela fonctionne bien avec le mode "embedded". À l'heure actuelle, nous utilisons la dépendance Maven pour drill-jdbc-all et JDBC avec:Démarrer le processus d'exploration apache avec Java API?

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

Je me demande s'il y a un moyen de démarrer une instance de forage directement en utilisant l'API java, sans qu'il soit nécessaire de le lancer à partir de la console? J'ai également essayé d'utiliser l'URL de connexion jdbc:drill:zk=local, mais je n'arrive pas à trouver un moyen de démarrer un noeud local avec zookeeper. J'ai cherché sur le github, mais sans aucune chance.

Merci à l'avance pour toute suggestion

+0

Vous recherchez une connexion jdbc via le quorum Zookeeper ou le démarrage d'un processus de drillbit réel (org.apache.drill.exec.server.Drillbit) en utilisant Java? Je ne sais pas s'il y a une API pour commencer le processus drillbit via java api. Une façon de faire est d'invoquer le script drillbit.sh avec les arguments nécessaires en utilisant des bibliothèques d'exécution ssh distantes comme JSch. – InfamousCoconut

+0

Pour le moment, je lance l'instruction intégrée via la ligne de commande, puis je me connecte via JDBC par mon programme Java (en fait Scala), et cela fonctionne. Pour autant que je sache que la ligne de commande est une version de sqline, alors je suppose qu'elle initialise une instance de drillbit, puis travaille avec elle, cela devrait être un moyen de le faire par Java, je suppose. L'idée est d'essayer d'utiliser une bibliothèque intégrée en évitant les services externes, donc j'essaye d'éviter zookeeper pour le moment, mais s'il y a un moyen par exemple de lancer un zookeeper intégré cela devrait être bon pour moi aussi. –

Répondre

1

Si vous voulez exécuter Drill sur un seul nœud que vous pouvez complètement regarder les programme des tests unitaires de forage pour des exemples. Plus précisément, les tests unitaires utilisent la classe ClusterFixture pour exécuter Drill par programmation. Pour un exemple d'utilisation de ClusterFixture pour lancer l'exercice, voir fifthTest dans ExampleTest. note tout ce code est dans la partie test du projet Drill, vous devrez donc copier ce code (et toutes les autres classes dont il dépend dans les packages de test) pour l'utiliser dans votre projet. Si vous êtes intéressé par cette exposition en tant que bibliothèque, veuillez poster vos pensées sur la liste de diffusion de Drill. Informations sur l'inscription à la liste de diffusion Drill est here.

+0

salut merci beaucoup pour les suggestions! Je cherchais un cas de test mais je ne trouve jamais le cas spécifique! J'ai dû suspendre cette expérimentation pendant un moment, mais je la relancerai dès que possible comme vous le suggérez! merci encore –