java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not recogn

Presto
Enthusiast

java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not recogn

Hello all,

 
I have configured presto with ssl, When i am trying to add this presto with zeppelin  jdbc interpreter the i am gettingjava.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not recognized.
at com.teradata.presto.core.PRConnection.connect(Unknown Source)
at com.teradata.jdbc.common.BaseConnectionFactory.doConnect(Unknown Source)
at com.teradata.jdbc.common.AbstractDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at org.apache.commons.dbcp2.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:79)
at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:205)
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:861)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
at org.apache.commons.dbcp2.PoolingDriver.connect(PoolingDriver.java:129)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at org.apache.zeppelin.jdbc.JDBCInterpreter.getConnectionFromPool(JDBCInterpreter.java:354)
at org.apache.zeppelin.jdbc.JDBCInterpreter.getConnection(JDBCInterpreter.java:372)
at org.apache.zeppelin.jdbc.JDBCInterpreter.executeSql(JDBCInterpreter.java:565)
at org.apache.zeppelin.jdbc.JDBCInterpreter.interpret(JDBCInterpreter.java:692)
at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:97)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:498)
at org.apache.zeppelin.scheduler.Job.run(Job.java:175)
at org.apache.zeppelin.scheduler.ParallelScheduler$JobRunner.run(ParallelScheduler.java:162)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
Caused by: com.teradata.support.exceptions.GeneralException: [Teradata][Presto](100200) Connection string is invalid: driver is not recognized.
... 27 more
 
Thanks in advance
8 REPLIES
Teradata Employee

Re: java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not re

Hi Rajesh

 

Please provide the following information

1) Presto version used

2) JDBC driver version used

3) What was the connection URL that you have used?

4) Did you try connecting with any other tool using JDBC driver like SQuirreL?

 

Thanks

Akshat

Enthusiast

Re: java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not re

Hi Akshat,
Thanks for quick response.

Before answering your question I want to let you know what I am able to do.

I have configured the presto server with LDAPs and its working as excepted. I am able to do a query on Presto server using jdbc and odbc driver you provided with presto package.
But when I am trying to add the Zeppelin interpreter than an not able to fire the SQL.

Now answering your question 

1) Presto version used
Ans : I am using presto_server_pkg.0.167-t.0.2.tar.gz package.

2) JDBC driver version used
Ans: Driver presto-jdbc42-1.0.14.1022.jar 

3) What was the connection URL that you have used?
Ans : "jdbc:presto://localhost:8443/postgresql/public;AuthenticationType=LDAP Authentication;SSLTrustStorePath=/tmp/presto/script/keystore.jks;SSLTrustStorePwd=changeit"

4) Did you try connecting with any other tool using JDBC driver like SQuirreL?
Ans: I am able to connect using simple jdbc program.


Thanks
Rajesh

Teradata Employee

Re: java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not re

Okay so it could be an issue with Zepplin then, I recently saw someone post some issue wiht open source driver as well. I would recommend enbaling logging for the JDBC driver and set it to value 5 to get more debugging information. How to configure logging is described in the JDBC driver documentation. Also, can you check if there are any errors that show up in server.log of Presto?

Enthusiast

Re: java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not re

 

After enable the log level

 

Jul 10 06:35:22.664 INFO 18 com.teradata.jdbc.common.BaseConnectionFactory.getConnection: Driver Version: 01.00.14.1022
Jul 10 06:35:22.667 ERROR 18 com.teradata.exceptions.ExceptionConverter.toSQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not recognized.
java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not recognized.
at com.teradata.presto.core.PRConnection.connect(Unknown Source)
at com.teradata.jdbc.common.BaseConnectionFactory.doConnect(Unknown Source)
at com.teradata.jdbc.common.AbstractDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at org.apache.commons.dbcp2.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:79)

 

 


at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:205)
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:861)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
at org.apache.commons.dbcp2.PoolingDriver.connect(PoolingDriver.java:129)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
at org.apache.zeppelin.jdbc.JDBCInterpreter.getConnectionFromPool(JDBCInterpreter.java:354)
at org.apache.zeppelin.jdbc.JDBCInterpreter.getConnection(JDBCInterpreter.java:372)
at org.apache.zeppelin.jdbc.JDBCInterpreter.executeSql(JDBCInterpreter.java:565)
at org.apache.zeppelin.jdbc.JDBCInterpreter.interpret(JDBCInterpreter.java:692)
at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:97)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:498)
at org.apache.zeppelin.scheduler.Job.run(Job.java:175)
at org.apache.zeppelin.scheduler.ParallelScheduler$JobRunner.run(ParallelScheduler.java:162)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
Caused by: com.teradata.support.exceptions.GeneralException: [Teradata][Presto](100200) Connection string is invalid: driver is not recognized.
... 27 more

 

 

 

And there is no log is coming in server.log 

Teradata Employee

Re: java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not re

The most likely explanations are:

1) The JDBC driver is not in your classpath

2) The connection string has a typo

New Member

Re: java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not re

Hi All,

I am facing the same issue when using with Zeppelin.

 

I first used PostgresSQL Interpreter by giving the same url with Kerberos support and added presto JDBC Jar : com.teradata.presto.jdbc42.Driver.

 

postgresql.driver.name         com.teradata.presto.jdbc42.Driver
postgresql.max.result           1000
postgresql.password
postgresql.url                      jdbc:presto://Xxxxxxxxxxxxx;AuthenticationType=Kerberos Authentication;SSLTrustStorePath=XXXXXXXXXX;SSLTrustStorePwd=XXXXXXX
postgresql.user                   XXXXXXX

 

and this worked and i was able to get result. But PostgresSQL Interpreter for Zeppelin version is removed in the upcoming version and merged to jdbc Interpretter.

so, by using the JDBC Interpreter of Zeppelin and using the same jar and URL and in configuration.I am getting the same error.

 

default.driver.name         com.teradata.presto.jdbc42.Driver
default.max.count          1000
default.password
default.url                      jdbc:presto://Xxxxxxxxxxxxx;AuthenticationType=Kerberos Authentication;SSLTrustStorePath=XXXXXXXXXX;SSLTrustStorePwd=XXXXXXX
default.user                   XXXXXXX

I am getting the same error  '''java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not recogn'''

 

Enthusiast

Re: java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not re

 

 
 
 

The presto jdbc driver is in CLASSPATH because it not throwing  "ClassNotFoundException" exception .

Another thing same jdbc url is working with sample jdbc java program 

Teradata Employee

Re: java.sql.SQLException: [Teradata][Presto](100200) Connection string is invalid: driver is not re

Given that the same driver and URL works in another program, I'd say this is a bug in Zeppelin and you need to address it with the company that provided that product.