Εγκαταστήστε το Plesk στο CentOS 7
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Plesk είναι ένας ιδιόκτητος πίνακας ελέγχου web host που επιτρέπει στους χρήστες να διαχειρίζονται τους προσωπικούς ή/και τους πελάτες τους ιστότοπους, βάσεις δεδομένων
Οι παραδοσιακές προσεγγίσεις για την ανάλυση δεδομένων είναι αδύνατο να χρησιμοποιηθούν όταν τα σύνολα δεδομένων φτάνουν ένα συγκεκριμένο μέγεθος. Μια σύγχρονη εναλλακτική λύση για την ανάλυση των τεράστιων συνόλων δεδομένων είναι η χρήση μεθόδων μηχανικής εκμάθησης. Η μηχανική εκμάθηση είναι σε θέση να παράγει ακριβή αποτελέσματα όταν χρησιμοποιείται ένας γρήγορος και αποτελεσματικός αλγόριθμος.
Το Apache PredictionIO είναι ένας διακομιστής μηχανικής εκμάθησης ανοιχτού κώδικα που χρησιμοποιείται για τη δημιουργία μηχανών πρόβλεψης για οποιαδήποτε εργασία μηχανικής εκμάθησης. Μειώνει το χρόνο της εφαρμογής μηχανικής εκμάθησης από το εργαστήριο στην παραγωγή, χρησιμοποιώντας προσαρμόσιμα πρότυπα μηχανών που μπορούν να κατασκευαστούν και να αναπτυχθούν γρήγορα. Παρέχει τα στοιχεία συλλογής και εξυπηρέτησης δεδομένων και αποσπά την υποκείμενη τεχνολογία για να εκθέσει ένα API που επιτρέπει στους προγραμματιστές να επικεντρωθούν σε στοιχεία μετασχηματισμού. Μόλις ο διακομιστής μηχανής του PredictionIO αναπτυχθεί ως υπηρεσία web, μπορεί να απαντήσει σε δυναμικά ερωτήματα σε πραγματικό χρόνο.
Το Apache PredictionIO αποτελείται από διαφορετικά στοιχεία.
Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε 192.0.2.1
ως τη δημόσια διεύθυνση IP του διακομιστή. Αντικαταστήστε όλες τις εμφανίσεις 192.0.2.1
με τη δημόσια διεύθυνση IP του Vultr.
Ενημερώστε το βασικό σας σύστημα χρησιμοποιώντας τον οδηγό Πώς να ενημερώσετε το CentOS 7 . Μόλις το σύστημά σας ενημερωθεί, προχωρήστε στην εγκατάσταση Java.
Πολλά από τα στοιχεία του PredictionIO απαιτούν JDK, ή Java Development Kit, έκδοση 8 για να λειτουργήσουν. Υποστηρίζει τόσο OpenJDK όσο και Oracle Java. Σε αυτό το σεμινάριο, θα εγκαταστήσουμε την έκδοση 8 του OpenJDK.
Το OpenJDK μπορεί να εγκατασταθεί εύκολα, καθώς το πακέτο είναι διαθέσιμο στο προεπιλεγμένο αποθετήριο YUM.
sudo yum -y install java-1.8.0-openjdk-devel
Επαληθεύστε την έκδοση της Java για να βεβαιωθείτε ότι εγκαταστάθηκε σωστά.
java -version
Θα έχετε παρόμοια έξοδο.
[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
Προτού προχωρήσουμε περαιτέρω, θα χρειαστεί να ρυθμίσουμε τις μεταβλητές JAVA_HOME
και JRE_HOME
περιβάλλον. Βρείτε την απόλυτη διαδρομή του εκτελέσιμου JAVA στο σύστημά σας.
readlink -f $(which java)
Θα δείτε μια παρόμοια έξοδο.
[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre/bin/java
Τώρα, ορίστε JAVA_HOME
και JRE_HOME
μεταβλητή περιβάλλοντος σύμφωνα με τη διαδρομή του καταλόγου Java.
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre" >> ~/.bash_profile
Εκτελέστε το bash_profile
αρχείο.
source ~/.bash_profile
Τώρα μπορείτε να εκτελέσετε την echo $JAVA_HOME
εντολή για να ελέγξετε αν έχει οριστεί η μεταβλητή περιβάλλοντος.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Το Apache παρέχει αρχεία πηγής PredictionIO τα οποία μπορούν να ληφθούν και να μεταγλωττιστούν τοπικά. Δημιουργήστε έναν νέο προσωρινό κατάλογο για λήψη και μεταγλώττιση του αρχείου προέλευσης.
mkdir /tmp/pio_sourcefiles && cd /tmp/pio_sourcefiles
Πραγματοποιήστε λήψη του αρχείου προέλευσης του PredictionIO χρησιμοποιώντας οποιονδήποτε ιστότοπο του Apache Mirror .
wget http://apache.mirror.vexxhost.com/incubator/predictionio/0.12.0-incubating/apache-predictionio-0.12.0-incubating.tar.gz
Εξαγάγετε το αρχείο και μεταγλωττίστε την πηγή για να δημιουργήσετε μια διανομή του PredictionIO.
tar xf apache-predictionio-0.12.0-incubating.tar.gz
./make-distribution.sh
Η παραπάνω κατανομή θα κατασκευαστεί κατά τις προεπιλεγμένες εκδόσεις των εξαρτήσεων, οι οποίες είναι Scala 2.11.8
, Spark 2.1.1
, Hadoop 2.7.3
και ElasticSearch 5.5.2
. Περιμένετε να ολοκληρωθεί η κατασκευή, θα χρειαστούν περίπου δέκα λεπτά για να ολοκληρωθεί ανάλογα με την απόδοση του συστήματός σας.
Σημείωση : Μπορείτε να χρησιμοποιήσετε την πιο πρόσφατη υποστηριζόμενη έκδοση των εξαρτήσεων, αλλά ενδέχεται να δείτε ορισμένες προειδοποιήσεις κατά τη διάρκεια της κατασκευής, καθώς ορισμένες λειτουργίες ενδέχεται να καταργηθούν. Εκτελέστε ./make-distribution.sh -Dscala.version=2.11.11 -Dspark.version=2.1.2 -Dhadoop.version=2.7.4 -Delasticsearch.version=5.5.3
, αντικαθιστώντας τον αριθμό έκδοσης σύμφωνα με την επιλογή σας.
Μόλις ολοκληρωθεί επιτυχώς η κατασκευή, θα δείτε το ακόλουθο μήνυμα στο τέλος.
...
PredictionIO-0.12.0-incubating/python/pypio/__init__.py
PredictionIO-0.12.0-incubating/python/pypio/utils.py
PredictionIO-0.12.0-incubating/python/pypio/shell.py
PredictionIO binary distribution created at PredictionIO-0.12.0-incubating.tar.gz
Τα δυαδικά αρχεία PredictionIO θα αποθηκευτούν στο PredictionIO-0.12.0-incubating.tar.gz
αρχείο. Εξαγάγετε το αρχείο στον /opt
κατάλογο και παρέχετε την ιδιοκτησία στον τρέχοντα χρήστη.
sudo tar xf PredictionIO-0.12.0-incubating.tar.gz -C /opt/
sudo chown -R $USER:$USER /opt/PredictionIO-0.12.0-incubating
Ορίστε τη PIO_HOME
μεταβλητή περιβάλλοντος.
echo "export PIO_HOME=/opt/PredictionIO-0.12.0-incubating" >> ~/.bash_profile
source ~/.bash_profile
Δημιουργήστε έναν νέο κατάλογο για να εγκαταστήσετε εξαρτήσεις PredictionIO όπως HBase
, Spark
και Elasticsearch
.
mkdir /opt/PredictionIO-0.12.0-incubating/vendors
Κατεβάστε το Scala έκδοση 2.11.8 και εξαγάγετε τον στον vendors
κατάλογο.
wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
tar xf scala-2.11.8.tgz -C /opt/PredictionIO-0.12.0-incubating/vendors
Κάντε λήψη του Apache Hadoop έκδοση 2.7.3 και εξαγάγετε τον στον vendors
κατάλογο.
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
tar xf hadoop-2.7.3.tar.gz -C /opt/PredictionIO-0.12.0-incubating/vendors
Το Apache Spark είναι η προεπιλεγμένη μηχανή επεξεργασίας για το PredictionIO. Κατεβάστε το Spark έκδοση 2.1.1 και εξαγάγετέ το στον vendors
κατάλογο.
wget https://archive.apache.org/dist/spark/spark-2.1.1/spark-2.1.1-bin-hadoop2.7.tgz
tar xf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/PredictionIO-0.12.0-incubating/vendors
Κάντε λήψη του Elasticsearch έκδοσης 5.5.2 και εξαγάγετε τον στον vendors
κατάλογο.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz
tar xf elasticsearch-5.5.2.tar.gz -C /opt/PredictionIO-0.12.0-incubating/vendors
Τέλος, κατεβάστε την έκδοση 1.2.6 του HBase και εξαγάγετε τον στον vendors
κατάλογο.
wget https://archive.apache.org/dist/hbase/stable/hbase-1.2.6-bin.tar.gz
tar xf hbase-1.2.6-bin.tar.gz -C /opt/PredictionIO-0.12.0-incubating/vendors
Ανοίξτε το hbase-site.xml
αρχείο διαμόρφωσης για να ρυθμίσετε το HBase ώστε να λειτουργεί σε αυτόνομο περιβάλλον.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-site.xml
Βρείτε το κενό μπλοκ διαμόρφωσης και αντικαταστήστε το με την ακόλουθη διαμόρφωση.
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/user/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/data</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/user/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/zookeeper</value>
</property>
</configuration>
Ο κατάλογος δεδομένων θα δημιουργηθεί αυτόματα από την HBase. Επεξεργαστείτε το αρχείο περιβάλλοντος HBase για να ορίσετε τη JAVA_HOME
διαδρομή.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh
Καταργήστε το σχόλιο αριθμό γραμμής 27 και ορίστε JAVA_HOME
τη διαδρομή του jre
, την εγκατάσταση Java. Μπορείτε να βρείτε τη διαδρομή προς το εκτελέσιμο αρχείο JAVA χρησιμοποιώντας την readlink -f $(which java)
εντολή.
# The java implementation to use. Java 1.7+ required.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre
Επίσης, σχολιάστε τους αριθμούς γραμμής 46 και 47, καθώς δεν απαιτούνται για την JAVA 8.
# Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+
# export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
# export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
Η προεπιλεγμένη ρύθμιση παραμέτρων στο αρχείο περιβάλλοντος PredictionIO pio-env.sh
προϋποθέτει ότι χρησιμοποιούμε PostgreSQL ή MySQL. Καθώς έχουμε χρησιμοποιήσει το HBase και το Elasticsearch, θα χρειαστεί να τροποποιήσουμε σχεδόν κάθε διαμόρφωση του αρχείου. Είναι καλύτερο να δημιουργήσετε ένα αντίγραφο ασφαλείας του υπάρχοντος αρχείου και να δημιουργήσετε ένα νέο αρχείο περιβάλλοντος PredictionIO.
mv /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh.bak
Now create a new file for PredictionIO environment configuration.
nano /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh
Populate the file with the following configuration.
# 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-2.1.1-bin-hadoop2.7
# POSTGRES_JDBC_DRIVER=$PIO_HOME/lib/postgresql-42.0.0.jar
# MYSQL_JDBC_DRIVER=$PIO_HOME/lib/mysql-connector-java-5.1.41.jar
# ES_CONF_DIR: You must configure this if you have advanced configuration for
# your Elasticsearch setup.
ES_CONF_DIR=$PIO_HOME/vendors/elasticsearch-5.5.2/config
# HADOOP_CONF_DIR: You must configure this if you intend to run PredictionIO
# with Hadoop 2.
HADOOP_CONF_DIR=$PIO_HOME/vendors/spark-2.1.1-bin-hadoop2.7/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.2.6/conf
# Filesystem paths where PredictionIO uses as block storage.
PIO_FS_BASEDIR=$HOME/.pio_store
PIO_FS_ENGINESDIR=$PIO_FS_BASEDIR/engines
PIO_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
# http://predictionio.incubator.apache.org/system/anotherdatastore/
# Storage Repositories
# Default is to use PostgreSQL
PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta
PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=ELASTICSEARCH
PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event
PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=HBASE
PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model
PIO_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=pio
# MySQL Example
# PIO_STORAGE_SOURCES_MYSQL_TYPE=jdbc
# PIO_STORAGE_SOURCES_MYSQL_URL=jdbc:mysql://localhost/pio
# PIO_STORAGE_SOURCES_MYSQL_USERNAME=pio
# PIO_STORAGE_SOURCES_MYSQL_PASSWORD=pio
# Elasticsearch Example
PIO_STORAGE_SOURCES_ELASTICSEARCH_TYPE=elasticsearch
PIO_STORAGE_SOURCES_ELASTICSEARCH_HOSTS=localhost
PIO_STORAGE_SOURCES_ELASTICSEARCH_PORTS=9200
PIO_STORAGE_SOURCES_ELASTICSEARCH_SCHEMES=http
PIO_STORAGE_SOURCES_ELASTICSEARCH_CLUSTERNAME=pio
PIO_STORAGE_SOURCES_ELASTICSEARCH_HOME=$PIO_HOME/vendors/elasticsearch-5.5.2
# Optional basic HTTP auth
# PIO_STORAGE_SOURCES_ELASTICSEARCH_USERNAME=my-name
# PIO_STORAGE_SOURCES_ELASTICSEARCH_PASSWORD=my-secret
# Elasticsearch 1.x Example
# PIO_STORAGE_SOURCES_ELASTICSEARCH_TYPE=elasticsearch
# PIO_STORAGE_SOURCES_ELASTICSEARCH_CLUSTERNAME=<elasticsearch_cluster_name>
# PIO_STORAGE_SOURCES_ELASTICSEARCH_HOSTS=localhost
# PIO_STORAGE_SOURCES_ELASTICSEARCH_PORTS=9300
# PIO_STORAGE_SOURCES_ELASTICSEARCH_HOME=$PIO_HOME/vendors/elasticsearch-1.7.6
# Local File System Example
PIO_STORAGE_SOURCES_LOCALFS_TYPE=localfs
PIO_STORAGE_SOURCES_LOCALFS_PATH=$PIO_FS_BASEDIR/models
# HBase Example
PIO_STORAGE_SOURCES_HBASE_TYPE=hbase
PIO_STORAGE_SOURCES_HBASE_HOME=$PIO_HOME/vendors/hbase-1.2.6
# AWS S3 Example
# PIO_STORAGE_SOURCES_S3_TYPE=s3
# PIO_STORAGE_SOURCES_S3_BUCKET_NAME=pio_bucket
# PIO_STORAGE_SOURCES_S3_BASE_PATH=pio_model
Save the file and exit from the editor.
Open the Elasticsearch configuration file.
nano /opt/PredictionIO-0.12.0-incubating/vendors/elasticsearch-5.5.2/config/elasticsearch.yml
Uncomment the line and set the cluster name to exactly the same as the one provided in the PredictionIO environment file. The cluster name is set to pio
in the above configuration.
# Use a descriptive name for your cluster:
#
cluster.name: pio
Now add the $PIO_HOME/bin
directory into the PATH variable so that the PredictionIO executables are executed directly.
echo "export PATH=$PATH:$PIO_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile
At this point, PredictionIO is successfully installed on your server.
You can start all the services in PredictionIO such as Elasticsearch, HBase and Event server using a single command.
pio-start-all
You will see the following output.
[user@vultr ~]$ pio-start-all
Starting Elasticsearch...
Starting HBase...
starting master, logging to /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/bin/../logs/hbase-user-master-vultr.guest.out
Waiting 10 seconds for Storage Repositories to fully initialize...
Starting PredictionIO Event Server...
Use the following command to check the status of the PredictionIO server.
pio status
You will see the following output.
[user@vultr ~]$ pio status
[INFO] [Management$] Inspecting PredictionIO...
[INFO] [Management$] PredictionIO 0.12.0-incubating is installed at /opt/PredictionIO-0.12.0-incubating
[INFO] [Management$] Inspecting Apache Spark...
[INFO] [Management$] Apache Spark is installed at /opt/PredictionIO-0.12.0-incubating/vendors/spark-2.1.1-bin-hadoop2.7
[INFO] [Management$] Apache Spark 2.1.1 detected (meets minimum requirement of 1.3.0)
[INFO] [Management$] Inspecting storage backend connections...
[INFO] [Storage$] Verifying Meta Data Backend (Source: ELASTICSEARCH)...
[INFO] [Storage$] Verifying Model Data Backend (Source: LOCALFS)...
[INFO] [Storage$] Verifying Event Data Backend (Source: HBASE)...
[INFO] [Storage$] Test writing to Event Store (App Id 0)...
[INFO] [HBLEvents] The namespace pio_event doesn't exist yet. Creating now...
[INFO] [HBLEvents] The table pio_event:events_0 doesn't exist yet. Creating now...
[INFO] [HBLEvents] Removing table pio_event:events_0...
[INFO] [Management$] Your system is all ready to go.
As we can see in the above messages, our system is ready to use for implementing an engine template and predicting data.
Several ready to use engine templates are available on the PredictionIO Template Gallery which can be easily installed on the PredictionIO server. You are free to browse through the list of engine templates to find the one that is close to your requirements or you can write your own engine.
In this tutorial, we will implement the E-Commerce Recommendation
engine template to demonstrate the functionality of PredictionIO server using some sample data. This engine template provides some personal recommendation to a user in an e-commerce website. By default, it has features such as excluding out of stock items or providing recommendations to a user who signs up after the model is trained. Also, by default, the engine template takes a user's view and buy events, items with categories and properties and list of unavailable items. Once the engine has been trained and deployed, you can send a query with the user id and number of items to be recommended. The generated output will be a ranked list of recommended item ids.
Install Git, as it will be used to clone the repository.
cd ~
sudo yum -y install git
Clone the E-Commerce Recommender engine template on your system.
git clone https://github.com/apache/incubator-predictionio-template-ecom-recommender.git MyEComRecomm
Create a new application for the E-Commerce Recommendation template engine. Each application in PredictionIO is used to store the data for a separate website. If you have multiple websites, then you can create multiple apps to store each website's data into a different application. You are free to choose any name for your application.
cd MyEComRecomm/
pio app new myecom
You will see the following output.
[user@vultr MyEComRecomm]$ pio app new myecom
[INFO] [HBLEvents] The table pio_event:events_1 doesn't exist yet. Creating now...
[INFO] [App$] Initialized Event Store for this app ID: 1.
[INFO] [Pio$] Created a new app:
[INFO] [Pio$] Name: myecom
[INFO] [Pio$] ID: 1
[INFO] [Pio$] Access Key: a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t
The output above also contains the access key which will be used to authenticate when sending the input data to the event server.
You can always find the access key along with the list of available applications by running.
pio app list
You will see the following output containing a list of applications and the access key.
[user@vultr MyEComRecomm]$ pio app list
[INFO] [Pio$] Name | ID | Access Key | Allowed Event(s)
[INFO] [Pio$] myecom | 1 | a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t | (all)
[INFO] [Pio$] Finished listing 1 app(s).
Τώρα που δημιουργήσαμε μια νέα εφαρμογή, θα προσθέσουμε κάποια δεδομένα σε αυτήν. Στο περιβάλλον παραγωγής, θα θέλατε να στείλετε αυτόματα τα δεδομένα στον διακομιστή συμβάντων ενσωματώνοντας το API διακομιστή συμβάντων στην εφαρμογή. Για να μάθετε πώς λειτουργεί το PredictionIO, θα εισαγάγουμε μερικά δείγματα δεδομένων σε αυτό. Η μηχανή προτύπου παρέχει ένα σενάριο Python το οποίο μπορεί εύκολα να χρησιμοποιηθεί για την εισαγωγή του δείγματος δεδομένων στον διακομιστή συμβάντων.
Εγκαταστήστε το Python pip.
sudo yum -y install python-pip
sudo pip install --upgrade pip
Εγκαταστήστε το PredictionIO Python SDK χρησιμοποιώντας pip.
sudo pip install predictionio
Εκτελέστε το σενάριο Python για να προσθέσετε τα δείγματα δεδομένων στον διακομιστή συμβάντων.
python data/import_eventserver.py --access_key a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t
Φροντίστε να αντικαταστήσετε το κλειδί πρόσβασης με το πραγματικό κλειδί πρόσβασης. Θα δείτε μια παρόμοια έξοδο.
[user@vultr MyEComRecomm]$ python data/import_eventserver.py --access_key a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t
Namespace(access_key='a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t', url='http://localhost:7070')
{u'status': u'alive'}
Importing data...
('Set user', 'u1')
('Set user', 'u2')
...
('User', 'u10', 'buys item', 'i30')
('User', 'u10', 'views item', 'i40')
('User', 'u10', 'buys item', 'i40')
204 events are imported.
Το παραπάνω σενάριο εισάγει 10 χρήστες, 50 αντικείμενα σε 6 κατηγορίες και μερικά τυχαία συμβάντα αγοράς και προβολών. Για να ελέγξετε εάν τα συμβάντα έχουν εισαχθεί ή όχι, μπορείτε να εκτελέσετε το ακόλουθο ερώτημα.
curl -i -X GET "http://localhost:7070/events.json?accessKey=a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t"
Η έξοδος θα σας δείξει τη λίστα με όλα τα εισαγόμενα συμβάντα σε μορφή JSON.
Τώρα, ανοίξτε το engine.json
αρχείο στο πρόγραμμα επεξεργασίας. Αυτό το αρχείο περιέχει τη διαμόρφωση του κινητήρα.
nano engine.json
Βρείτε και τις δύο εμφανίσεις appName
και αντικαταστήστε την τιμή με το πραγματικό όνομα της εφαρμογής που δημιουργήσατε νωρίτερα.
{
"id": "default",
"description": "Default settings",
"engineFactory": "org.example.ecommercerecommendation.ECommerceRecommendationEngine",
"datasource": {
"params" : {
"appName": "myecom"
}
},
"algorithms": [
{
"name": "ecomm",
"params": {
"appName": "myecom",
"unseenOnly": true,
"seenEvents": ["buy", "view"],
"similarEvents": ["view"],
"rank": 10,
"numIterations" : 20,
"lambda": 0.01,
"seed": 3
}
}
]
}
Κατασκευάστε την εφαρμογή.
pio build --verbose
Εάν δεν θέλετε να βλέπετε τα μηνύματα καταγραφής, καταργήστε την --verbose
επιλογή. Η κατασκευή του προτύπου κινητήρα για πρώτη φορά θα διαρκέσει λίγα λεπτά. Θα δείτε μια παρόμοια έξοδο όταν ολοκληρωθεί με επιτυχία η κατασκευή.
[user@vultr MyEComRecomm]$ pio build --verbose
[INFO] [Engine$] Using command '/opt/PredictionIO-0.12.0-incubating/sbt/sbt' at /home/user/MyEComRecomm to build.
...
[INFO] [Engine$] Build finished successfully.
[INFO] [Pio$] Your engine is ready for training.
Εκπαιδεύστε τον κινητήρα τώρα. Κατά τη διάρκεια της εκπαίδευσης, ο κινητήρας αναλύει το σύνολο δεδομένων και εκπαιδεύεται σύμφωνα με τον παρεχόμενο αλγόριθμο.
pio train
Πριν αναπτύξουμε την εφαρμογή, θα χρειαστεί να ανοίξουμε τη θύρα, 8000
έτσι ώστε η κατάσταση της εφαρμογής να μπορεί να προβληθεί στο Web GUI. Επίσης, οι ιστότοποι και οι εφαρμογές που χρησιμοποιούν τον διακομιστή συμβάντων θα στέλνουν και θα λαμβάνουν τα ερωτήματά τους μέσω αυτής της θύρας.
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
Τώρα μπορείτε να αναπτύξετε τον κινητήρα PredictionIO.
pio deploy
Η παραπάνω εντολή θα αναπτύξει τη μηχανή και τον ενσωματωμένο διακομιστή web στη θύρα 8000
για να απαντήσει στα ερωτήματα από τους ιστότοπους και τις εφαρμογές ηλεκτρονικού εμπορίου. Θα δείτε την ακόλουθη έξοδο στο τέλος μόλις ο κινητήρας ενεργοποιηθεί με επιτυχία.
[INFO] [HttpListener] Bound to /0.0.0.0:8000
[INFO] [MasterActor] Engine is deployed and running. Engine API is live at http://0.0.0.0:8000.
Μπορείτε να επαληθεύσετε την κατάσταση του κινητήρα μεταβαίνοντας στο http://192.0.2.1:8000
χρησιμοποιώντας οποιοδήποτε σύγχρονο πρόγραμμα περιήγησης. Βεβαιωθείτε ότι έχετε αντικαταστήσει 192.0.2.1
με την πραγματική σας διεύθυνση IP Vultr.
Αυτό σημαίνει ότι το πρότυπο κινητήρα για σύσταση ηλεκτρονικού εμπορίου έχει αναπτυχθεί και λειτουργεί με επιτυχία. Μπορείτε να υποβάλετε ερώτημα στο πρότυπο μηχανής για να λάβετε πέντε προτάσεις για τον χρήστη u5
εκτελώντας το ακόλουθο ερώτημα σε μια νέα περίοδο λειτουργίας τερματικού.
curl -H "Content-Type: application/json" \
-d '{ "user": "u5", "num": 5 }' \
http://localhost:8000/queries.json
Θα δείτε τις δημιουργημένες προτάσεις για τον χρήστη u5
.
[user@vultr ~]$ curl -H "Content-Type: application/json" \
> -d '{ "user": "u5", "num": 5 }' \
> http://localhost:8000/queries.json
{"itemScores":[{"item":"i25","score":0.9985169366745619},{"item":"i10","score":0.996613946803819},{"item":"i27","score":0.996613946803819},{"item":"i17","score":0.9962796867639341},{"item":"i8","score":0.9955868705972656}]}
Συγχαρητήρια, το Apache PredictionIO έχει αναπτυχθεί με επιτυχία στον διακομιστή σας. Τώρα μπορείτε να χρησιμοποιήσετε το API του διακομιστή συμβάντων για να εισαγάγετε τα δεδομένα στη μηχανή για να προβλέψετε τις προτάσεις για τον χρήστη. Εάν θέλετε, μπορείτε να χρησιμοποιήσετε κάποια άλλα πρότυπα από τη συλλογή προτύπων. Βεβαιωθείτε ότι έχετε ελέγξει το πρότυπο μηχανής Universal Recommender , το οποίο μπορεί να χρησιμοποιηθεί σχεδόν σε όλες τις περιπτώσεις χρήσης, συμπεριλαμβανομένου του ηλεκτρονικού εμπορίου, ειδήσεων ή βίντεο.
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Plesk είναι ένας ιδιόκτητος πίνακας ελέγχου web host που επιτρέπει στους χρήστες να διαχειρίζονται τους προσωπικούς ή/και τους πελάτες τους ιστότοπους, βάσεις δεδομένων
Το Squid είναι ένα δημοφιλές, δωρεάν πρόγραμμα Linux που σας επιτρέπει να δημιουργήσετε έναν διακομιστή μεσολάβησης web προώθησης. Σε αυτόν τον οδηγό, θα δείτε πώς να εγκαταστήσετε το Squid στο CentOS για να σας μετατρέψει
Εισαγωγή Το Lighttpd είναι ένα πιρούνι του Apache που έχει ως στόχο να είναι πολύ λιγότερο εντάσεως πόρων. Είναι ελαφρύ, εξ ου και το όνομά του, και είναι αρκετά απλό στη χρήση. Εγκατάσταση
Το Icinga2 είναι ένα ισχυρό σύστημα παρακολούθησης και όταν χρησιμοποιείται σε μοντέλο master-client, μπορεί να αντικαταστήσει την ανάγκη για ελέγχους παρακολούθησης που βασίζονται σε NRPE. Ο κύριος-πελάτης
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Apache Cassandra είναι ένα δωρεάν και ανοιχτού κώδικα σύστημα διαχείρισης βάσεων δεδομένων NoSQL που έχει σχεδιαστεί για να παρέχει επεκτασιμότητα, υψηλή
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Microweber είναι ένα ανοικτού κώδικα μεταφοράς και απόθεσης CMS και ηλεκτρονικό κατάστημα. Ο πηγαίος κώδικας Microweber φιλοξενείται στο GitHub. Αυτός ο οδηγός θα σας δείξει
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Vanilla forum είναι μια εφαρμογή φόρουμ ανοιχτού κώδικα γραμμένη σε PHP. Είναι πλήρως προσαρμόσιμο, εύκολο στη χρήση και υποστηρίζει εξωτερικά
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Mattermost είναι μια εναλλακτική λύση ανοιχτού κώδικα, που φιλοξενείται από τον εαυτό της στην υπηρεσία ανταλλαγής μηνυμάτων Slack SAAS. Με άλλα λόγια, με το Mattermost, μπορείτε περίπου
Ο πίνακας ελέγχου Plesk διαθέτει μια πολύ ωραία ενσωμάτωση για το Lets Encrypt. Το Lets Encrypt είναι ένας από τους μόνους παρόχους SSL που εκδίδει πιστοποιητικά πλήρως
Το Lets Encrypt είναι μια αρχή έκδοσης πιστοποιητικών αφιερωμένη στην παροχή πιστοποιητικών SSL δωρεάν. Το cPanel έχει δημιουργήσει μια τακτοποιημένη ενοποίηση για εσάς και τον πελάτη σας
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Concrete5 είναι ένα CMS ανοιχτού κώδικα που προσφέρει πολλές χαρακτηριστικές και χρήσιμες λειτουργίες για να βοηθήσει τους συντάκτες να παράγουν περιεχόμενο εύκολα και
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Το Review Board είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο για την ανασκόπηση του πηγαίου κώδικα, της τεκμηρίωσης, των εικόνων και πολλών άλλων. Είναι λογισμικό που βασίζεται στο web
Σε αυτόν τον οδηγό, θα μάθετε πώς να ρυθμίζετε τον έλεγχο ταυτότητας HTTP για έναν διακομιστή web Nginx που εκτελείται σε CentOS 7. Απαιτήσεις Για να ξεκινήσετε, θα χρειαστείτε
Το YOURLS (Your Own URL Shortener) είναι μια εφαρμογή συντόμευσης διευθύνσεων URL και ανάλυσης δεδομένων ανοιχτού κώδικα. Σε αυτό το άρθρο, θα καλύψουμε τη διαδικασία εγκατάστασης
Χρησιμοποιώντας ένα διαφορετικό σύστημα; Εισαγωγή Το ArangoDB είναι μια βάση δεδομένων NoSQL ανοιχτού κώδικα με ένα ευέλικτο μοντέλο δεδομένων για έγγραφα, γραφήματα και κλειδιά-τιμές. είναι
Εισαγωγή Ο κατάλογος /etc/ παίζει κρίσιμο ρόλο στον τρόπο λειτουργίας ενός συστήματος Linux. Ο λόγος για αυτό είναι επειδή σχεδόν κάθε διαμόρφωση συστήματος
Πολλοί διαχειριστές συστημάτων διαχειρίζονται μεγάλες ποσότητες διακομιστών. Όταν χρειάζεται πρόσβαση στα αρχεία σε διαφορετικούς διακομιστές, συνδέεστε σε καθένα ξεχωριστά περίπου
Αυτό το σεμινάριο θα καλύψει τη διαδικασία εγκατάστασης ενός διακομιστή παιχνιδιών Half Life 2 στο σύστημα CentOS 6. Βήμα 1: Εγκατάσταση των προαπαιτούμενων Για να ρυθμίσετε το ou
Το Laravel GitScrum ή GitScrum είναι ένα εργαλείο παραγωγικότητας ανοιχτού κώδικα που έχει σχεδιαστεί για να βοηθά τις ομάδες ανάπτυξης να εφαρμόσουν τη μεθοδολογία Scrum με παρόμοιο τρόπο
Εισαγωγή Σε αυτό το σεμινάριο Vultr, θα μάθετε πώς να εγκαταστήσετε το PowerDNS. Το PowerDNS είναι ένα πρόγραμμα για την εκτέλεση των δικών σας διακομιστών ονομάτων. Είναι πολύ χρήσιμο όταν
Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.
Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.
Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.
Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.
Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…
Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.
Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.
Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.
Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.
Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα