Zeppelin 0.7.2 integration with Presto 0.184

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Zeppelin 0.7.2 integration with Presto 0.184

Richard Xin
I am not sure Zeppelin 0.7.2 is compatible with Presto 0.184
here are the steps:

1. create new presto interpreter 
">

2. %presto
show tables

java.sql.SQLException: Unrecognized connection property 'url'
at com.facebook.presto.jdbc.PrestoDriverUri.validateConnectionProperties(PrestoDriverUri.java:292)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:89)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:79)
at com.facebook.presto.jdbc.PrestoDriver.connect(PrestoDriver.java:86)
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:836)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:434)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)
at org.apache.commons.dbcp2.PoolingDriver.connect(PoolingDriver.java:129)

...

it seems that presto has some strict property name checking, I believe it's not uncommon that people want to use presto in Zeppelin, is there any work-around? I am on AWS EMR

related presto code:







Screen Shot 2017-10-31 at 2.50.35 PM.png (110K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

RE: Zeppelin 0.7.2 integration with Presto 0.184

David Howell

I’ve done this previously, my answer here https://stackoverflow.com/a/44238195/1335793

 

I was using an older version though.

Did you try appending catalog, or a catalog & schema to the url?

 

Error message suggests problem is with the “default.url” in the interpreter settings.

 

On another note, AWS has released Athena (managed version of presto) so when it's available in my region I will look at using that.

 

Dave

 

From: [hidden email]
Sent: Wednesday, 1 November 2017 9:35 AM
To: [hidden email]
Subject: Zeppelin 0.7.2 integration with Presto 0.184

 

I am not sure Zeppelin 0.7.2 is compatible with Presto 0.184
here are the steps:

1. create new presto interpreter 
Inline image

2. %presto
show tables

java.sql.SQLException: Unrecognized connection property 'url'
at com.facebook.presto.jdbc.PrestoDriverUri.validateConnectionProperties(PrestoDriverUri.java:292)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:89)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:79)
at com.facebook.presto.jdbc.PrestoDriver.connect(PrestoDriver.java:86)
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:836)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:434)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)
at org.apache.commons.dbcp2.PoolingDriver.connect(PoolingDriver.java:129)

...

it seems that presto has some strict property name checking, I believe it's not uncommon that people want to use presto in Zeppelin, is there any work-around? I am on AWS EMR

related presto code:






Reply | Threaded
Open this post in threaded view
|

Re: RE: Zeppelin 0.7.2 integration with Presto 0.184

Richard Xin
the problem looks like the strict check introduced a few month ago by presto throws exception when unrecognized properties are added, and default.url is unrecognized by presto







On Wednesday, November 1, 2017, 2:31:04 AM PDT, David Howell <[hidden email]> wrote:


I’ve done this previously, my answer here https://stackoverflow.com/a/44238195/1335793

 

I was using an older version though.

Did you try appending catalog, or a catalog & schema to the url?

 

Error message suggests problem is with the “default.url” in the interpreter settings.

 

On another note, AWS has released Athena (managed version of presto) so when it's available in my region I will look at using that.

 

Dave

 

From: [hidden email]
Sent: Wednesday, 1 November 2017 9:35 AM
To: [hidden email]
Subject: Zeppelin 0.7.2 integration with Presto 0.184

 

I am not sure Zeppelin 0.7.2 is compatible with Presto 0.184
here are the steps:

1. create new presto interpreter 
Inline image

2. %presto
show tables

java.sql.SQLException: Unrecognized connection property 'url'
at com.facebook.presto.jdbc.PrestoDriverUri.validateConnectionProperties(PrestoDriverUri.java:292)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:89)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:79)
at com.facebook.presto.jdbc.PrestoDriver.connect(PrestoDriver.java:86)
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:836)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:434)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)
at org.apache.commons.dbcp2.PoolingDriver.connect(PoolingDriver.java:129)

...

it seems that presto has some strict property name checking, I believe it's not uncommon that people want to use presto in Zeppelin, is there any work-around? I am on AWS EMR

