You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@drill.apache.org by Carol McDonald <cm...@maprtech.com> on 2015/01/06 04:54:04 UTC

Using JDBC to Access Apache Drill from SQuirreL

I am having problems getting JDBC to Access Apache Drill from SQuirreL
following these instructions
https://cwiki.apache.org/confluence/display/DRILL/Using+JDBC+to+Access+Apache+Drill+from+SQuirreL

I get the following error : Unexpected Error occurred attempting to open an
SQL connection.

Re: Using JDBC to Access Apache Drill from SQuirreL

Posted by Andries Engelbrecht <ae...@maprtech.com>.
Not that I’m aware off, I have not seen the direct connection shortcut for JDBC. 

The 2 biggest issues with JDBC connectivity is that the client can’t resolve the hostname of the ZK node(s) and the drill cluster name in the connection string. 

Just make sure the ZK node(s) hostnames and IP addresses are listed in the client’s hosts file. (/etc/hosts for Linux/Mac and typically c:\windows\system32\driver\etc\hosts for windows).

Also double check the drill cluster name for the drill bit(s) conf file as I previously mentioned.

What client OS are you using?

—Andries

On Jan 6, 2015, at 10:05 AM, Carol McDonald <cm...@maprtech.com> wrote:

> I connected the odbc driver with tableau to the mapr drill sandbox using
> the direct to drillbit (not zookeeper) , is this possible with jdbc ?
> 
> On Mon, Jan 5, 2015 at 11:07 PM, Andries Engelbrecht <
> aengelbrecht@maprtech.com> wrote:
> 
>> Check the following:
>> -can you connect using sqlline to the ZK?
>> -can the client running SQuirreL resolve the ZK node name, use the ZK node
>> name instead of the IP address in the connection string.
>> 
>> --Andries
>> 
>> 
>> 
>>> On Jan 5, 2015, at 7:56 PM, Carol McDonald <cm...@maprtech.com>
>> wrote:
>>> 
>>> here is the stack trace,  I am using the latest 0.7 jdbc jar  , with the
>>> mapr drill sandbox, with this url
>>> 
>>> jdbc:drill:zk=192.168.110.133:5181/drill/drillbits1;schema=hive
>>> 
>>> java.util.concurrent.ExecutionException: java.lang.RuntimeException:
>>> java.lang.IllegalStateException: No DrillbitEndpoint can be found
>>> at java.util.concurrent.FutureTask.report(FutureTask.java:122)
>>> at java.util.concurrent.FutureTask.get(FutureTask.java:202)
>>> at
>>> 
>> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132)
>>> at
>>> 
>> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45)
>>> at
>>> 
>> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115)
>>> at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>>> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>>> at
>>> 
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>> at
>>> 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>> at java.lang.Thread.run(Thread.java:744)
>>> Caused by: java.lang.RuntimeException: java.lang.IllegalStateException:
>> No
>>> DrillbitEndpoint can be found
>>> at
>>> 
>> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:175)
>>> at
>>> 
>> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$000(OpenConnectionCommand.java:45)
>>> at
>>> 
>> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104)
>>> ... 5 more
>>> Caused by: java.lang.IllegalStateException: No DrillbitEndpoint can be
>> found
>>> at
>> com.google.common.base.Preconditions.checkState(Preconditions.java:149)
>>> at org.apache.drill.exec.client.DrillClient.connect(DrillClient.java:168)
>>> at
>>> 
>> org.apache.drill.jdbc.DrillConnectionImpl.<init>(DrillConnectionImpl.java:93)
>>> at
>>> 
>> org.apache.drill.jdbc.DrillJdbc41Factory$DrillJdbc41Connection.<init>(DrillJdbc41Factory.java:88)
>>> at
>>> 
>> org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:57)
>>> at
>>> 
>> org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:43)
>>> at org.apache.drill.jdbc.DrillFactory.newConnection(DrillFactory.java:51)
>>> at
>>> 
>> net.hydromatic.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:126)
>>> at
>>> 
>> net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133)
>>> at
>>> 
>> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167)
>>> 
>>> On Mon, Jan 5, 2015 at 10:54 PM, Carol McDonald <cm...@maprtech.com>
>>> wrote:
>>> 
>>>> I am having problems getting JDBC to Access Apache Drill from SQuirreL
>>>> following these instructions
>>>> 
>>>> 
>> https://cwiki.apache.org/confluence/display/DRILL/Using+JDBC+to+Access+Apache+Drill+from+SQuirreL
>>>> 
>>>> I get the following error : Unexpected Error occurred attempting to open
>>>> an SQL connection.
>>>> 
>>>> 
>>>> 
>> 


Re: Using JDBC to Access Apache Drill from SQuirreL

