2017-10-17 100 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

嗨,非常感謝您的建議! 我正在尋找一個測試案例,但從來沒有找到具體的一個!我不得不暫停一下這個實驗,但是我會盡快按照你的建議重啓它! 再次感謝 –