related presto code:






Reply | Threaded
Open this post in threaded view
|

Re: RE: Zeppelin 0.7.2 integration with Presto 0.184

Richard Xin



and I have also filed an issue against presto, but people believes that should be fixed on Zeppelin side. 





On Wednesday, November 1, 2017, 9:15:20 AM PDT, Richard Xin <[hidden email]> wrote:


the problem looks like the strict check introduced a few month ago by presto throws exception when unrecognized properties are added, and default.url is unrecognized by presto







On Wednesday, November 1, 2017, 2:31:04 AM PDT, David Howell <[hidden email]> wrote:


I’ve done this previously, my answer here https://stackoverflow.com/a/44238195/1335793

 

I was using an older version though.

Did you try appending catalog, or a catalog & schema to the url?

 

Error message suggests problem is with the “default.url” in the interpreter settings.

 

On another note, AWS has released Athena (managed version of presto) so when it's available in my region I will look at using that.

 

Dave

 

From: [hidden email]
Sent: Wednesday, 1 November 2017 9:35 AM
To: [hidden email]
Subject: Zeppelin 0.7.2 integration with Presto 0.184

 

I am not sure Zeppelin 0.7.2 is compatible with Presto 0.184
here are the steps:

1. create new presto interpreter 
Inline image

2. %presto
show tables

java.sql.SQLException: Unrecognized connection property 'url'
at com.facebook.presto.jdbc.PrestoDriverUri.validateConnectionProperties(PrestoDriverUri.java:292)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:89)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:79)
at com.facebook.presto.jdbc.PrestoDriver.connect(PrestoDriver.java:86)
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:836)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:434)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)
at org.apache.commons.dbcp2.PoolingDriver.connect(PoolingDriver.java:129)

...

it seems that presto has some strict property name checking, I believe it's not uncommon that people want to use presto in Zeppelin, is there any work-around? I am on AWS EMR

related presto code:






Reply | Threaded
Open this post in threaded view
|

RE: RE: Zeppelin 0.7.2 integration with Presto 0.184

David Howell

Hmm yes it does look like that.

 

Aren't the interpreter settings stored inside some json file? Perhaps you could try editing the file to removing those properties, or rename them to what Presto expects, then restart the Zeppelin service.

 

I think its a silly Patch on the Presto side, way too opinionated. They shouldn’t be failing on properties that aren't required, only when required properties are missing. The justification that it “prevents typos of required properties” is misguided. It now just throws exceptions even if all the required properties are supplied, that’s not “strict”  that's OCD.

 

Meanwhile are these standard JDBC properties or just standard Zeppelin properties? I would have thought all JDBC connections require a URL and a driver, so patching Zeppelin to remove these is now an imposition on all JDBC interpreters. Or alternatively Presto is now different enough from generic JDBC to warrant it's own interpreter, which could be fairly easily added by modifying the generic JDBC one and changing those properties.

 

Dave

 

From: [hidden email]
Sent: Thursday, 2 November 2017 7:12 AM
To: [hidden email]; [hidden email]
Subject: Re: RE: Zeppelin 0.7.2 integration with Presto 0.184

 




and I have also filed an issue against presto, but people believes that should be fixed on Zeppelin side. 





On Wednesday, November 1, 2017, 9:15:20 AM PDT, Richard Xin <[hidden email]> wrote:


the problem looks like the strict check introduced a few month ago by presto throws exception when unrecognized properties are added, and default.url is unrecognized by presto







On Wednesday, November 1, 2017, 2:31:04 AM PDT, David Howell <[hidden email]> wrote:


I’ve done this previously, my answer here https://stackoverflow.com/a/44238195/1335793

 

I was using an older version though.

Did you try appending catalog, or a catalog & schema to the url?

 

Error message suggests problem is with the “default.url” in the interpreter settings.

 

On another note, AWS has released Athena (managed version of presto) so when it's available in my region I will look at using that.

 

Dave

 

From: [hidden email]
Sent: Wednesday, 1 November 2017 9:35 AM
To: [hidden email]
Subject: Zeppelin 0.7.2 integration with Presto 0.184

 

