Our environment is configured such that two networks cannot resolve machines by hostname, but can connect by IP address. This creates a problem when an ODBC/JDBC Connection requests a Drillbit from the Zookeeper Quorum. The Quorum returns the hostname of the running drillbit. The Quorum should be capable of returning the IP Address. Changing the existing property 'drill.exec.rpc.use.ip' in drill-override.conf did not have desired effect.
Reviewing code in org.apache.drill.exec.service.ServiceEngine.java, shows the boolean useIP is set to false, and never read from the configuration.
Simply adding the folllowing code at Line 76 resolved issue.:
With the above code, the Drillbit is registerd in the quorum with the IP address, not the hostname.