You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@predictionio.apache.org by Mars Hall <ma...@heroku.com> on 2017/05/26 01:07:41 UTC

Perplexed by "No suitable driver"

Hi PIO users 🐸

I've got this engine that cannot find its Postgres JDBC driver. Common conundrum! I solved this problem dozens of times with PIO, but this one stumps me.

It comes from `pio status`, as opposed to `pio train`:

> $ ./PredictionIO-dist/bin/pio status
>   [INFO] [Management$] Inspecting PredictionIO...
>   [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at /app/pio-engine/PredictionIO-dist
>   [INFO] [Management$] Inspecting Apache Spark...
>   [INFO] [Management$] Apache Spark is installed at /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop
>   [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum requirement of 1.3.0)
>   [INFO] [Management$] Inspecting storage backend connections...
>   [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)...
>   [ERROR] [Management$] Unable to connect to all storage backends successfully.
>   The following shows the error message from the storage backend.
>   
>   No suitable driver found for jdbc:postgresql://postgres/pio (java.sql.SQLException)
>   
>   Dumping configuration of initialized storage backend sources.
>   Please make sure they are correct.
> 
>   Source Name: PGSQL; Type: jdbc; Configuration: URL -> jdbc:postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio, USERNAME -> pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled


I've added a debug output to `bin/pio-class` to reveal what's running (e.g. classpath); multi-line formatting added by me:

> exec java \
>   -cp /app/pio-engine/PredictionIO-dist/conf:\
>     /app/pio-engine/PredictionIO-dist/plugins/*:\
>     /app/pio-engine/PredictionIO-dist/lib/spark/*:\
>     /app/pio-engine/PredictionIO-dist/lib/pio-assembly-0.11.0-incubating.jar:\
>     /app/pio-engine/PredictionIO-dist/conf:\
>     /app/pio-engine/PredictionIO-dist/conf:\
>     /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar \
>   -Dpio.log.dir=/root \
>   org.apache.predictionio.tools.console.Console \
>   status \
>   --pio-home /app/pio-engine/PredictionIO-dist



Verified that the Postgres JDBC jar file exists & is readable by the current user:

> ls -hal /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar
>   -rw-r--r-- 1 root       root 674K May 26 00:57 postgresql_jdbc.jar



Is there something else that would cause that "No suitable driver" error when something else is really wrong?


Context:
This is building on Ubuntu 14.04.5 LTS with docker-compose on TravisCI for the Heroku buildpack: https://github.com/heroku/predictionio-buildpack/pull/36

This same setup works fine elsewhere, finds that JDBC driver, both on Heroku and local macOS. The build also used to work fine with PredictionIO 0.10.0-incubating. Trying to upgrade everything to 0.11.0!

*Mars

( <> .. <> )


Re: Perplexed by "No suitable driver"

Posted by Donald Szeto <do...@apache.org>.
Was this line correctly set?

https://github.com/apache/incubator-predictionio/blob/develop/conf/pio-env.sh.template#L30

On Sat, May 27, 2017 at 12:00 AM Mars Hall <ma...@heroku.com> wrote:

> Also, re: the Postgres connection string, it is correct for my setup. My
> docker-compose creates a Postgres host named "postgres". `jdbc:postgr
> esql://postgres/pio` is accurate and was working with PIO 0.10.0.
>
> On Fri, May 26, 2017 at 07:58 Mars Hall <ma...@heroku.com> wrote:
>
>> Hi Chan,
>>
>> Thanks for taking a look. This is running the release version of
>> PredictionIO 0.11.0-incubating, not the Authenticated Elasticsearch
>> branch/PR you mentioned w/ those classpath revisions.
>>
>> Here it is with the `--verbose` flag, which made some ConnectionPool
>> loglines appear:
>>
>> > $ pio status --verbose
>> >   [INFO] [Management$] Inspecting PredictionIO...
>> >   [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at
>> /app/pio-engine/PredictionIO-dist
>> >   [INFO] [Management$] Inspecting Apache Spark...
>> >   [INFO] [Management$] Apache Spark is installed at
>> /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop
>> >   [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum
>> requirement of 1.3.0)
>> >   [INFO] [Management$] Inspecting storage backend connections...
>> >   [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)...
>> >   [DEBUG] [ConnectionPool$] Registered connection pool :
>> ConnectionPool(url:jdbc:postgresql://postgres/pio, user:pio) using
>> factory : <default>
>> >   [DEBUG] [ConnectionPool$] Registered singleton connection pool :
>> ConnectionPool(url:jdbc:postgresql://postgres/pio, user:pio)
>> >   [ERROR] [Management$] Unable to connect to all storage backends
>> successfully.
>> >   The following shows the error message from the storage backend.
>> >
>> >   No suitable driver found for jdbc:postgresql://postgres/pio
>> (java.sql.SQLException)
>> >
>> >   Dumping configuration of initialized storage backend sources.
>> >   Please make sure they are correct.
>> >
>> >   Source Name: PGSQL; Type: jdbc; Configuration: URL -> jdbc:
>> postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio, USERNAME ->
>> pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled
>>
>>
>>
>> *Mars
>>
>> ( <> .. <> )
>>
>> > On May 26, 2017, at 05:17, Chan Lee <ch...@gmail.com> wrote:
>> >
>> > Actually, if this is a problem occurring only with docker-compose and
>> travis, I think this may be the issue:
>> >
>> >
>> https://github.com/apache/incubator-predictionio/blob/develop/tests/build_docker.sh#L42-L45
>> puts the main assembly jar to assembly/, and data assembly jars to
>> lib/spark (instead of assembly/spark, which I think is rather confusing)
>> >
>> > Maybe the change in compute-classpath.sh of
>> https://github.com/apache/incubator-predictionio/pull/372 may have
>> caused pio commands to fail?
>> >
>> > Best,
>> > Chan
>> >
>> > On Thu, May 25, 2017 at 10:42 PM, Chan Lee <ch...@gmail.com>
>> wrote:
>> > Hi Mars,
>> >
>> > I'm not sure what the cause of the error is but adding the --verbose
>> option may help debug. Also, I've noticed that the host in the postgres URL
>> for the output (jdbc:postgresql://postgres/pio) is different from the
>> one in config/pio-env.sh (localhost/$hostport). Hope this helps.
>> >
>> > Best,
>> > Chan
>> >
>> >
>> > On Thu, May 25, 2017 at 6:07 PM, Mars Hall <ma...@heroku.com> wrote:
>> > Hi PIO users 🐸
>> >
>> > I've got this engine that cannot find its Postgres JDBC driver. Common
>> conundrum! I solved this problem dozens of times with PIO, but this one
>> stumps me.
>> >
>> > It comes from `pio status`, as opposed to `pio train`:
>> >
>> > > $ ./PredictionIO-dist/bin/pio status
>> > >   [INFO] [Management$] Inspecting PredictionIO...
>> > >   [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at
>> /app/pio-engine/PredictionIO-dist
>> > >   [INFO] [Management$] Inspecting Apache Spark...
>> > >   [INFO] [Management$] Apache Spark is installed at
>> /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop
>> > >   [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum
>> requirement of 1.3.0)
>> > >   [INFO] [Management$] Inspecting storage backend connections...
>> > >   [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)...
>> > >   [ERROR] [Management$] Unable to connect to all storage backends
>> successfully.
>> > >   The following shows the error message from the storage backend.
>> > >
>> > >   No suitable driver found for jdbc:postgresql://postgres/pio
>> (java.sql.SQLException)
>> > >
>> > >   Dumping configuration of initialized storage backend sources.
>> > >   Please make sure they are correct.
>> > >
>> > >   Source Name: PGSQL; Type: jdbc; Configuration: URL -> jdbc:
>> postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio, USERNAME ->
>> pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled
>> >
>> >
>> > I've added a debug output to `bin/pio-class` to reveal what's running
>> (e.g. classpath); multi-line formatting added by me:
>> >
>> > > exec java \
>> > >   -cp /app/pio-engine/PredictionIO-dist/conf:\
>> > >     /app/pio-engine/PredictionIO-dist/plugins/*:\
>> > >     /app/pio-engine/PredictionIO-dist/lib/spark/*:\
>> > >
>>  /app/pio-engine/PredictionIO-dist/lib/pio-assembly-0.11.0-incubating.jar:\
>> > >     /app/pio-engine/PredictionIO-dist/conf:\
>> > >     /app/pio-engine/PredictionIO-dist/conf:\
>> > >     /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar \
>> > >   -Dpio.log.dir=/root \
>> > >   org.apache.predictionio.tools.console.Console \
>> > >   status \
>> > >   --pio-home /app/pio-engine/PredictionIO-dist
>> >
>> >
>> >
>> > Verified that the Postgres JDBC jar file exists & is readable by the
>> current user:
>> >
>> > > ls -hal /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar
>> > >   -rw-r--r-- 1 root       root 674K May 26 00:57 postgresql_jdbc.jar
>> >
>> >
>> >
>> > Is there something else that would cause that "No suitable driver"
>> error when something else is really wrong?
>> >
>> >
>> > Context:
>> > This is building on Ubuntu 14.04.5 LTS with docker-compose on TravisCI
>> for the Heroku buildpack:
>> https://github.com/heroku/predictionio-buildpack/pull/36
>> >
>> > This same setup works fine elsewhere, finds that JDBC driver, both on
>> Heroku and local macOS. The build also used to work fine with PredictionIO
>> 0.10.0-incubating. Trying to upgrade everything to 0.11.0!
>> >
>> > *Mars
>> >
>> > ( <> .. <> )
>> >
>> >
>> >
>>
>>

Re: Perplexed by "No suitable driver"

Posted by Mars Hall <ma...@heroku.com>.
Also, re: the Postgres connection string, it is correct for my setup. My docker-compose creates a Postgres host named "postgres". `jdbc:postgresql://postgres/pio` is accurate and was working with PIO 0.10.0.

On Fri, May 26, 2017 at 07:58 Mars Hall <mars@heroku.com <ma...@heroku.com>> wrote:
Hi Chan,

Thanks for taking a look. This is running the release version of PredictionIO 0.11.0-incubating, not the Authenticated Elasticsearch branch/PR you mentioned w/ those classpath revisions.

Here it is with the `--verbose` flag, which made some ConnectionPool loglines appear:

> $ pio status --verbose
>   [INFO] [Management$] Inspecting PredictionIO...
>   [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at /app/pio-engine/PredictionIO-dist
>   [INFO] [Management$] Inspecting Apache Spark...
>   [INFO] [Management$] Apache Spark is installed at /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop
>   [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum requirement of 1.3.0)
>   [INFO] [Management$] Inspecting storage backend connections...
>   [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)...
>   [DEBUG] [ConnectionPool$] Registered connection pool : ConnectionPool(url:jdbc:postgresql://postgres/pio, user:pio) using factory : <default>
>   [DEBUG] [ConnectionPool$] Registered singleton connection pool : ConnectionPool(url:jdbc:postgresql://postgres/pio, user:pio)
>   [ERROR] [Management$] Unable to connect to all storage backends successfully.
>   The following shows the error message from the storage backend.
>
>   No suitable driver found for jdbc:postgresql://postgres/pio (java.sql.SQLException)
>
>   Dumping configuration of initialized storage backend sources.
>   Please make sure they are correct.
>
>   Source Name: PGSQL; Type: jdbc; Configuration: URL -> jdbc:postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio, USERNAME -> pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled



*Mars

( <> .. <> )

> On May 26, 2017, at 05:17, Chan Lee <chanlee514@gmail.com <ma...@gmail.com>> wrote:
>
> Actually, if this is a problem occurring only with docker-compose and travis, I think this may be the issue:
>
> https://github.com/apache/incubator-predictionio/blob/develop/tests/build_docker.sh#L42-L45 <https://github.com/apache/incubator-predictionio/blob/develop/tests/build_docker.sh#L42-L45> puts the main assembly jar to assembly/, and data assembly jars to lib/spark (instead of assembly/spark, which I think is rather confusing)
>
> Maybe the change in compute-classpath.sh of https://github.com/apache/incubator-predictionio/pull/372 <https://github.com/apache/incubator-predictionio/pull/372> may have caused pio commands to fail?
>
> Best,
> Chan
>
> On Thu, May 25, 2017 at 10:42 PM, Chan Lee <chanlee514@gmail.com <ma...@gmail.com>> wrote:
> Hi Mars,
>
> I'm not sure what the cause of the error is but adding the --verbose option may help debug. Also, I've noticed that the host in the postgres URL for the output (jdbc:postgresql://postgres/pio) is different from the one in config/pio-env.sh (localhost/$hostport). Hope this helps.
>
> Best,
> Chan
>
>
> On Thu, May 25, 2017 at 6:07 PM, Mars Hall <mars@heroku.com <ma...@heroku.com>> wrote:
> Hi PIO users 🐸
>
> I've got this engine that cannot find its Postgres JDBC driver. Common conundrum! I solved this problem dozens of times with PIO, but this one stumps me.
>
> It comes from `pio status`, as opposed to `pio train`:
>
> > $ ./PredictionIO-dist/bin/pio status
> >   [INFO] [Management$] Inspecting PredictionIO...
> >   [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at /app/pio-engine/PredictionIO-dist
> >   [INFO] [Management$] Inspecting Apache Spark...
> >   [INFO] [Management$] Apache Spark is installed at /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop
> >   [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum requirement of 1.3.0)
> >   [INFO] [Management$] Inspecting storage backend connections...
> >   [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)...
> >   [ERROR] [Management$] Unable to connect to all storage backends successfully.
> >   The following shows the error message from the storage backend.
> >
> >   No suitable driver found for jdbc:postgresql://postgres/pio (java.sql.SQLException)
> >
> >   Dumping configuration of initialized storage backend sources.
> >   Please make sure they are correct.
> >
> >   Source Name: PGSQL; Type: jdbc; Configuration: URL -> jdbc:postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio, USERNAME -> pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled
>
>
> I've added a debug output to `bin/pio-class` to reveal what's running (e.g. classpath); multi-line formatting added by me:
>
> > exec java \
> >   -cp /app/pio-engine/PredictionIO-dist/conf:\
> >     /app/pio-engine/PredictionIO-dist/plugins/*:\
> >     /app/pio-engine/PredictionIO-dist/lib/spark/*:\
> >     /app/pio-engine/PredictionIO-dist/lib/pio-assembly-0.11.0-incubating.jar:\
> >     /app/pio-engine/PredictionIO-dist/conf:\
> >     /app/pio-engine/PredictionIO-dist/conf:\
> >     /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar \
> >   -Dpio.log.dir=/root \
> >   org.apache.predictionio.tools.console.Console \
> >   status \
> >   --pio-home /app/pio-engine/PredictionIO-dist
>
>
>
> Verified that the Postgres JDBC jar file exists & is readable by the current user:
>
> > ls -hal /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar
> >   -rw-r--r-- 1 root       root 674K May 26 00:57 postgresql_jdbc.jar
>
>
>
> Is there something else that would cause that "No suitable driver" error when something else is really wrong?
>
>
> Context:
> This is building on Ubuntu 14.04.5 LTS with docker-compose on TravisCI for the Heroku buildpack: https://github.com/heroku/predictionio-buildpack/pull/36 <https://github.com/heroku/predictionio-buildpack/pull/36>
>
> This same setup works fine elsewhere, finds that JDBC driver, both on Heroku and local macOS. The build also used to work fine with PredictionIO 0.10.0-incubating. Trying to upgrade everything to 0.11.0!
>
> *Mars
>
> ( <> .. <> )
>
>
>


Re: Perplexed by "No suitable driver"

Posted by Mars Hall <ma...@heroku.com>.
Hi Chan,

Thanks for taking a look. This is running the release version of PredictionIO 0.11.0-incubating, not the Authenticated Elasticsearch branch/PR you mentioned w/ those classpath revisions.

Here it is with the `--verbose` flag, which made some ConnectionPool loglines appear:

> $ pio status --verbose
>   [INFO] [Management$] Inspecting PredictionIO...
>   [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at /app/pio-engine/PredictionIO-dist
>   [INFO] [Management$] Inspecting Apache Spark...
>   [INFO] [Management$] Apache Spark is installed at /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop
>   [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum requirement of 1.3.0)
>   [INFO] [Management$] Inspecting storage backend connections...
>   [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)...
>   [DEBUG] [ConnectionPool$] Registered connection pool : ConnectionPool(url:jdbc:postgresql://postgres/pio, user:pio) using factory : <default>
>   [DEBUG] [ConnectionPool$] Registered singleton connection pool : ConnectionPool(url:jdbc:postgresql://postgres/pio, user:pio)
>   [ERROR] [Management$] Unable to connect to all storage backends successfully.
>   The following shows the error message from the storage backend.
>   
>   No suitable driver found for jdbc:postgresql://postgres/pio (java.sql.SQLException)
>   
>   Dumping configuration of initialized storage backend sources.
>   Please make sure they are correct.
>   
>   Source Name: PGSQL; Type: jdbc; Configuration: URL -> jdbc:postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio, USERNAME -> pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled



*Mars

( <> .. <> )

> On May 26, 2017, at 05:17, Chan Lee <ch...@gmail.com> wrote:
> 
> Actually, if this is a problem occurring only with docker-compose and travis, I think this may be the issue:
> 
> https://github.com/apache/incubator-predictionio/blob/develop/tests/build_docker.sh#L42-L45 puts the main assembly jar to assembly/, and data assembly jars to lib/spark (instead of assembly/spark, which I think is rather confusing)
> 
> Maybe the change in compute-classpath.sh of https://github.com/apache/incubator-predictionio/pull/372 may have caused pio commands to fail?
> 
> Best,
> Chan
> 
> On Thu, May 25, 2017 at 10:42 PM, Chan Lee <ch...@gmail.com> wrote:
> Hi Mars,
> 
> I'm not sure what the cause of the error is but adding the --verbose option may help debug. Also, I've noticed that the host in the postgres URL for the output (jdbc:postgresql://postgres/pio) is different from the one in config/pio-env.sh (localhost/$hostport). Hope this helps.
> 
> Best,
> Chan
> 
> 
> On Thu, May 25, 2017 at 6:07 PM, Mars Hall <ma...@heroku.com> wrote:
> Hi PIO users 🐸
> 
> I've got this engine that cannot find its Postgres JDBC driver. Common conundrum! I solved this problem dozens of times with PIO, but this one stumps me.
> 
> It comes from `pio status`, as opposed to `pio train`:
> 
> > $ ./PredictionIO-dist/bin/pio status
> >   [INFO] [Management$] Inspecting PredictionIO...
> >   [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at /app/pio-engine/PredictionIO-dist
> >   [INFO] [Management$] Inspecting Apache Spark...
> >   [INFO] [Management$] Apache Spark is installed at /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop
> >   [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum requirement of 1.3.0)
> >   [INFO] [Management$] Inspecting storage backend connections...
> >   [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)...
> >   [ERROR] [Management$] Unable to connect to all storage backends successfully.
> >   The following shows the error message from the storage backend.
> >
> >   No suitable driver found for jdbc:postgresql://postgres/pio (java.sql.SQLException)
> >
> >   Dumping configuration of initialized storage backend sources.
> >   Please make sure they are correct.
> >
> >   Source Name: PGSQL; Type: jdbc; Configuration: URL -> jdbc:postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio, USERNAME -> pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled
> 
> 
> I've added a debug output to `bin/pio-class` to reveal what's running (e.g. classpath); multi-line formatting added by me:
> 
> > exec java \
> >   -cp /app/pio-engine/PredictionIO-dist/conf:\
> >     /app/pio-engine/PredictionIO-dist/plugins/*:\
> >     /app/pio-engine/PredictionIO-dist/lib/spark/*:\
> >     /app/pio-engine/PredictionIO-dist/lib/pio-assembly-0.11.0-incubating.jar:\
> >     /app/pio-engine/PredictionIO-dist/conf:\
> >     /app/pio-engine/PredictionIO-dist/conf:\
> >     /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar \
> >   -Dpio.log.dir=/root \
> >   org.apache.predictionio.tools.console.Console \
> >   status \
> >   --pio-home /app/pio-engine/PredictionIO-dist
> 
> 
> 
> Verified that the Postgres JDBC jar file exists & is readable by the current user:
> 
> > ls -hal /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar
> >   -rw-r--r-- 1 root       root 674K May 26 00:57 postgresql_jdbc.jar
> 
> 
> 
> Is there something else that would cause that "No suitable driver" error when something else is really wrong?
> 
> 
> Context:
> This is building on Ubuntu 14.04.5 LTS with docker-compose on TravisCI for the Heroku buildpack: https://github.com/heroku/predictionio-buildpack/pull/36
> 
> This same setup works fine elsewhere, finds that JDBC driver, both on Heroku and local macOS. The build also used to work fine with PredictionIO 0.10.0-incubating. Trying to upgrade everything to 0.11.0!
> 
> *Mars
> 
> ( <> .. <> )
> 
> 
> 


Re: Perplexed by "No suitable driver"

Posted by Chan Lee <ch...@gmail.com>.
Actually, if this is a problem occurring only with docker-compose and
travis, I think this may be the issue:

https://github.com/apache/incubator-predictionio/blob/develop/tests/build_docker.sh#L42-L45
puts
the main assembly jar to assembly/, and data assembly jars to lib/spark
(instead of assembly/spark, which I think is rather confusing)

Maybe the change in compute-classpath.sh of
https://github.com/apache/incubator-predictionio/pull/372
<https://github.com/apache/incubator-predictionio/pull/372/files#diff-73058f8e51951ec0b4cb3d48ade91a1f>
may
have caused pio commands to fail?

Best,
Chan

On Thu, May 25, 2017 at 10:42 PM, Chan Lee <ch...@gmail.com> wrote:

> Hi Mars,
>
> I'm not sure what the cause of the error is but adding the --verbose
> option may help debug. Also, I've noticed that the host in the postgres URL
> for the output (jdbc:postgresql://*postgres*/pio) is different from the
> one in config/pio-env.sh (localhost/$hostport). Hope this helps.
>
> Best,
> Chan
>
>
> On Thu, May 25, 2017 at 6:07 PM, Mars Hall <ma...@heroku.com> wrote:
>
>> Hi PIO users 🐸
>>
>> I've got this engine that cannot find its Postgres JDBC driver. Common
>> conundrum! I solved this problem dozens of times with PIO, but this one
>> stumps me.
>>
>> It comes from `pio status`, as opposed to `pio train`:
>>
>> > $ ./PredictionIO-dist/bin/pio status
>> >   [INFO] [Management$] Inspecting PredictionIO...
>> >   [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at
>> /app/pio-engine/PredictionIO-dist
>> >   [INFO] [Management$] Inspecting Apache Spark...
>> >   [INFO] [Management$] Apache Spark is installed at
>> /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop
>> >   [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum
>> requirement of 1.3.0)
>> >   [INFO] [Management$] Inspecting storage backend connections...
>> >   [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)...
>> >   [ERROR] [Management$] Unable to connect to all storage backends
>> successfully.
>> >   The following shows the error message from the storage backend.
>> >
>> >   No suitable driver found for jdbc:postgresql://postgres/pio
>> (java.sql.SQLException)
>> >
>> >   Dumping configuration of initialized storage backend sources.
>> >   Please make sure they are correct.
>> >
>> >   Source Name: PGSQL; Type: jdbc; Configuration: URL ->
>> jdbc:postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio, USERNAME
>> -> pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled
>>
>>
>> I've added a debug output to `bin/pio-class` to reveal what's running
>> (e.g. classpath); multi-line formatting added by me:
>>
>> > exec java \
>> >   -cp /app/pio-engine/PredictionIO-dist/conf:\
>> >     /app/pio-engine/PredictionIO-dist/plugins/*:\
>> >     /app/pio-engine/PredictionIO-dist/lib/spark/*:\
>> >
>>  /app/pio-engine/PredictionIO-dist/lib/pio-assembly-0.11.0-incubating.jar:\
>> >     /app/pio-engine/PredictionIO-dist/conf:\
>> >     /app/pio-engine/PredictionIO-dist/conf:\
>> >     /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar \
>> >   -Dpio.log.dir=/root \
>> >   org.apache.predictionio.tools.console.Console \
>> >   status \
>> >   --pio-home /app/pio-engine/PredictionIO-dist
>>
>>
>>
>> Verified that the Postgres JDBC jar file exists & is readable by the
>> current user:
>>
>> > ls -hal /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar
>> >   -rw-r--r-- 1 root       root 674K May 26 00:57 postgresql_jdbc.jar
>>
>>
>>
>> Is there something else that would cause that "No suitable driver" error
>> when something else is really wrong?
>>
>>
>> Context:
>> This is building on Ubuntu 14.04.5 LTS with docker-compose on TravisCI
>> for the Heroku buildpack:
>> https://github.com/heroku/predictionio-buildpack/pull/36
>>
>> This same setup works fine elsewhere, finds that JDBC driver, both on
>> Heroku and local macOS. The build also used to work fine with PredictionIO
>> 0.10.0-incubating. Trying to upgrade everything to 0.11.0!
>>
>> *Mars
>>
>> ( <> .. <> )
>>
>>
>

Re: Perplexed by "No suitable driver"

Posted by Chan Lee <ch...@gmail.com>.
Hi Mars,

I'm not sure what the cause of the error is but adding the --verbose option
may help debug. Also, I've noticed that the host in the postgres URL for
the output (jdbc:postgresql://*postgres*/pio) is different from the one in
config/pio-env.sh (localhost/$hostport). Hope this helps.