I am not sure Zeppelin 0.7.2 is compatible with Presto 0.184
here are the steps:

1. create new presto interpreter 
Inline image

2. %presto
show tables

java.sql.SQLException: Unrecognized connection property 'url'
at com.facebook.presto.jdbc.PrestoDriverUri.validateConnectionProperties(PrestoDriverUri.java:292)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:89)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:79)
at com.facebook.presto.jdbc.PrestoDriver.connect(PrestoDriver.java:86)
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:836)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:434)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)
at org.apache.commons.dbcp2.PoolingDriver.connect(PoolingDriver.java:129)

...

it seems that presto has some strict property name checking, I believe it's not uncommon that people want to use presto in Zeppelin, is there any work-around? I am on AWS EMR

related presto code:






Reply | Threaded
Open this post in threaded view
|

Re: Zeppelin 0.7.2 integration with Presto 0.184

Felix Cheung
I guess we could add a switch on the Zeppelin side to not pass through properties when set? How do we know if a property is a good one for Presto or not?


From: David Howell <[hidden email]>
Sent: Wednesday, November 1, 2017 5:04:05 PM
To: Richard Xin; Users
Subject: RE: RE: Zeppelin 0.7.2 integration with Presto 0.184
 

Hmm yes it does look like that.

 

Aren't the interpreter settings stored inside some json file? Perhaps you could try editing the file to removing those properties, or rename them to what Presto expects, then restart the Zeppelin service.

 

I think its a silly Patch on the Presto side, way too opinionated. They shouldn’t be failing on properties that aren't required, only when required properties are missing. The justification that it “prevents typos of required properties” is misguided. It now just throws exceptions even if all the required properties are supplied, that’s not “strict”  that's OCD.

 

Meanwhile are these standard JDBC properties or just standard Zeppelin properties? I would have thought all JDBC connections require a URL and a driver, so patching Zeppelin to remove these is now an imposition on all JDBC interpreters. Or alternatively Presto is now different enough from generic JDBC to warrant it's own interpreter, which could be fairly easily added by modifying the generic JDBC one and changing those properties.

 

Dave

 

From: [hidden email]
Sent: Thursday, 2 November 2017 7:12 AM
To: [hidden email]; [hidden email]
Subject: Re: RE: Zeppelin 0.7.2 integration with Presto 0.184

 




and I have also filed an issue against presto, but people believes that should be fixed on Zeppelin side. 





On Wednesday, November 1, 2017, 9:15:20 AM PDT, Richard Xin <[hidden email]> wrote:


the problem looks like the strict check introduced a few month ago by presto throws exception when unrecognized properties are added, and default.url is unrecognized by presto







On Wednesday, November 1, 2017, 2:31:04 AM PDT, David Howell <[hidden email]> wrote:


I’ve done this previously, my answer here https://stackoverflow.com/a/44238195/1335793

 

I was using an older version though.

Did you try appending catalog, or a catalog & schema to the url?

 

Error message suggests problem is with the “default.url” in the interpreter settings.

 

On another note, AWS has released Athena (managed version of presto) so when it's available in my region I will look at using that.

 

Dave

 

From: [hidden email]
Sent: Wednesday, 1 November 2017 9:35 AM
To: [hidden email]
Subject: Zeppelin 0.7.2 integration with Presto 0.184

 

I am not sure Zeppelin 0.7.2 is compatible with Presto 0.184
here are the steps:

1. create new presto interpreter 
Inline image

2. %presto
show tables

java.sql.SQLException: Unrecognized connection property 'url'
at com.facebook.presto.jdbc.PrestoDriverUri.validateConnectionProperties(PrestoDriverUri.java:292)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:89)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:79)
at com.facebook.presto.jdbc.PrestoDriver.connect(PrestoDriver.java:86)
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:836)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:434)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)
at org.apache.commons.dbcp2.PoolingDriver.connect(PoolingDriver.java:129)

...

