2017-10-17 64 views
0

您好我正在做一些钻探实验的原型,它适用于“嵌入”模式。 目前,我们使用drill-jdbc-all maven的依赖,并用JDBC:用java API启动apache钻取进程?

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

我不知道是否有一种方法来启动一个实例演练使用直接的Java API,而不需要从控制台启动呢? 我尝试过使用jdbc:drill:zk=local连接网址,但无法找到一种方法与zookeeper启动本地节点。我在github上搜索过,但没有任何运气。

预先感谢任何建议

+0

您是否正在寻找通过Zookeeper quorum进行jdbc连接或使用Java启动实际drillbit进程(org.apache.drill.exec.server.Drillbit)?不确定是否有api通过java api启动钻头进程。一种方法是使用像JSch这样的远程ssh执行库调用带有必要参数的drillbit.sh脚本。 – InfamousCoconut

+0

目前我正在通过命令行启动嵌入式钻取,然后通过JDBC连接我的Java(实际上是Scala)程序,并且它可以工作。 据我所知,命令行是sqline的一个版本,那么我想它初始化一个钻头实例,然后使用它,它应该是Java的一种方式,我想。 这个想法是尝试使用一个嵌入式库来避免外部服务,所以我现在想避免zookeeper,但是如果有一种方法可以启动一个嵌入式动物园管理员,它应该对我也有好处。 –

回答

1

如果你想在一个节点上运行钻完全编程,你可以看看钻单元测试的例子。具体而言,单元测试使用ClusterFixture类以编程方式运行Drill。有关如何使用ClusterFixture启动演练的示例,请参见第五测试ExampleTest注意所有这些代码都在Drill项目的测试部分,因此您将不得不复制此代码(以及它在测试包中依赖的所有其他类)以在您的项目中使用它。如果您对此感兴趣,请将您的想法发布到Drill邮件列表中。关于注册Drill邮件列表的信息是here

+0

嗨,非常感谢您的建议! 我正在寻找一个测试案例,但从来没有找到具体的一个!我不得不暂停一下这个实验,但是我会尽快按照你的建议重启它! 再次感谢 –