predictionio-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mars Hall <m...@heroku.com>
Subject Re: Perplexed by "No suitable driver"
Date Fri, 26 May 2017 14:58:52 GMT
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> 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 <chanlee514@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> 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
> 
> ( <> .. <> )
> 
> 
> 


Mime
View raw message