Apache Drill - 与嵌入式模式下钻取的连接[java]

sus*_*noo 5 java jdbc apache-drill

我想通过Java应用程序连接到Drill,到目前为止我尝试使用JDBC来执行此操作,并且我使用的是https://github.com/vicenteg/DrillJDBCExample中的示例,但是...当我更改DB_URL静态时变量为 "jdbc:drill:zk = local"并启动app我得到异常:

java.sql.SQLNonTransientConnectionException:不支持使用Drill的jdbc-all JDBC驱动程序Jar文件在嵌入模式下运行钻取.

到目前为止,我没有找到任何解决方法.知道如何在嵌入模式下连接Drill吗?到目前为止,我不想设置分布式模式.

网上真的没什么关系.

任何帮助,将不胜感激!

Sar*_*raj 8

如果要连接到本地嵌入式实例(没有Zookeeper),则应直接使用drillbit主机,如:

jdbc:drill:drillbit=<drillbit-host>:[port]
Run Code Online (Sandbox Code Playgroud)

例如: jdbc:drill:drillbit=localhost


tmx*_*tmx 6

TLDR: jdbc:drill:drillbit = localhost:31010

首先尝试使用SQuirreL SQL客户端.

我正在使用运行linux和apache的vm执行此操作,如果这一切都在一个主机上,则可以使用localhost替换.

首先在您的虚拟机或主机上嵌入钻孔,例如:

/opt/apache-drill-1.1.0/bin/drill-embedded

这将启动嵌入式shell.检查端口是否打开 - 它看起来与zookeeper等不同:

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

您应该能够将localhost 31010 telnet到此端口.

您必须按照此处的说明设置jar驱动程序:https: //drill.apache.org/docs/using-jdbc-with-squirrel-on-windows/

确保带有驱动程序的jar是可执行的.

但修改下面的字符串 - 没有动物园管理员的不同,例如松鼠应该看起来像这样(感谢上面的其他答案)

JDBC:钻头:钻头=本地主机:31010

你可以用上面的ip替换localhost - 然后测试连接.

我正在使用的jar是drill-jdbc-all-1.1.0.jar,类名是org.apache.drill.jdbc.Driver

示例松鼠驱动程序配置


小智 1

我认为你使用的罐子不正确。看来您正在使用jdbc-all-jar。有两个罐子。您需要添加其他 jar 才能使其工作。已经添加了maven pom。这应该可以让你继续

<dependency>
      <groupId>org.apache.drill.exec</groupId>
      <artifactId>drill-jdbc</artifactId>
      <version>1.1.0</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)