[ https://issues.apache.org/jira/browse/DRILL-8427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James Turton closed DRILL-8427. ------------------------------- Resolution: Information Provided Hi, you'll need to ensure that your Kubernetes manifests result in the assignment of hostnames to the Drillbit pods that are also resolvable via CoreDNS. There are a couple of ways to achieve this but I'd probably suggest following [these Helm charts|https://github.com/Agirish/drill-helm-charts] which use StatefulSets. This isn't a Drill bug so I'll close this issue and invite you chat more with the community in the mailing lists or Slack workspace. > Apache drill connectivity with zookeeper on Kubernetes cluster with JDBC data > source with Kubernetes or docker > -------------------------------------------------------------------------------------------------------------- > > Key: DRILL-8427 > URL: https://issues.apache.org/jira/browse/DRILL-8427 > Project: Apache Drill > Issue Type: Bug > Components: Client - JDBC > Affects Versions: 1.17.0 > Reporter: Nitul > Assignee: James Turton > Priority: Trivial > > Setup: > Java application can use specified JDBC driver to connect to drill via > zookeeper. https://drill.apache.org/docs/using-the-jdbc-driver/ > E.g. jdbc:drill:zk=10.10.100.56:2181/drill/drillbits1;schema=hive > Using this zookeeper provides a host name of the drill which is available and > ready to serve the query. > Java app will connect to this drill host and gets the connection to execute > the query. > In case of Kubernetes drill pod is running and registered to zookeeper with > some dynamic pod name. Something like apachedrill-cb97cfc7c-mfkhr. > Now, zookeeper provides apache drill's hostname as above and java app is > trying to connect to this pod, but this pod host name is resolved and it > failed. > {code:java} > java.sql.SQLNonTransientConnectionException: Failure in connecting to Drill: > oadd.org.apache.drill.exec.rpc.RpcException: CONNECTION : > java.net.UnknownHostException: apachedrill-cb97cfc7c-mfkhr > \tat > org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnectionImpl.java:164) > \tat > org.apache.drill.jdbc.impl.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:67) > \tat > org.apache.drill.jdbc.impl.DrillFactory.newConnection(DrillFactory.java:67) > \tat > oadd.org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:138) > \tat org.apache.drill.jdbc.Driver.connect(Driver.java:75) > \tat > com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) > \tat com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) > \tat com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) > \tat com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) > \tat com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) > \tat com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) > \tat > com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) > {code} > The solution can be exposing the apache drill pod host name to kubernetes > cluster. But is there anything we are missing or improvement needed, as a > part of zookeeper and apache drill configuration setup. -- This message was sent by Atlassian Jira (v8.20.10#820010)