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
>
> ( <> .. <> )
>
>