Πώς να δημιουργήσετε μια μηχανή προτάσεων χρησιμοποιώντας τον διακομιστή εκμάθησης μηχανών εκμάθησης του Apache's Prediction IO

Αυτή η ανάρτηση θα σας καθοδηγήσει στην εγκατάσταση του διακομιστή μηχανικής εκμάθησης Apache Prediction IO. Θα χρησιμοποιήσουμε ένα από τα πρότυπα του που ονομάζεται Σύσταση για να δημιουργήσουμε μια λειτουργική μηχανή πρότασης. Το τελικό προϊόν θα μπορεί να προτείνει προσαρμοσμένα προϊόντα ανάλογα με την αγοραστική συμπεριφορά ενός συγκεκριμένου χρήστη.

Το πρόβλημα

Έχετε πολλά δεδομένα και πρέπει να προβλέψετε με ακρίβεια κάτι ώστε να μπορείτε να βοηθήσετε την επιχείρησή σας να αυξήσει τις πωλήσεις της, να αυξήσει τους πελάτες, να αυξήσει τα κέρδη, να αυξήσει τη μετατροπή ή ό, τι χρειάζεται η επιχείρηση.

Τα συστήματα προτάσεων είναι πιθανώς το πρώτο βήμα που όλοι κάνουν προς την εφαρμογή της επιστήμης δεδομένων και της μηχανικής μάθησης. Οι μηχανές προτάσεων χρησιμοποιούν δεδομένα ως είσοδο και εκτελούν τους αλγόριθμους τους. Στη συνέχεια, εξάγουν μοντέλα από τα οποία μπορούμε να κάνουμε προβλέψεις σχετικά με το τι πρόκειται πραγματικά να αγοράσει ένας χρήστης ή τι μπορεί να αρέσει ή να μην αντιπαθεί ένας χρήστης.

Εισαγάγετε Πρόβλεψη IO

"Το Apache PredictionIO (incubating) είναι ένας διακομιστής Machine Learning ανοιχτού κώδικα, χτισμένος πάνω από μια υπερσύγχρονη στοίβα ανοιχτού κώδικα για προγραμματιστές και οι επιστήμονες δεδομένων δημιουργούν μηχανισμούς πρόβλεψης για οποιαδήποτε εργασία μηχανικής μάθησης." - Τεκμηρίωση Apache Prediction IO

Η πρώτη ματιά στην τεκμηρίωση με κάνει να νιώθω καλά γιατί μου δίνει πρόσβαση σε μια ισχυρή τεχνολογική στοίβα για την επίλυση προβλημάτων μηχανικής μάθησης. Το πιο ενδιαφέρον είναι ότι το Prediction IO παρέχει πρόσβαση σε πολλά πρότυπα, τα οποία είναι χρήσιμα για την επίλυση των πραγματικών προβλημάτων.

Η συλλογή προτύπων αποτελείται από πολλά πρότυπα για σύσταση, ταξινόμηση, παλινδρόμηση, επεξεργασία φυσικής γλώσσας και πολλά άλλα. Χρησιμοποιεί τεχνολογία όπως το Apache Hadoop, το Apache Spark, το ElasticSearch και το Apache Hbase για να κάνει το διακομιστή μηχανικής εκμάθησης κλιμακωτό και αποδοτικό. Δεν πρόκειται να μιλήσω πολύ για το Prediction IO, γιατί μπορείτε να το κάνετε μόνοι σας εδώ.

Επιστροφή λοιπόν στο πρόβλημα: Έχω μια δέσμη δεδομένων από ιστορικά αγορών χρηστών, τα οποία αποτελούνται από user_id, product_id και dibeli_date. Χρησιμοποιώντας αυτά, πρέπει να κάνω μια προσαρμοσμένη πρόβλεψη / πρόταση στον χρήστη. Λαμβάνοντας υπόψη αυτό το πρόβλημα, θα χρησιμοποιήσουμε ένα Πρότυπο σύστασης με διακομιστή Prediction IO Machine Learning. Θα χρησιμοποιήσουμε τον διακομιστή συμβάντων Prediction IO καθώς και τη μαζική εισαγωγή δεδομένων.

Ας προχωρήσουμε λοιπόν. (Σημείωση: Αυτός ο οδηγός προϋποθέτει ότι χρησιμοποιείτε το σύστημα Ubuntu για την εγκατάσταση)

