Download and Start Docker
Docker is a widely used container solution. Please download and start Docker by following their guide.
Get PredictionIO and Dependencies Configuration
Starting from v0.13.0, Apache PredictionIO® starts to provide docker support for the production environment. Dockerfile
and dependencies configuration can be found in the docker
folder in the git repository.
1 2 | git clone https://github.com/apache/predictionio.git
cd predictionio/docker
|
Build Docker Image
To build PredictionIO docker image, Dockerfile
is provided in sub-directory pio
.
1 | docker build -t predictionio/pio pio |
One will be able to build an image with tag prediction/pio:latest
using the above command.
Pull Images and Start
In this repository, PostgreSQL, MySQL, ElasticSearch, and local file system are supported with their corresponding configuration.
Supported storages are as below:
Event Storage
- PostgreSQL, MySQL, Elasticsearch
Metadata Storage
- PostgreSQL, MySQL, Elasticsearch
Model Storage
- PostgreSQL, MySQL, LocalFS
One can use docker-compose -f
to pull and start the corresponding services. More details are provided in this document.
Service Starting Sample
1 2 3 4 5 6 | docker-compose -f docker-compose.yml \ -f pgsql/docker-compose.base.yml \ -f pgsql/docker-compose.meta.yml \ -f pgsql/docker-compose.event.yml \ -f pgsql/docker-compose.model.yml \ up |
In this examples, we pull and start predictionio/pio
image with docker-compose.yml
.
And pull postgres:9
image with pgsql/docker-compose.base.yml
.
And config PostgreSQL to store our metadata, event, and model with pgsql/docker-compose.meta.yml
, pgsql/docker-compose.event.yml
, and pgsql/docker-compose.model.yml
.
After pulling the images, the script will start PostgreSQL, Apache PredictionIO, and Apache Spark. The event server should be ready at port 7070
, and one should see these logs in the command line interface.
1 2 3 4 5 | ... pio_1 | [INFO] [Management$] Your system is all ready to go. pio_1 | [INFO] [Management$] Creating Event Server at 0.0.0.0:7070 pio_1 | [INFO] [HttpListener] Bound to /0.0.0.0:7070 pio_1 | [INFO] [EventServerActor] Bound received. EventServer is ready. |
Verifying Service
A command tool pio-docker
is provided to invoke pio
command in the PredictionIO container. Set pio-docker
to default execution path and use status
to check the current PredictionIO service with the following script.
1 2 | $ export PATH=`pwd`/bin:$PATH $ pio-docker status |
One should be able to see the corresponding log in the following structure, and your system is ready to go!
1 2 3 4 5 6 7 8 9 10 11 | [INFO] [Management$] Inspecting PredictionIO... [INFO] [Management$] PredictionIO 0.13.0 is installed at /usr/share/predictionio [INFO] [Management$] Inspecting Apache Spark... [INFO] [Management$] Apache Spark is installed at /usr/share/spark-2.2.2-bin-hadoop2.7 [INFO] [Management$] Apache Spark 2.2.2 detected (meets minimum requirement of 1.3.0) [INFO] [Management$] Inspecting storage backend connections... [INFO] [Storage$] Verifying Meta Data Backend (Source: PGSQL)... [INFO] [Storage$] Verifying Model Data Backend (Source: PGSQL)... [INFO] [Storage$] Verifying Event Data Backend (Source: PGSQL)... [INFO] [Storage$] Test writing to Event Store (App Id 0)... [INFO] [Management$] Your system is all ready to go. |
Community Docker Support
More PredictionIO Docker packages supported by our great community.