[
https://issues.apache.org/jira/browse/DRILL-3075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15272015#comment-15272015
]
Jingguo Yao edited comment on DRILL-3075 at 5/5/16 7:29 AM:
------------------------------------------------------------
If the url contains zk parameter, host names and port numbers for drillbit
servers are retrieved from Zookeeper. You can check whether you can connect to
these drillbit servers with the information from Zookeeper.
was (Author: yaojingguo):
If the url contains `zk` parameter, host names and port numbers for drillbit
servers are retrieved from Zookeeper. You can check whether you can connect to
these drillbit servers with the information from Zookeeper.
> Connecting to Drill via JDBC fails with UnresolvedAddressException when URL
> contains ZK info
> --------------------------------------------------------------------------------------------
>
> Key: DRILL-3075
> URL: https://issues.apache.org/jira/browse/DRILL-3075
> Project: Apache Drill
> Issue Type: Bug
> Components: Client - JDBC
> Affects Versions: 1.0.0
> Reporter: Abhishek Girish
> Fix For: Future
>
>
> Connecting to Drill via JDBC fails if the URL contains the ZK host:port:
> {code}
> ...
> String schema = "dfs.tmp";
> String zookeepers = "10.10.103.32:5181/drill/drillbits1";
> String url = "jdbc:drill:schema="+schema+";zk="+zookeepers;
>
> Connection conn = null;
> Statement stmt = null;
>
> String query = "select * from dfs.tpch100.customer limit 1";
>
> try{
>
> Class.forName("org.apache.drill.jdbc.Driver");
> conn = DriverManager.getConnection(url,"root","root");
>
> stmt = conn.createStatement();
> ...
> {code}
> The following code fails to connect to Drill with the following error:
> {code}
> java.sql.SQLException: Failure while attempting to connect to Drill:
> CONNECTION : java.nio.channels.UnresolvedAddressException
> at
> org.apache.drill.jdbc.DrillConnectionImpl.<init>(DrillConnectionImpl.java:123)
> at
> org.apache.drill.jdbc.DrillJdbc41Factory$DrillJdbc41Connection.<init>(DrillJdbc41Factory.java:97)
> at
> org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:60)
> at
> org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:46)
> at
> org.apache.drill.jdbc.DrillFactory.newConnection(DrillFactory.java:54)
> at
> net.hydromatic.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:126)
> at java.sql.DriverManager.getConnection(DriverManager.java:571)
> at java.sql.DriverManager.getConnection(DriverManager.java:215)
> at drill.DrillJDBC.main(DrillJDBC.java:39)
> Caused by: org.apache.drill.exec.rpc.RpcException: CONNECTION :
> java.nio.channels.UnresolvedAddressException
> at
> org.apache.drill.exec.client.DrillClient$FutureHandler.connectionFailed(DrillClient.java:414)
> at
> org.apache.drill.exec.rpc.BasicClient$ConnectionMultiListener$ConnectionHandler.operationComplete(BasicClient.java:209)
> at
> org.apache.drill.exec.rpc.BasicClient$ConnectionMultiListener$ConnectionHandler.operationComplete(BasicClient.java:193)
> at
> io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:680)
> at
> io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:567)
> at
> io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:424)
> at
> io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.connect(AbstractNioChannel.java:235)
> at
> io.netty.channel.DefaultChannelPipeline$HeadContext.connect(DefaultChannelPipeline.java:1089)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeConnect(AbstractChannelHandlerContext.java:543)
> at
> io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChannelHandlerContext.java:528)
> at
> io.netty.channel.ChannelOutboundHandlerAdapter.connect(ChannelOutboundHandlerAdapter.java:47)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeConnect(AbstractChannelHandlerContext.java:543)
> at
> io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChannelHandlerContext.java:528)
> at
> io.netty.channel.ChannelDuplexHandler.connect(ChannelDuplexHandler.java:50)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeConnect(AbstractChannelHandlerContext.java:543)
> at
> io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChannelHandlerContext.java:528)
> at
> io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChannelHandlerContext.java:510)
> at
> io.netty.channel.DefaultChannelPipeline.connect(DefaultChannelPipeline.java:909)
> at io.netty.channel.AbstractChannel.connect(AbstractChannel.java:203)
> at io.netty.bootstrap.Bootstrap$2.run(Bootstrap.java:165)
> at
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
> at
> io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.util.concurrent.ExecutionException:
> java.nio.channels.UnresolvedAddressException
> at io.netty.util.concurrent.AbstractFuture.get(AbstractFuture.java:37)
> at
> org.apache.drill.exec.rpc.BasicClient$ConnectionMultiListener$ConnectionHandler.operationComplete(BasicClient.java:199)
> ... 22 more
> Caused by: java.nio.channels.UnresolvedAddressException
> at sun.nio.ch.Net.checkAddress(Net.java:127)
> at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:644)
> at
> io.netty.channel.socket.nio.NioSocketChannel.doConnect(NioSocketChannel.java:209)
> at
> io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.connect(AbstractNioChannel.java:199)
> ... 17 more
> {code}
> Can connect when the URL is changed from
> {code}
> String url =
> "jdbc:drill:schema="+schema+";zk=10.10.103.32:5181/drill/drillbits1";
> to
> String url = "jdbc:drill:schema="+schema+";drillbit=10.10.103.32";
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)