Βήμα 1: Λήψη Apache Prediction IO

Μεταβείτε στον αρχικό κατάλογο του τρέχοντος χρήστη σας και κάντε λήψη του τελευταίου 0.10.0 Prediction IO apache incubator. Υποθέτω ότι βρίσκεστε στο επόμενο dir(/home/you/)

git clone [email protected]:apache/incubator-predictionio.git

Τώρα μεταβείτε στον κατάλογο « incubator-predictionio» όπου έχουμε κλωνοποιήσει το Prediction IO repo. Εάν το έχετε κλωνοποιήσει σε διαφορετικό κατάλογο, βεβαιωθείτε ότι βρίσκεστε εντός αυτού του dir στο τερματικό σας.

Τώρα ας δούμε την τρέχουσα σταθερή έκδοση του Prediction IO που είναι 0.10.0

cd incubator-predictionio # or any dir where you have cloned pio.git checkout release/0.10.0

Βήμα 2: Ας κάνουμε μια κατανομή της πρόβλεψης IO

./make-distribution.sh

Εάν όλα πήγαν εντάξει, τότε θα λάβετε αυτό το μήνυμα στην κονσόλα σας:

Ωστόσο, εάν συναντήσατε κάτι τέτοιο:

τότε θα πρέπει να αφαιρέσετε .ivy2dir στον αρχικό σας κατάλογο, από προεπιλογή αυτός ο φάκελος είναι κρυμμένος. Πρέπει να το αφαιρέσετε εντελώς και στη συνέχεια να εκτελέσετε ./make-distribution.shξανά το build για να δημιουργήσετε με επιτυχία ένα αρχείο διανομής.

Προσωπικά έχω αντιμετωπίσει αυτό το ζήτημα πολλές φορές, αλλά δεν είμαι σίγουρος ότι αυτός είναι ο έγκυρος τρόπος για να αντιμετωπίσετε αυτό το πρόβλημα. Αλλά η αφαίρεση του .ivy2φακέλου και η εκτέλεση της εντολής make-distribution λειτουργεί.

Βήμα # 3: Εξαγωγή του αρχείου διανομής

Μετά την επιτυχή έκδοση, θα έχουμε ένα όνομα αρχείου που ονομάζεται PredictionIO-0.10.0-incubating.tar.gz στον κατάλογο όπου δημιουργήσαμε το Prediction IO. Τώρα ας το εξαγάγουμε σε έναν κατάλογο που ονομάζεται pio.

mkdir ~/piotar zxvf PredictionIO-0.10.0-incubating.tar.gz -C ~/pio

Βεβαιωθείτε ότι το όνομα αρχείου tar.gz ταιριάζει με το αρχείο διανομής που έχετε μέσα στον αρχικό κατάλογο predictionIo. Εάν ξεχάσατε να δείτε την έκδοση 0.10.0 του Prediction IO, σίγουρα θα λάβετε ένα διαφορετικό όνομα αρχείου, επειδή από προεπιλογή η έκδοση θα είναι η πιο πρόσφατη.

Βήμα # 4: Προετοιμασία για λήψη εξαρτήσεων

cd ~/pio
#Let’s make a vendors folder inside ~/pio/PredictionIO-0.10.0-incubating where we will save hadoop, elasticsearch and hbase.
mkdir ~/pio/PredictionIO-0.10.0-incubating/vendors

Βήμα # 5: Λήψη και ρύθμιση του Spark

wget //d3kbcqa49mib13.cloudfront.net/spark-1.5.1-bin-hadoop2.6.tgz

Εάν ο τρέχων κατάλογός σας είναι ~/pioη εντολή θα πραγματοποιήσει λήψη του σπινθήρα μέσα στο pio dir. Τώρα ας το εξαγάγουμε. Ανάλογα με το πού το κατεβάσατε, ίσως θέλετε να αλλάξετε την παρακάτω εντολή.

tar zxvfC spark-1.5.1-bin-hadoop2.6.tgz PredictionIO-0.10.0-incubating/vendors
# This will extract the spark setup that we downloaded and put it inside the vendors folder of our fresh pio installation. 

Βεβαιωθείτε ότι το κάνατε mkdir PredictionIO-0.10.0-incubating/vendorsνωρίτερα.

Βήμα # 6: Λήψη & Ρύθμιση ElasticSearch