Best,
Chan


On Thu, May 25, 2017 at 6:07 PM, Mars Hall <ma...@heroku.com> wrote:

> Hi PIO users 🐸
>
> I've got this engine that cannot find its Postgres JDBC driver. Common
> conundrum! I solved this problem dozens of times with PIO, but this one
> stumps me.
>
> It comes from `pio status`, as opposed to `pio train`:
>
> > $ ./PredictionIO-dist/bin/pio status
> >   [INFO] [Management$] Inspecting PredictionIO...
> >   [INFO] [Management$] PredictionIO 0.11.0-incubating is installed at
> /app/pio-engine/PredictionIO-dist
> >   [INFO] [Management$] Inspecting Apache Spark...
> >   [INFO] [Management$] Apache Spark is installed at
> /app/pio-engine/PredictionIO-dist/vendors/spark-hadoop
> >   [INFO] [Management$] Apache Spark 2.1.0 detected (meets minimum
> requirement of 1.3.0)
> >   [INFO] [Management$] Inspecting storage backend connections...
> >   [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)...
> >   [ERROR] [Management$] Unable to connect to all storage backends
> successfully.
> >   The following shows the error message from the storage backend.
> >
> >   No suitable driver found for jdbc:postgresql://postgres/pio
> (java.sql.SQLException)
> >
> >   Dumping configuration of initialized storage backend sources.
> >   Please make sure they are correct.
> >
> >   Source Name: PGSQL; Type: jdbc; Configuration: URL ->
> jdbc:postgresql://postgres/pio, PARTITIONS -> 4, PASSWORD -> pio,
> USERNAME -> pio, CONNECTIONS -> 8, TYPE -> jdbc, INDEX -> enabled
>
>
> I've added a debug output to `bin/pio-class` to reveal what's running
> (e.g. classpath); multi-line formatting added by me:
>
> > exec java \
> >   -cp /app/pio-engine/PredictionIO-dist/conf:\
> >     /app/pio-engine/PredictionIO-dist/plugins/*:\
> >     /app/pio-engine/PredictionIO-dist/lib/spark/*:\
> >     /app/pio-engine/PredictionIO-dist/lib/pio-assembly-0.11.0-
> incubating.jar:\
> >     /app/pio-engine/PredictionIO-dist/conf:\
> >     /app/pio-engine/PredictionIO-dist/conf:\
> >     /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar \
> >   -Dpio.log.dir=/root \
> >   org.apache.predictionio.tools.console.Console \
> >   status \
> >   --pio-home /app/pio-engine/PredictionIO-dist
>
>
>
> Verified that the Postgres JDBC jar file exists & is readable by the
> current user:
>
> > ls -hal /app/pio-engine/PredictionIO-dist/lib/postgresql_jdbc.jar
> >   -rw-r--r-- 1 root       root 674K May 26 00:57 postgresql_jdbc.jar
>
>
>
> Is there something else that would cause that "No suitable driver" error
> when something else is really wrong?
>
>
> Context:
> This is building on Ubuntu 14.04.5 LTS with docker-compose on TravisCI for
> the Heroku buildpack: https://github.com/heroku/
> predictionio-buildpack/pull/36
>
> This same setup works fine elsewhere, finds that JDBC driver, both on
> Heroku and local macOS. The build also used to work fine with PredictionIO
> 0.10.0-incubating. Trying to upgrade everything to 0.11.0!
>
> *Mars
>
> ( <> .. <> )
>
>