Joash
Joash

Reputation: 13

Apache Drill - Unable to connect to zk client

I am using Drill 1.13. When I start the drill instance using sqlline.bat -u "jdbc:drill:zk=local", I am able to get to the console and query the DB. However when I try accessing the drill DB via the application: using the jdbc driver org.apache.drill.jdbc.Driver - and connection string "jdbc:drill:zk=local".

I get an error:

Caused by: java.sql.SQLException: Failure in connecting to Drill: oadd.org.apache.drill.exec.rpc.RpcException: Failure setting up ZK for client.
    at org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnectionImpl.java:166) [drill-jdbc-all-1.10.0.jar:1.10.0]
    at org.apache.drill.jdbc.impl.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:72) [drill-jdbc-all-1.10.0.jar:1.10.0]
    at org.apache.drill.jdbc.impl.DrillFactory.newConnection(DrillFactory.java:69) [drill-jdbc-all-1.10.0.jar:1.10.0]
    at oadd.org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:143) [drill-jdbc-all-1.10.0.jar:1.10.0]
    at org.apache.drill.jdbc.Driver.connect(Driver.java:72) [drill-jdbc-all-1.10.0.jar:1.10.0]
    at java.sql.DriverManager.getConnection(DriverManager.java:664) [rt.jar:1.8.0_131]
    at java.sql.DriverManager.getConnection(DriverManager.java:247) [rt.jar:1.8.0_131]
    at org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS.getPooledConnection(DriverAdapterCPDS.java:179) [commons-dbcp2.jar:2.2.0]
    at org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS.getPooledConnection(DriverAdapterCPDS.java:157) [commons-dbcp2.jar:2.2.0]
    at org.apache.commons.dbcp2.datasources.InstanceKeyDataSource.testCPDS(InstanceKeyDataSource.java:1018) [commons-dbcp2.jar:2.2.0]
    at org.apache.commons.dbcp2.datasources.SharedPoolDataSource.registerPool(SharedPoolDataSource.java:167) [commons-dbcp2.jar:2.2.0]
    at org.apache.commons.dbcp2.datasources.SharedPoolDataSource.getPooledConnectionAndInfo(SharedPoolDataSource.java:127) [commons-dbcp2.jar:2.2.0]
    at org.apache.commons.dbcp2.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:884) [commons-dbcp2.jar:2.2.0]
    at org.apache.commons.dbcp2.datasources.InstanceKeyDataSource.getConnection(InstanceKeyDataSource.java:858) [commons-dbcp2.jar:2.2.0]
    at com.vermilionsoftware.vrs.common.util.DBPoolManager.getConnectionWithoutThreadTimeout(DBPoolManager.java:254) [vrsEJBClient.jar:]
    ... 156 more
Caused by: oadd.org.apache.drill.exec.rpc.RpcException: Failure setting up ZK for client.
    at oadd.org.apache.drill.exec.client.DrillClient.connect(DrillClient.java:329) [drill-jdbc-all-1.10.0.jar:1.10.0]
    at org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnectionImpl.java:157) [drill-jdbc-all-1.10.0.jar:1.10.0]
    ... 170 more
Caused by: java.io.IOException: Failure to connect to the zookeeper cluster service within the allotted time of 10000 milliseconds.
    at oadd.org.apache.drill.exec.coord.zk.ZKClusterCoordinator.start(ZKClusterCoordinator.java:123) [drill-jdbc-all-1.10.0.jar:1.10.0]
    at oadd.org.apache.drill.exec.client.DrillClient.connect(DrillClient.java:327) [drill-jdbc-all-1.10.0.jar:1.10.0]
    ... 171 more

Any idea what is going on here, why would it connect successfully from the sqlline, but not the jdbc connection?

Upvotes: 1

Views: 1117

Answers (1)

Sorabh
Sorabh

Reputation: 71

Are you trying to use this application to connect Drillbit in distributed mode ? Can you please share some details on setup ? zk=local string will run Drill in embedded mode using sqlline. Also you can refer this link on how to connect using JDBC interface.

Upvotes: 1

Related Questions