Action ML Logo

Table of contents

AWS AMI Setup Guide: Dev Machine

Note: after release of Apache PredictionIO 0.12.1 and The Universal Recommender v0.7.3 AWS will take some days to approve the new AMI. Until then the older version works but with none of the new features. Please bear with us as page reflects the previous version of the AMI until AWS updates it.

PredictionIO is now available to launch pre-installed on Amazon Web Services here. This guide will step through how to create an instance and use it.





You will need an ssh terminal that is compatible with OpenSSH. This is pre-installed on most desktop Linux Distributions and macOS. Windows users may use Putty but must convert Putty keys into OpenSSH compatible ones. Google "convert putty key to OpenSSH". For Windows users it is often useful to create a Virtual Machine with Linux running inside if only because you will be using the same commands on your dev machine as on the AWS instance.

Using your terminal where OpenSSH has been installed:

Start PredictionIO

To start the PredictionIO EventServer, which is the input gathering part of the system:

You can now look are the most recent output of the EventServer logs by looking at the end of the file nohup.out and pio.log. These will continue to accumulate logs so they will grow as long as the EventServer is running.

Run the System Test

The Universal Recommender is supplied as an example of an Apache PredictionIO template. It is one of the more popular ones but any template may be installed and run on this machine.

The test will run several stages that create an empty app/dataset, fill it with sample data, build the Universal Recommender, use it to create a model from the dataset, deploy a PredictionServer for UR queries, make a bunch of sample queries to test features, compare them to the expected results and print the differences, then shutdown the PredictionServer. No differences means the test passes.

The script examples/integration-test shows how to run all stages of PredictionIO and the Universal Recommender. examples/ shows how to use the Python SDK to send data to the EventServer. You can also use REST or any of the other language SDKs for PHP, Java, iOS, and Ruby. See the Apache PredicitonIO site for details. Go to "Integrating with Your App" —> "List of SDKs"

What Now?

Apache PredictionIO

You instance is supplied with Apache PredictionIO 0.12.1 so you can read instructions at the PIO site or, if you know PIO already, use commands from our PIO Cheatsheet. Warning: never us pio-start-all script since it will damage the already running setup, likewise never use pio-stop-all. These are never needed on this AWS AMI.

The Universal Recommender

To configure and use the Universal Recommender see the docs here. You have already run it in the integration test so it is all set up.

Other PIO Templates

Using Git you can download any of the Apache PredictionIO templates. These each contain a type of Machine Learning algorithm to accomplish some task. See the PIO Tempalate Gallery for some choices.


PredictionIO does no Machine Learning itself, it is a high performance scalable framework that does all the work like dataset storage and maintenance, model storage, command line interface and other things that all algorithms need. It provides an API that algorithms use to become a Template. The Template is where the Machine Learning happens so support for PIO is separate from the templates.

If you have questions about PredictionIO's functions look to the Apache PredictionIO support page.

The Universal Recommender and other ActionML templates, including this AWS AMI get free community support in the ActionML Google Group.

Commercial Support including Apache PredictionIO, customization of existing templates, integration with your apps, creating right-scaled deployments, or even help in maintaining and operating virtual private clouds, we at ActionML are happy to help. Contact us with your requirements or questions.