Posted by Carol McDonald <cm...@maprtech.com>.
I connected the odbc driver with tableau to the mapr drill sandbox using
the direct to drillbit (not zookeeper) , is this possible with jdbc ?

On Mon, Jan 5, 2015 at 11:07 PM, Andries Engelbrecht <
aengelbrecht@maprtech.com> wrote:

> Check the following:
> -can you connect using sqlline to the ZK?
> -can the client running SQuirreL resolve the ZK node name, use the ZK node
> name instead of the IP address in the connection string.
>
> --Andries
>
>
>
> > On Jan 5, 2015, at 7:56 PM, Carol McDonald <cm...@maprtech.com>
> wrote:
> >
> > here is the stack trace,  I am using the latest 0.7 jdbc jar  , with the
> > mapr drill sandbox, with this url
> >
> > jdbc:drill:zk=192.168.110.133:5181/drill/drillbits1;schema=hive
> >
> > java.util.concurrent.ExecutionException: java.lang.RuntimeException:
> > java.lang.IllegalStateException: No DrillbitEndpoint can be found
> > at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> > at java.util.concurrent.FutureTask.get(FutureTask.java:202)
> > at
> >
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132)
> > at
> >
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45)
> > at
> >
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115)
> > at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> > at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> > at
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> > at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> > at java.lang.Thread.run(Thread.java:744)
> > Caused by: java.lang.RuntimeException: java.lang.IllegalStateException:
> No
> > DrillbitEndpoint can be found
> > at
> >
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:175)
> > at
> >
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$000(OpenConnectionCommand.java:45)
> > at
> >
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104)
> > ... 5 more
> > Caused by: java.lang.IllegalStateException: No DrillbitEndpoint can be
> found
> > at
> com.google.common.base.Preconditions.checkState(Preconditions.java:149)
> > at org.apache.drill.exec.client.DrillClient.connect(DrillClient.java:168)
> > at
> >
> org.apache.drill.jdbc.DrillConnectionImpl.<init>(DrillConnectionImpl.java:93)
> > at
> >
> org.apache.drill.jdbc.DrillJdbc41Factory$DrillJdbc41Connection.<init>(DrillJdbc41Factory.java:88)
> > at
> >
> org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:57)
> > at
> >
> org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:43)
> > at org.apache.drill.jdbc.DrillFactory.newConnection(DrillFactory.java:51)
> > at
> >
> net.hydromatic.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:126)
> > at
> >
> net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133)
> > at
> >
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167)
> >
> > On Mon, Jan 5, 2015 at 10:54 PM, Carol McDonald <cm...@maprtech.com>
> > wrote:
> >
> >> I am having problems getting JDBC to Access Apache Drill from SQuirreL
> >> following these instructions
> >>
> >>
> https://cwiki.apache.org/confluence/display/DRILL/Using+JDBC+to+Access+Apache+Drill+from+SQuirreL
> >>
> >> I get the following error : Unexpected Error occurred attempting to open
> >> an SQL connection.
> >>
> >>
> >>
>

Re: Using JDBC to Access Apache Drill from SQuirreL

Posted by Andries Engelbrecht <ae...@maprtech.com>.
Check the following:
-can you connect using sqlline to the ZK?
-can the client running SQuirreL resolve the ZK node name, use the ZK node name instead of the IP address in the connection string.

--Andries



> On Jan 5, 2015, at 7:56 PM, Carol McDonald <cm...@maprtech.com> wrote:
> 
> here is the stack trace,  I am using the latest 0.7 jdbc jar  , with the
> mapr drill sandbox, with this url
> 
> jdbc:drill:zk=192.168.110.133:5181/drill/drillbits1;schema=hive
> 
> java.util.concurrent.ExecutionException: java.lang.RuntimeException:
> java.lang.IllegalStateException: No DrillbitEndpoint can be found
> at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> at java.util.concurrent.FutureTask.get(FutureTask.java:202)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
> Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: No
> DrillbitEndpoint can be found
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:175)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$000(OpenConnectionCommand.java:45)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104)
> ... 5 more
> Caused by: java.lang.IllegalStateException: No DrillbitEndpoint can be found
> at com.google.common.base.Preconditions.checkState(Preconditions.java:149)
> at org.apache.drill.exec.client.DrillClient.connect(DrillClient.java:168)
> at
> org.apache.drill.jdbc.DrillConnectionImpl.<init>(DrillConnectionImpl.java:93)
> at
> org.apache.drill.jdbc.DrillJdbc41Factory$DrillJdbc41Connection.<init>(DrillJdbc41Factory.java:88)
> at
> org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:57)
> at
> org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:43)
> at org.apache.drill.jdbc.DrillFactory.newConnection(DrillFactory.java:51)
> at
> net.hydromatic.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:126)
> at
> net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167)
> 
> On Mon, Jan 5, 2015 at 10:54 PM, Carol McDonald <cm...@maprtech.com>
> wrote:
> 
>> I am having problems getting JDBC to Access Apache Drill from SQuirreL
>> following these instructions
>> 
>> https://cwiki.apache.org/confluence/display/DRILL/Using+JDBC+to+Access+Apache+Drill+from+SQuirreL
>> 
>> I get the following error : Unexpected Error occurred attempting to open
>> an SQL connection.
>> 
>> 
>> 