wget //download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.4.tar.gz
#Let’s extract elastic search inside vendors folder.
tar zxvfC elasticsearch-1.4.4.tar.gz PredictionIO-0.10.0-incubating/vendors

Βήμα # 7: Λήψη και εγκατάσταση του Hbase

wget //archive.apache.org/dist/hbase/hbase-1.0.0/hbase-1.0.0-bin.tar.gz
#Let’s extract it.
tar zxvfC hbase-1.0.0-bin.tar.gz PredictionIO-0.10.0-incubating/vendors

Τώρα ας επεξεργαστούμε το hbase-site.xmlγια να δείξουμε τη διαμόρφωση hbase προς τα δεξιά dir. Λαμβάνοντας υπόψη ότι είστε μέσα στο ~/piodir, θα μπορούσατε να πατήσετε αυτήν την εντολή και να επεξεργαστείτε το hbase conf.

nano PredictionIO-0.10.0-incubating/vendors/hbase-1.0.0/conf/hbase-site.xml

Αντικαταστήστε το μπλοκ διαμόρφωσης με την ακόλουθη διαμόρφωση.

  hbase.rootdir file:///home/you/pio/PredictionIO-0.10.0-incubating/vendors/hbase-1.0.0/data   hbase.zookeeper.property.dataDir /home/you/pio/PredictionIO-0.10.0-incubating/vendors/hbase-1.0.0/zookeeper 

Εδώ " εσείς" σημαίνει στον χρήστη σας dir, για παράδειγμα εάν το κάνετε όλα αυτά ως χρήστης "tom", τότε θα ήταν κάτι σαν το αρχείο :: /// home / tom /…

Βεβαιωθείτε ότι υπάρχουν τα σωστά αρχεία.

Τώρα ας ρυθμίσουμε το JAVA_HOME στο hbase-env.sh.

nano PredictionIO-0.10.0-incubating/vendors/hbase-1.0.0/conf/hbase-env.sh

If you’re unsure about which version of JDK you’re currently using, follow these step and make necessary changes if required.

We need Java SE Development Kit 7 or greater for Prediction IO to work. Now let’s make sure we’re using the right version by running:

sudo update-alternatives — config java

By default I’m using:

java -version
openjdk version “1.8.0_121”
OpenJDK Runtime Environment (build 1.8.0_121–8u121-b13–0ubuntu1.16.04.2-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

If you’re using below 1.7, then you should change the java config to use a version of java that is equal to 1.7 or greater. You can change that with the update-alternatives command as given above. In my case the command sudo update-alternatives -config java outputs something like this:

If you have any trouble setting this up, you can follow this link.

Now let’s export the JAVA_HOME path in the .bashrc file inside /home/you/pio.

Considering you’re on ~/pio dir, you could do this: nano .bashrc

Don’t forget to do source .bashrc after you set up the java home in the .bashrc.

Step #8: Configure the Prediction IO Environment

Now let’s configure pio.env.sh to give a final touch to our Prediction IO Machine learning server installation.

nano PredictionIO-0.10.0-incubating/conf/pio-env.sh

We’re not using ProsgesSQl or MySql for our event server, So let’s comment out that section and have a pio-env.sh something like this:

#!/usr/bin/env bash## Copy this file as pio-env.sh and edit it for your site's configuration.## Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreements. See the NOTICE file distributed with# this work for additional information regarding copyright ownership.# The ASF licenses this file to You under the Apache License, Version 2.0# (the "License"); you may not use this file except in compliance with# the License. You may obtain a copy of the License at## //www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.#
# PredictionIO Main Configuration## This section controls core behavior of PredictionIO. It is very likely that# you need to change these to fit your site.
# SPARK_HOME: Apache Spark is a hard dependency and must be configured.SPARK_HOME=$PIO_HOME/vendors/spark-1.5.1-bin-hadoop2.6
POSTGRES_JDBC_DRIVER=$PIO_HOME/lib/postgresql-9.4-1204.jdbc41.jarMYSQL_JDBC_DRIVER=$PIO_HOME/lib/mysql-connector-java-5.1.37.jar
# ES_CONF_DIR: You must configure this if you have advanced configuration for# your Elasticsearch setup. ES_CONF_DIR=$PIO_HOME/vendors/elasticsearch-1.4.4/conf
# HADOOP_CONF_DIR: You must configure this if you intend to run PredictionIO# with Hadoop 2. HADOOP_CONF_DIR=$PIO_HOME/vendors/spark-1.5.1-bin-hadoop2.6/conf
# HBASE_CONF_DIR: You must configure this if you intend to run PredictionIO# with HBase on a remote cluster. HBASE_CONF_DIR=$PIO_HOME/vendors/hbase-1.0.0/conf
# Filesystem paths where PredictionIO uses as block storage.PIO_FS_BASEDIR=$HOME/.pio_storePIO_FS_ENGINESDIR=$PIO_FS_BASEDIR/enginesPIO_FS_TMPDIR=$PIO_FS_BASEDIR/tmp
# PredictionIO Storage Configuration## This section controls programs that make use of PredictionIO's built-in# storage facilities. Default values are shown below.## For more information on storage configuration please refer to# //predictionio.incubator.apache.org/system/anotherdatastore/
# Storage Repositories
# Default is to use PostgreSQLPIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_metaPIO_STORAGE_REPOSITORIES_METADATA_SOURCE=ELASTICSEARCH
PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_eventPIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=HBASE
PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_modelPIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=LOCALFS
# Storage Data Sources
# PostgreSQL Default Settings# Please change "pio" to your database name in PIO_STORAGE_SOURCES_PGSQL_URL# Please change PIO_STORAGE_SOURCES_PGSQL_USERNAME and# PIO_STORAGE_SOURCES_PGSQL_PASSWORD accordingly# PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc# PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio# PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio# PIO_STORAGE_SOURCES_PGSQL_PASSWORD=root
# MySQL Example# PIO_STORAGE_SOURCES_MYSQL_TYPE=jdbc# PIO_STORAGE_SOURCES_MYSQL_URL=jdbc:mysql://localhost/pio# PIO_STORAGE_SOURCES_MYSQL_USERNAME=root# PIO_STORAGE_SOURCES_MYSQL_PASSWORD=root
# Elasticsearch Example PIO_STORAGE_SOURCES_ELASTICSEARCH_TYPE=elasticsearch PIO_STORAGE_SOURCES_ELASTICSEARCH_CLUSTERNAME=firstcluster PIO_STORAGE_SOURCES_ELASTICSEARCH_HOSTS=localhost PIO_STORAGE_SOURCES_ELASTICSEARCH_PORTS=9300 PIO_STORAGE_SOURCES_ELASTICSEARCH_HOME=$PIO_HOME/vendors/elasticsearch-1.4.4
# ocal File System ExamplePIO_STORAGE_SOURCES_LOCALFS_TYPE=localfsPIO_STORAGE_SOURCES_LOCALFS_PATH=$PIO_FS_BASEDIR/models
# HBase ExamplePIO_STORAGE_SOURCES_HBASE_TYPE=hbasePIO_STORAGE_SOURCES_HBASE_HOME=$PIO_HOME/vendors/hbase-1.0.0

Step #9: Configure cluster name in ElasticSearch config

Since this line PIO_STORAGE_SOURCES_ELASTICSEARCH_CLUSTERNAME=firstcluster points to our cluster name in the ElasticSearch configuration, let’s replace a default cluster name in ElasticSearch configuration.

nano PredictionIO-0.10.0-incubating/vendors/elasticsearch-1.4.4/config/elasticsearch.yml

Step #10: Export The Prediction IO Path

Let’s now export the Prediction IO path so we could freely use the pio command without pointing to it’s bin every time. Run the following command in your terminal:

PATH=$PATH:/home/you/pio/PredictionIO-0.10.0-incubating/bin; export PATH

Step #11: Give Permission To Prediction IO Installation

sudo chmod -R 775 ~/pio

Αυτό είναι ζωτικής σημασίας επειδή εάν δεν δώσαμε άδεια στο φάκελο pio, η διαδικασία Prediction IO δεν θα είναι σε θέση να γράψει αρχεία καταγραφής.

Βήμα # 12: Ξεκινήστε το Prediction IO Server

Τώρα είμαστε έτοιμοι να ξεκινήσουμε, ας ξεκινήσουμε τον διακομιστή Prediction IO. Πριν εκτελέσετε αυτήν την εντολή, βεβαιωθείτε ότι έχετε εξαγάγει τη διαδρομή pio που περιγράφεται παραπάνω.

pio-start-all
#if you forgot to export the pio path, it won't work and you manually have to point the pio bin path. 

Εάν όλα είναι εντάξει σε αυτό το σημείο, θα δείτε την έξοδο κάπως έτσι.

Σημείωση: Εάν ξεχάσετε να δώσετε άδεια τότε, θα υπάρξουν προβλήματα κατά τη σύνταξη αρχείων καταγραφής και εάν η διαδρομή JAVA_HOME είναι λανθασμένη, το HBASE δεν θα ξεκινήσει σωστά και θα σας δώσει το σφάλμα.

Βήμα # 13: Επαληθεύστε τη διαδικασία

Τώρα ας επαληθεύσουμε την εγκατάστασή μας με pio status, εάν όλα είναι εντάξει, θα έχετε μια έξοδο όπως αυτή:

Εάν αντιμετωπίσετε σφάλμα στο Hbase ή σε οποιοδήποτε άλλο χώρο αποθήκευσης backend, βεβαιωθείτε ότι όλα ξεκίνησαν σωστά.

Our Prediction IO Server is ready to implement the template now.

Implementing the Recommendation Engine

A recommendation engine template is a Prediction IO engine template that uses collaborative filtering to make personalized recommendation to the user. It uses can be in E-commerce site, news site, or any application that collects user histories of event to give a personalized experiences to the user.

We’ll implement this template in Prediction IO with few eCommerce user data, just to do an sample experiment with Prediction IO machine learning server.

Now let’s back to our home dir cd ~

Step #14: Download the Recommendation Template

pio template get apache/incubator-predictionio-template-recommender MyRecommendation

It will ask for company name and author name, input subsequently, now we have a MyRecommendation Template inside our home dir. Just a reminder: you can put the template anywhere you want.

#15. Create Our First Prediction IO App

Now let’s go inside the MyRecommendation dir cd MyRecommendation

After you’re inside the template dir, let’s create our first Prediction IO app called ourrecommendation.

You will get output like this. Please remember that you can give any name to your app, but for this example I’ll be using the app name ourrecommendation.

pio app new ourrecommendation

This command will output something like this:

Let’s verify that our new app is there with this command:

pio app list

Now our app should be listed in the list.

Step #16: Import Some Sample Data

Let’s download the sample-data from gist, and put that inside importdata folder inside MyRecommendation folder.

mkdir importdata

Copy the sample-data.json file that you just created inside the importdata folder.

Finally let’s import the data inside our ourrecommendation app. Considering you’re inside the MyRecommendation dir you can do this to batch import the events.

pio import — appid 1 — input importdata/data-sample.json

(Note: make sure the appid of ourrecommendation is same as of your appid that you just provided)

Step #17: Build The App

Before building the app, let’s edit engine.json file inside the MyRecommendation directory to replicate our app name inside it. It should look something like this:

Note: Don’t copy this, just change the “appName” in your engine.json.

{ "id": "default", "description": "Default settings", "engineFactory": "orgname.RecommendationEngine", "datasource": { "params" : { "appName": "ourrecommendation" } }, "algorithms": [ { "name": "als", "params": { "rank": 10, "numIterations": 5, "lambda": 0.01, "seed": 3 } } ]}

Note: the “engineFactory” will be automatically generated when you pull the template in our step 14, so you don’t have to change that. In my case, it’s my orgname, which I put in the terminal prompt during installation of the template. In you engine.json you just need to modify the appName, please don’t change anything else in there.

In the same dir where our MyRecommendation engine template lies, let’s run this pio command to build our app.

pio build

(Note: if you wanna see all the messages during the building process, you can run this pio build — verbose)

It can take sometimes to build our app, since this is the first time. From next time it takes less time. You should get an output like this:

Our engine is now ready to train our data.

Step #18: Train The dataset

pio train

If you get an error like the one below in the middle of the training, then you may have to change number of iterations inside your engine.json and rebuild the app.

Let’s change the numItirations in engine.json which is by default 20 to 5:

“numIterations”: 5,

Τώρα ας φτιάξουμε την εφαρμογή pio build, και πάλι pio train. Η εκπαίδευση πρέπει να ολοκληρωθεί με επιτυχία. Μετά την ολοκλήρωση της προπόνησης θα λάβετε το μήνυμα ως εξής:

Λάβετε υπόψη ότι αυτή η εκπαίδευση λειτουργεί μόνο για μικρά δεδομένα, αν ωστόσο θέλετε να δοκιμάσετε με μεγάλο σύνολο δεδομένων, τότε θα πρέπει να δημιουργήσουμε έναν αυτόνομο σπινθήρα για να ολοκληρώσετε την εκπαίδευση. (Θα γράψω για αυτό σε μελλοντική ανάρτηση.)

Βήμα # 19: Ανάπτυξη και προβολή της πρόβλεψης

pio deploy#by default it will take 8000 port.

Τώρα θα εκτελεστεί η πρόβλεψη του διακομιστή io.

Σημείωση: για να το κρατήσω απλό, δεν συζητάω για το διακομιστή συμβάντων σε αυτήν την ανάρτηση, καθώς μπορεί να πάρει ακόμη περισσότερο, επομένως εστιάζουμε στην απλή περίπτωση χρήσης του Prediction IO.

Τώρα ας πάρουμε την πρόβλεψη χρησιμοποιώντας μπούκλα.

Ανοίξτε ένα νέο τερματικό και πατήστε:

curl -H “Content-Type: application/json” \-d ‘{ “user”: “user1”, “num”: 4 }’ //localhost:8000/queries.json

In the above query, the user signifies to the user_id in our event data, and the num means, how many recommendation we want to get.

Now you will get the result like this:

{"itemScores":[{"item":"product5","score":3.9993937903501093},{"item":"product101","score":3.9989989282500904},{"item":"product30","score":3.994934059438341},{"item":"product98","score":3.1035806376677866}]}

That’s it! Great Job. We’re done. But wait, what’s next?

  • Next we will use spark standalone cluster to train large dataset (believe me, its easy, if you wanna do it right now, you could follow the documenation in Prediction IO)
  • We will use Universal Recommender from Action ML to build a recommendation engine.

Important Notes:

  • The template we used uses ALS algorithm with explicit feedback, however you can easily switch to implicit depending upon your need.
  • If you’re curious about Prediction IO and want to learn more you can do that on the Prediction IO official site.
  • If your Java version is not suitable for Prediction IO specification, then you are sure to run into problems. So make sure you configure this first.
  • Don’t run any of the commands described above with sudo except to give permission. Otherwise you will run into problems.
  • Make sure your java path is correct, and make sure to export the Prediction IO path. You might want to add the Prediction IO path to your .bashrc or profile as well depending upon your need.

Update 2017/07/14: Using Spark To Train Real Data Sets

We have the spark installed inside our vendors folders, with our current installation, our spark bin in the following dir.

~/pio/PredictionIO-0.10.0-incubating/vendors/spark-1.5.1-bin-hadoop2.6/sbin

From there we have to setup a spark primary and replica to execute our model training to accomplish it faster. If your training seems to stuck we can use the spark options to accomplish the training tasks.

# Ξεκινήστε το Spark primer

~/pio/PredictionIO-0.10.0-incubating/vendors/spark-1.5.1-bin-hadoop2.6/sbin/start-master.sh

Αυτό θα ξεκινήσει το πρωτεύον σπινθήρα. Τώρα ας περιηγηθούμε στο UI ιστού του πρωτογενούς σπινθήρα μεταβαίνοντας στο // localhost: 8080 / στο πρόγραμμα περιήγησης.

Τώρα ας αντιγράψουμε το πρωτεύον url για να ξεκινήσουμε το ρεπλίκα. Στην περίπτωσή μας, το πρωτεύον URL σπινθήρας είναι κάτι τέτοιο:

σπινθήρας: // το μηχάνημά σας: 7077 (το μηχάνημά σας υποδηλώνει το όνομα του μηχανήματός σας)

~/pio/PredictionIO-0.10.0-incubating/vendors/spark-1.5.1-bin-hadoop2.6/sbin/start-slave.sh spark://your-machine:7077

Ο εργαζόμενος θα ξεκινήσει. Ανανεώστε το ui ui θα δείτε τον εγγεγραμμένο εργαζόμενο αυτή τη φορά. Τώρα ας ξαναρχίσουμε την εκπαίδευση.

pio train -- --master spark://localhost:7077 --driver-memory 4G --executor-memory 6G

Μεγάλος!

Ειδικές ευχαριστίες: Pat Ferrel From Action ML & Marius Rabenarivo