it seems that presto has some strict property name checking, I believe it's not uncommon that people want to use presto in Zeppelin, is there any work-around? I am on AWS EMR

related presto code:






Reply | Threaded
Open this post in threaded view
|

Re: Zeppelin 0.7.2 integration with Presto 0.184

Richard Xin
Zeppelin 0.7.2 works ok with Presto 0.170, we just downgraded presto to avoid troubles.

On Thursday, November 2, 2017, 9:42:55 AM PDT, Felix Cheung <[hidden email]> wrote:


I guess we could add a switch on the Zeppelin side to not pass through properties when set? How do we know if a property is a good one for Presto or not?


From: David Howell <[hidden email]>
Sent: Wednesday, November 1, 2017 5:04:05 PM
To: Richard Xin; Users
Subject: RE: RE: Zeppelin 0.7.2 integration with Presto 0.184
 

Hmm yes it does look like that.

 

Aren't the interpreter settings stored inside some json file? Perhaps you could try editing the file to removing those properties, or rename them to what Presto expects, then restart the Zeppelin service.

 

I think its a silly Patch on the Presto side, way too opinionated. They shouldn’t be failing on properties that aren't required, only when required properties are missing. The justification that it “prevents typos of required properties” is misguided. It now just throws exceptions even if all the required properties are supplied, that’s not “strict”  that's OCD.

 

Meanwhile are these standard JDBC properties or just standard Zeppelin properties? I would have thought all JDBC connections require a URL and a driver, so patching Zeppelin to remove these is now an imposition on all JDBC interpreters. Or alternatively Presto is now different enough from generic JDBC to warrant it's own interpreter, which could be fairly easily added by modifying the generic JDBC one and changing those properties.

 

Dave

 

From: [hidden email]
Sent: Thursday, 2 November 2017 7:12 AM
To: [hidden email]; [hidden email]
Subject: Re: RE: Zeppelin 0.7.2 integration with Presto 0.184

 




and I have also filed an issue against presto, but people believes that should be fixed on Zeppelin side. 





On Wednesday, November 1, 2017, 9:15:20 AM PDT, Richard Xin <[hidden email]> wrote:


the problem looks like the strict check introduced a few month ago by presto throws exception when unrecognized properties are added, and default.url is unrecognized by presto







On Wednesday, November 1, 2017, 2:31:04 AM PDT, David Howell <[hidden email]> wrote:


I’ve done this previously, my answer here https://stackoverflow.com/a/44238195/1335793

 

I was using an older version though.

Did you try appending catalog, or a catalog & schema to the url?

 

Error message suggests problem is with the “default.url” in the interpreter settings.

 

On another note, AWS has released Athena (managed version of presto) so when it's available in my region I will look at using that.

 

Dave

 

From: [hidden email]
Sent: Wednesday, 1 November 2017 9:35 AM
To: [hidden email]
Subject: Zeppelin 0.7.2 integration with Presto 0.184

 

I am not sure Zeppelin 0.7.2 is compatible with Presto 0.184
here are the steps:

1. create new presto interpreter 
Inline image

2. %presto
show tables

java.sql.SQLException: Unrecognized connection property 'url'
at com.facebook.presto.jdbc.PrestoDriverUri.validateConnectionProperties(PrestoDriverUri.java:292)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:89)
at com.facebook.presto.jdbc.PrestoDriverUri.<init>(PrestoDriverUri.java:79)
at com.facebook.presto.jdbc.PrestoDriver.connect(PrestoDriver.java:86)
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:836)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:434)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)
at org.apache.commons.dbcp2.PoolingDriver.connect(PoolingDriver.java:129)

...

it seems that presto has some strict property name checking, I believe it's not uncommon that people want to use presto in Zeppelin, is there any work-around? I am on AWS EMR

related presto code:






Reply | Threaded
Open this post in threaded view
|

Re: Zeppelin 0.7.2 integration with Presto 0.184

Felix Cheung
In reply to this post by Richard Xin
Great. Could someone open a JIRA on this? Unless the policy is changing, this can be a blocker for Presto for 0.8 release