Re: Using JDBC to Access Apache Drill from SQuirreL

Posted by Andries Engelbrecht <ae...@maprtech.com>.
Also double check the drill cluster name in the connection string. It should match the name in the drill-override.conf file on the nodes with drillbits.

The drill-override.conf file is located in the drill-home/conf directory.

--Andries


> On Jan 5, 2015, at 7:56 PM, Carol McDonald <cm...@maprtech.com> wrote:
> 
> here is the stack trace,  I am using the latest 0.7 jdbc jar  , with the
> mapr drill sandbox, with this url
> 
> jdbc:drill:zk=192.168.110.133:5181/drill/drillbits1;schema=hive
> 
> java.util.concurrent.ExecutionException: java.lang.RuntimeException:
> java.lang.IllegalStateException: No DrillbitEndpoint can be found
> at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> at java.util.concurrent.FutureTask.get(FutureTask.java:202)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
> Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: No
> DrillbitEndpoint can be found
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:175)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$000(OpenConnectionCommand.java:45)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104)
> ... 5 more
> Caused by: java.lang.IllegalStateException: No DrillbitEndpoint can be found
> at com.google.common.base.Preconditions.checkState(Preconditions.java:149)
> at org.apache.drill.exec.client.DrillClient.connect(DrillClient.java:168)
> at
> org.apache.drill.jdbc.DrillConnectionImpl.<init>(DrillConnectionImpl.java:93)
> at
> org.apache.drill.jdbc.DrillJdbc41Factory$DrillJdbc41Connection.<init>(DrillJdbc41Factory.java:88)
> at
> org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:57)
> at
> org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:43)
> at org.apache.drill.jdbc.DrillFactory.newConnection(DrillFactory.java:51)
> at
> net.hydromatic.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:126)
> at
> net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133)
> at
> net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167)
> 
> On Mon, Jan 5, 2015 at 10:54 PM, Carol McDonald <cm...@maprtech.com>
> wrote:
> 
>> I am having problems getting JDBC to Access Apache Drill from SQuirreL
>> following these instructions
>> 
>> https://cwiki.apache.org/confluence/display/DRILL/Using+JDBC+to+Access+Apache+Drill+from+SQuirreL
>> 
>> I get the following error : Unexpected Error occurred attempting to open
>> an SQL connection.
>> 
>> 
>> 

Re: Using JDBC to Access Apache Drill from SQuirreL

Posted by Carol McDonald <cm...@maprtech.com>.
here is the stack trace,  I am using the latest 0.7 jdbc jar  , with the
mapr drill sandbox, with this url

jdbc:drill:zk=192.168.110.133:5181/drill/drillbits1;schema=hive

java.util.concurrent.ExecutionException: java.lang.RuntimeException:
java.lang.IllegalStateException: No DrillbitEndpoint can be found
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:202)
at
net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132)
at
net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45)
at
net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.RuntimeException: java.lang.IllegalStateException: No
DrillbitEndpoint can be found
at
net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:175)
at
net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$000(OpenConnectionCommand.java:45)
at
net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104)
... 5 more
Caused by: java.lang.IllegalStateException: No DrillbitEndpoint can be found
at com.google.common.base.Preconditions.checkState(Preconditions.java:149)
at org.apache.drill.exec.client.DrillClient.connect(DrillClient.java:168)
at
org.apache.drill.jdbc.DrillConnectionImpl.<init>(DrillConnectionImpl.java:93)
at
org.apache.drill.jdbc.DrillJdbc41Factory$DrillJdbc41Connection.<init>(DrillJdbc41Factory.java:88)
at
org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:57)
at
org.apache.drill.jdbc.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:43)
at org.apache.drill.jdbc.DrillFactory.newConnection(DrillFactory.java:51)
at
net.hydromatic.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:126)
at
net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133)
at
net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167)

On Mon, Jan 5, 2015 at 10:54 PM, Carol McDonald <cm...@maprtech.com>
wrote:

> I am having problems getting JDBC to Access Apache Drill from SQuirreL
> following these instructions
>
> https://cwiki.apache.org/confluence/display/DRILL/Using+JDBC+to+Access+Apache+Drill+from+SQuirreL
>
> I get the following error : Unexpected Error occurred attempting to open
> an SQL connection.
>
>
>