Namestite Plesk na CentOS 7
Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov
Tradicionalnih pristopov k analizi podatkov je nemogoče uporabiti, ko nabori podatkov dosežejo določeno velikost. Sodobna alternativa za analizo ogromnih nizov podatkov je uporaba metod strojnega učenja. Strojno učenje lahko prinese natančne rezultate z uporabo hitrega in učinkovitega algoritma.
Apache PredictionIO je odprtokodni strežnik za strojno učenje, ki se uporablja za ustvarjanje napovednih motorjev za katero koli nalogo strojnega učenja. Skrajša čas aplikacije strojnega učenja od laboratorija do proizvodnje z uporabo prilagodljivih predlog motorjev, ki jih je mogoče hitro zgraditi in uvesti. Zagotavlja komponente za zbiranje in serviranje podatkov ter abstrahira osnovno tehnologijo, da razkrije API, ki razvijalcem omogoča, da se osredotočijo na komponente transformacije. Ko je strežnik motorja PredictionIO nameščen kot spletna storitev, se lahko v realnem času odzove na dinamične poizvedbe.
Apache PredictionIO je sestavljen iz različnih komponent.
V tej vadnici bomo uporabili 192.0.2.1
kot javni naslov IP strežnika. Zamenjajte vse pojavnosti 192.0.2.1
z vašim javnim IP naslovom Vultr.
Posodobite svoj osnovni sistem z uporabo priročnika Kako posodobiti CentOS 7 . Ko je vaš sistem posodobljen, nadaljujte z namestitvijo Jave.
Številne komponente PredictionIO zahtevajo JDK ali Java Development Kit, različica 8. Podpira tako OpenJDK kot Oracle Java. V tej vadnici bomo namestili OpenJDK različice 8.
OpenJDK je mogoče enostavno namestiti, saj je paket na voljo v privzetem repozitoriju YUM.
sudo yum -y install java-1.8.0-openjdk-devel
Preverite različico Jave, da se prepričate, da je bila pravilno nameščena.
java -version
Dobili boste podoben rezultat.
[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)
Preden lahko nadaljujemo, bomo morali nastaviti spremenljivke okolja JAVA_HOME
in JRE_HOME
. Poiščite absolutno pot izvršljive datoteke JAVA v vašem sistemu.
readlink -f $(which java)
Videli boste podoben izhod.
[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
Zdaj nastavite JAVA_HOME
in JRE_HOME
spremenljivko okolja glede na pot imenika 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
Izvedite bash_profile
datoteko.
source ~/.bash_profile
Zdaj lahko zaženete echo $JAVA_HOME
ukaz, da preverite, ali je spremenljivka okolja nastavljena.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Apache ponuja izvorne datoteke PredictionIO, ki jih je mogoče prenesti in prevesti lokalno. Ustvarite nov začasni imenik za prenos in prevajanje izvorne datoteke.
mkdir /tmp/pio_sourcefiles && cd /tmp/pio_sourcefiles
Prenesite arhiv izvorne datoteke PredictionIO s katerim koli spletnim mestom Apache Mirror .
wget http://apache.mirror.vexxhost.com/incubator/predictionio/0.12.0-incubating/apache-predictionio-0.12.0-incubating.tar.gz
Ekstrahirajte arhiv in prevedite vir, da ustvarite distribucijo PredictionIO.
tar xf apache-predictionio-0.12.0-incubating.tar.gz
./make-distribution.sh
Zgornja distribucija bo zgrajena na podlagi privzetih različic odvisnosti, ki so Scala 2.11.8
, Spark 2.1.1
, Hadoop 2.7.3
in ElasticSearch 5.5.2
. Počakajte, da se izdelava konča, traja približno deset minut, odvisno od zmogljivosti vašega sistema.
Opomba : lahko uporabljate najnovejšo podprto različico odvisnosti, vendar boste med gradnjo morda videli nekaj opozoril, saj so nekatere funkcije morda zastarele. Zaženite ./make-distribution.sh -Dscala.version=2.11.11 -Dspark.version=2.1.2 -Dhadoop.version=2.7.4 -Delasticsearch.version=5.5.3
in zamenjajte številko različice po vaši izbiri.
Ko se gradnja uspešno zaključi, boste na koncu videli naslednje sporočilo.
...
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
Binarne datoteke PredictionIO bodo shranjene v PredictionIO-0.12.0-incubating.tar.gz
arhiv. Izvlecite arhiv v /opt
imenik in zagotovite lastništvo trenutnemu uporabniku.
sudo tar xf PredictionIO-0.12.0-incubating.tar.gz -C /opt/
sudo chown -R $USER:$USER /opt/PredictionIO-0.12.0-incubating
Nastavite PIO_HOME
spremenljivko okolja.
echo "export PIO_HOME=/opt/PredictionIO-0.12.0-incubating" >> ~/.bash_profile
source ~/.bash_profile
Ustvarite nov imenik za namestitev odvisnosti PredictionIO, kot sta HBase
, Spark
in Elasticsearch
.
mkdir /opt/PredictionIO-0.12.0-incubating/vendors
Prenesite različico Scala 2.11.8 in jo ekstrahirajte v vendors
imenik.
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
Prenesite Apache Hadoop različico 2.7.3 in ga ekstrahirajte v vendors
imenik.
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 je privzeti mehanizem za obdelavo za PredictionIO. Prenesite Spark različico 2.1.1 in jo ekstrahirajte v vendors
imenik.
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
Prenesite Elasticsearch različico 5.5.2 in ga ekstrahirajte v vendors
imenik.
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
Končno prenesite HBase različico 1.2.6 in jo ekstrahirajte v vendors
imenik.
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
Odprite hbase-site.xml
konfiguracijsko datoteko, da konfigurirate HBase za delovanje v samostojnem okolju.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-site.xml
Poiščite prazen konfiguracijski blok in ga zamenjajte z naslednjo konfiguracijo.
<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>
Podatkovni imenik bo samodejno ustvaril HBase. Uredite okoljsko datoteko HBase, da nastavite JAVA_HOME
pot.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh
Odkomentirajte številko vrstice 27 in jo nastavite JAVA_HOME
na pot jre
vaše namestitve Jave. Pot do izvedljive datoteke JAVA lahko najdete z readlink -f $(which java)
ukazom.
# 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
Prav tako zakomentirajte številki vrstic 46 in 47, saj nista potrebni za 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"
Privzeta konfiguracija v okoljski datoteki PredictionIO pio-env.sh
predvideva, da uporabljamo PostgreSQL ali MySQL. Ker smo uporabili HBase in Elasticsearch, bomo morali spremeniti skoraj vsako konfiguracijo v datoteki. Najbolje je, da naredite varnostno kopijo obstoječe datoteke in ustvarite novo okoljsko datoteko PredictionIO.
mv /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh.bak
Zdaj ustvarite novo datoteko za konfiguracijo okolja PredictionIO.
nano /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh
Zapolnite datoteko z naslednjo konfiguracijo.
# 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
Shranite datoteko in zapustite urejevalnik.
Odprite konfiguracijsko datoteko Elasticsearch.
nano /opt/PredictionIO-0.12.0-incubating/vendors/elasticsearch-5.5.2/config/elasticsearch.yml
Odkomentirajte vrstico in nastavite ime gruče na popolnoma enako tistemu, ki je navedeno v okoljski datoteki PredictionIO. Ime gruče je pio
v zgornji konfiguraciji nastavljeno na.
# Use a descriptive name for your cluster:
#
cluster.name: pio
Zdaj dodajte $PIO_HOME/bin
imenik v spremenljivko PATH, tako da se izvedljive datoteke PredictionIO izvajajo neposredno.
echo "export PATH=$PATH:$PIO_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile
Na tej točki je PredictionIO uspešno nameščen na vašem strežniku.
Z enim ukazom lahko zaženete vse storitve v PredictionIO, kot so Elasticsearch, HBase in Event server.
pio-start-all
Videli boste naslednji izhod.
[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...
Za preverjanje stanja strežnika PredictionIO uporabite naslednji ukaz.
pio status
Videli boste naslednji izhod.
[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.
V tej vadnici bomo implementirali E-Commerce Recommendation
predlogo motorja za prikaz funkcionalnosti strežnika PredictionIO z uporabo nekaterih vzorčnih podatkov. Ta predloga motorja uporabniku na spletnem mestu e-trgovine nudi nekaj osebnih priporočil. Privzeto ima funkcije, kot je izključitev artiklov, ki jih ni na zalogi, ali dajanje priporočil uporabniku, ki se prijavi po tem, ko je model usposobljen. Tudi predloga motorja privzeto prevzame uporabnikov pogled in dogodke nakupa, predmete s kategorijami in lastnostmi ter seznam nedostopnih predmetov. Ko je motor usposobljen in nameščen, lahko pošljete poizvedbo z ID-jem uporabnika in številom elementov, ki jih priporočate. Ustvarjen rezultat bo razvrščen seznam priporočenih ID-jev artiklov.
Namestite Git, saj bo uporabljen za kloniranje repozitorija.
cd ~
sudo yum -y install git
Klonirajte predlogo motorja E-Commerce Recommender v vašem sistemu.
git clone https://github.com/apache/incubator-predictionio-template-ecom-recommender.git MyEComRecomm
Ustvarite novo aplikacijo za mehanizem za predloge priporočil za e-trgovino. Vsaka aplikacija v PredictionIO se uporablja za shranjevanje podatkov za ločeno spletno mesto. Če imate več spletnih mest, lahko ustvarite več aplikacij za shranjevanje podatkov vsakega spletnega mesta v drugo aplikacijo. Za svojo aplikacijo lahko izberete poljubno ime.
cd MyEComRecomm/
pio app new myecom
Videli boste naslednji izhod.
[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
Zgornji izhod vsebuje tudi dostopni ključ, ki bo uporabljen za preverjanje pristnosti pri pošiljanju vhodnih podatkov strežniku dogodkov.
Z zagonom lahko vedno najdete ključ za dostop skupaj s seznamom razpoložljivih aplikacij.
pio app list
Videli boste naslednji izhod, ki vsebuje seznam aplikacij in ključ za dostop.
[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).
Zdaj, ko smo ustvarili novo aplikacijo, ji bomo dodali nekaj podatkov. V produkcijskem okolju bi želeli samodejno poslati podatke strežniku dogodkov z integracijo API strežnika dogodkov v aplikacijo. Če želite izvedeti, kako deluje PredictionIO, bomo vanj uvozili nekaj vzorčnih podatkov. Mehanizem predlog zagotavlja skript Python, ki ga je mogoče enostavno uporabiti za uvoz vzorčnih podatkov v strežnik dogodkov.
Namestite Python pip.
sudo yum -y install python-pip
sudo pip install --upgrade pip
Namestite PredictionIO Python SDK z uporabo pip.
sudo pip install predictionio
Zaženite skript Python, da dodate vzorčne podatke strežniku dogodkov.
python data/import_eventserver.py --access_key a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t
Ne pozabite zamenjati ključa za dostop z vašim dejanskim ključem za dostop. Videli boste podoben izhod.
[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.
Zgornji skript uvozi 10 uporabnikov, 50 artiklov v 6 kategorijah in nekaj naključnih dogodkov nakupov in ogledov. Če želite preveriti, ali so dogodki uvoženi ali ne, lahko zaženete naslednjo poizvedbo.
curl -i -X GET "http://localhost:7070/events.json?accessKey=a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t"
Izhod vam bo prikazal seznam vseh uvoženih dogodkov v formatu JSON.
Zdaj odprite engine.json
datoteko v urejevalniku. Ta datoteka vsebuje konfiguracijo motorja.
nano engine.json
Poiščite obe pojavitvi appName
in zamenjajte vrednost z dejanskim imenom aplikacije, ki ste jo ustvarili prej.
{
"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
}
}
]
}
Zgradite aplikacijo.
pio build --verbose
Če ne želite videti dnevniških sporočil, odstranite to --verbose
možnost. Prva izdelava predloge motorja bo trajala nekaj minut. Podoben rezultat boste videli, ko se bo gradnja uspešno končala.
[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.
Usposobite motor zdaj. Med usposabljanjem motor analizira nabor podatkov in se trenira po predloženem algoritmu.
pio train
Preden razmestimo aplikacijo, bomo morali odpreti vrata 8000
, da si bo mogoče stanje aplikacije ogledati v spletnem GUI. Prav tako bodo spletna mesta in aplikacije, ki uporabljajo strežnik dogodkov, pošiljale in prejemale svoje poizvedbe prek teh vrat.
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
Zdaj lahko uvedete motor PredictionIO.
pio deploy
Zgornji ukaz bo razmestil motor in vgrajeni spletni strežnik na vratih, 8000
da se odzove na poizvedbe s spletnih mest in aplikacij za e-trgovino. Ko bo motor uspešno nameščen, boste na koncu videli naslednji rezultat.
[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.
Stanje motorja lahko preverite tako, da http://192.0.2.1:8000
uporabite kateri koli sodoben brskalnik. Prepričajte se, da ste zamenjali 192.0.2.1
s svojim dejanskim naslovom IP Vultr.
To pomeni, da je predloga motorja za priporočilo za e-trgovino nameščena in uspešno deluje. Predlogo motorja lahko poizvedujete za pridobitev petih priporočil za uporabnika, u5
tako da zaženete naslednjo poizvedbo v novi terminalski seji.
curl -H "Content-Type: application/json" \
-d '{ "user": "u5", "num": 5 }' \
http://localhost:8000/queries.json
Videli boste ustvarjena priporočila za uporabnika 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}]}
Čestitamo, Apache PredictionIO je bil uspešno nameščen na vašem strežniku. Zdaj lahko uporabite API strežnika dogodkov za uvoz podatkov v mehanizem za predvidevanje priporočil za uporabnika. Če želite, lahko uporabite nekatere druge predloge iz galerije predlog. Ne pozabite preveriti predloge motorja Universal Recommender, ki se lahko uporablja v skoraj vseh primerih uporabe, vključno z e-trgovino, novicami ali videoposnetki.
Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov
Squid je priljubljen brezplačen program za Linux, ki vam omogoča ustvarjanje spletnega proxyja za posredovanje. V tem priročniku boste videli, kako namestiti Squid na CentOS, da vas obrne
Uvod Lighttpd je razdelek Apache, katerega namen je biti veliko manj intenziven vir. Je lahek, od tod tudi njegovo ime, in je precej preprost za uporabo. Namestite
VULTR je pred kratkim naredil spremembe na svoji strani in zdaj bi moralo vse delovati v redu iz škatle z omogočenim NetworkManagerjem. Če želite onemogočiti
Icinga2 je zmogljiv sistem za spremljanje in če se uporablja v modelu glavni-odjemalec, lahko nadomesti potrebo po nadzornih pregledih, ki temeljijo na NRPE. Glavni naročnik
Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko
Uporaba drugega sistema? Microweber je odprtokodna povleci in spusti CMS in spletna trgovina. Izvorna koda Microweber gostuje na GitHubu. Ta vodnik vam bo pokazal
Uporaba drugega sistema? Mattermost je odprtokodna alternativa sporočilni storitvi Slack SAAS, ki jo gosti sami. Z drugimi besedami, z Mattermostom si pribl
Kaj potrebujete Vultr VPS z vsaj 1 GB RAM-a. SSH dostop (z root/administrativnimi pravicami). 1. korak: Namestitev BungeeCord Najprej najprej
Nadzorna plošča Plesk ima zelo lepo integracijo za Lets Encrypt. Lets Encrypt je eden edinih ponudnikov SSL, ki izdaja potrdila v celoti
V času pisanja je MariaDB 10.1 razvojna različica MariaDB. Temelji na MariaDB 5.5 in vključuje funkcije, prenesene nazaj iz MySQL 5.6. Ther
Lets Encrypt je certifikacijski organ, ki je namenjen brezplačnemu zagotavljanju certifikatov SSL. cPanel je zgradil lepo integracijo za vas in vašo stranko
Uporaba drugega sistema? Concrete5 je odprtokodni CMS, ki ponuja številne značilne in uporabne funkcije za pomoč urednikom pri preprosti izdelavi vsebine.
Uporaba drugega sistema? Review Board je brezplačno in odprtokodno orodje za pregledovanje izvorne kode, dokumentacije, slik in še veliko več. Gre za spletno programsko opremo
V tem priročniku se boste naučili, kako nastaviti preverjanje pristnosti HTTP za spletni strežnik Nginx, ki deluje na CentOS 7. Zahteve Za začetek boste potrebovali
YOURLS (Your Own URL Shortener) je odprtokodna aplikacija za krajšanje URL-jev in analitiko podatkov. V tem članku bomo obravnavali postopek namestitve
Uporaba drugega sistema? Uvod ArangoDB je odprtokodna baza podatkov NoSQL s prilagodljivim podatkovnim modelom za dokumente, grafe in ključe-vrednosti. je
Uvod Imenik /etc/ igra ključno vlogo pri delovanju sistema Linux. Razlog za to je skoraj vsaka sistemska konfiguracija
Številni sistemski skrbniki upravljajo velike količine strežnikov. Ko je treba do datotek dostopati prek različnih strežnikov, se prijavite v vsakega posebej ca
Ta vadnica bo obravnavala postopek namestitve igralnega strežnika Half Life 2 na sistem CentOS 6. 1. korak: Namestitev predpogojev Za nastavitev ou
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.
Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.
Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.
Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…
Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.
Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.
Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.
V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.
Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več