Įdiekite „Plesk“ „CentOS 7“.
Naudojate kitą sistemą? Plesk yra patentuotas žiniatinklio prieglobos valdymo skydelis, leidžiantis vartotojams administruoti savo asmenines ir (arba) klientų svetaines, duomenų bazes
Kai duomenų rinkiniai pasiekia tam tikrą dydį, tradicinių duomenų analizės metodų naudoti neįmanoma. Šiuolaikinė alternatyva didžiulių duomenų rinkinių analizei yra mašininio mokymosi metodai. Mašininis mokymasis gali duoti tikslių rezultatų, kai naudojamas greitas ir efektyvus algoritmas.
Apache PredictionIO yra atvirojo kodo mašininio mokymosi serveris, naudojamas kuriant nuspėjamuosius variklius bet kuriai mašininio mokymosi užduočiai atlikti. Naudojant tinkinamus variklio šablonus, kuriuos galima greitai sukurti ir įdiegti, sutrumpėja mašininio mokymosi programos laikas nuo laboratorijos iki gamybos. Jame pateikiami duomenų rinkimo ir aptarnavimo komponentai bei pateikiamos pagrindinės technologijos, kad būtų atskleista API, leidžianti kūrėjams sutelkti dėmesį į transformacijos komponentus. Kai PredictionIO variklio serveris yra įdiegtas kaip žiniatinklio paslauga, jis gali atsakyti į dinamines užklausas realiuoju laiku.
„Apache PredictionIO“ susideda iš skirtingų komponentų.
Šioje pamokoje naudosime 192.0.2.1
kaip viešąjį serverio IP adresą. Pakeiskite visus atvejus 192.0.2.1
savo Vultr viešuoju IP adresu.
Atnaujinkite bazinę sistemą naudodami vadovą Kaip atnaujinti CentOS 7 . Kai sistema bus atnaujinta, tęskite „Java“ diegimą.
Kad veiktų daugelis PredictionIO komponentų, reikalingas JDK arba Java Development Kit 8 versija. Jis palaiko ir OpenJDK, ir Oracle Java. Šioje pamokoje mes įdiegsime OpenJDK 8 versiją.
OpenJDK galima lengvai įdiegti, nes paketą galima rasti numatytojoje YUM saugykloje.
sudo yum -y install java-1.8.0-openjdk-devel
Patikrinkite „Java“ versiją, kad įsitikintumėte, jog ji tinkamai įdiegta.
java -version
Jūs gausite panašią išvestį.
[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)
Prieš tęsdami toliau, turėsime nustatyti JAVA_HOME
ir JRE_HOME
aplinkos kintamuosius. Raskite absoliutų JAVA vykdomosios programos kelią savo sistemoje.
readlink -f $(which java)
Pamatysite panašų išvestį.
[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
Dabar nustatykite JAVA_HOME
ir JRE_HOME
aplinkos kintamąjį pagal „Java“ katalogo kelią.
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
Vykdykite bash_profile
failą.
source ~/.bash_profile
Dabar galite paleisti echo $JAVA_HOME
komandą, kad patikrintumėte, ar nustatytas aplinkos kintamasis.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
„Apache“ teikia „PredictionIO“ šaltinio failus, kuriuos galima atsisiųsti ir sukompiliuoti vietoje. Norėdami atsisiųsti ir kompiliuoti šaltinio failą, sukurkite naują laikiną katalogą.
mkdir /tmp/pio_sourcefiles && cd /tmp/pio_sourcefiles
Atsisiųskite „PredictionIO“ šaltinio failų archyvą naudodami bet kurią „ Apache Mirror“ svetainę .
wget http://apache.mirror.vexxhost.com/incubator/predictionio/0.12.0-incubating/apache-predictionio-0.12.0-incubating.tar.gz
Ištraukite archyvą ir sukompiliuokite šaltinį, kad sukurtumėte PredictionIO paskirstymą.
tar xf apache-predictionio-0.12.0-incubating.tar.gz
./make-distribution.sh
Aukščiau pateiktas paskirstymas bus sukurtas pagal numatytąsias priklausomybių versijas, kurios yra Scala 2.11.8
, Spark 2.1.1
, Hadoop 2.7.3
ir ElasticSearch 5.5.2
. Palaukite, kol bus baigtas kūrimas. Tai užtruks apie dešimt minučių, atsižvelgiant į jūsų sistemos našumą.
Pastaba : galite laisvai naudoti naujausią palaikomą priklausomybių versiją, tačiau kūrimo metu galite matyti keletą įspėjimų, nes kai kurios funkcijos gali būti nebenaudojamos. Vykdykite ./make-distribution.sh -Dscala.version=2.11.11 -Dspark.version=2.1.2 -Dhadoop.version=2.7.4 -Delasticsearch.version=5.5.3
, pakeisdami versijos numerį pagal savo pasirinkimą.
Sėkmingai užbaigus kūrimą, pabaigoje pamatysite šį pranešimą.
...
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 dvejetainiai failai bus išsaugoti PredictionIO-0.12.0-incubating.tar.gz
archyve. Išskleiskite archyvą /opt
kataloge ir suteikite nuosavybės teisę dabartiniam vartotojui.
sudo tar xf PredictionIO-0.12.0-incubating.tar.gz -C /opt/
sudo chown -R $USER:$USER /opt/PredictionIO-0.12.0-incubating
Nustatykite PIO_HOME
aplinkos kintamąjį.
echo "export PIO_HOME=/opt/PredictionIO-0.12.0-incubating" >> ~/.bash_profile
source ~/.bash_profile
Sukurkite naują katalogą, kad įdiegtumėte PredictionIO priklausomybes, tokias kaip HBase
, Spark
ir Elasticsearch
.
mkdir /opt/PredictionIO-0.12.0-incubating/vendors
Atsisiųskite Scala 2.11.8 versiją ir išskleiskite ją į vendors
katalogą.
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
Atsisiųskite „Apache Hadoop“ 2.7.3 versiją ir išskleiskite ją į vendors
katalogą.
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“ yra numatytasis „PredictionIO“ apdorojimo variklis. Atsisiųskite Spark 2.1.1 versiją ir išskleiskite ją į vendors
katalogą.
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
Atsisiųskite Elasticsearch 5.5.2 versiją ir išskleiskite ją į vendors
katalogą.
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
Galiausiai atsisiųskite HBase 1.2.6 versiją ir išskleiskite ją į vendors
katalogą.
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
Atidarykite hbase-site.xml
konfigūracijos failą, kad sukonfigūruotumėte HBase veikti atskiroje aplinkoje.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-site.xml
Raskite tuščią konfigūracijos bloką ir pakeiskite jį tokia konfigūracija.
<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>
Duomenų katalogą automatiškai sukurs HBase. Redaguokite HBase aplinkos failą, kad nustatytumėte JAVA_HOME
kelią.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh
Panaikinkite 27 eilutės komentarą ir nustatykite „ Java“ diegimo JAVA_HOME
kelią jre
. Kelią į JAVA vykdomąjį failą galite rasti naudodami readlink -f $(which java)
komandą.
# 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
Taip pat pakomentuokite 46 ir 47 eilutes, nes JAVA 8 jų nereikia.
# 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"
Numatytoji konfigūracija PredictionIO aplinkos faile pio-env.sh
daro prielaidą, kad naudojame PostgreSQL arba MySQL. Kadangi naudojome HBase ir Elasticsearch, turėsime pakeisti beveik kiekvieną failo konfigūraciją. Geriausia pasidaryti esamo failo atsarginę kopiją ir sukurti naują PredictionIO aplinkos failą.
mv /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh.bak
Dabar sukurkite naują PredictionIO aplinkos konfigūracijos failą.
nano /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh
Užpildykite failą su tokia konfigūracija.
# 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
Išsaugokite failą ir išeikite iš redaktoriaus.
Atidarykite Elasticsearch konfigūracijos failą.
nano /opt/PredictionIO-0.12.0-incubating/vendors/elasticsearch-5.5.2/config/elasticsearch.yml
Panaikinkite eilutės komentarą ir nustatykite klasterio pavadinimą tiksliai taip, kaip nurodytas PredictionIO aplinkos faile. Aukščiau pio
pateiktoje konfigūracijoje nustatytas klasterio pavadinimas .
# Use a descriptive name for your cluster:
#
cluster.name: pio
Dabar pridėkite $PIO_HOME/bin
katalogą į PATH kintamąjį, kad PredictionIO vykdomieji failai būtų vykdomi tiesiogiai.
echo "export PATH=$PATH:$PIO_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile
Šiuo metu „PredictionIO“ sėkmingai įdiegtas jūsų serveryje.
Galite paleisti visas „PredictionIO“ paslaugas, tokias kaip „Elasticsearch“, „HBase“ ir „Event server“, naudodami vieną komandą.
pio-start-all
Pamatysite tokią išvestį.
[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...
Norėdami patikrinti PredictionIO serverio būseną, naudokite šią komandą.
pio status
Pamatysite tokią išvestį.
[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.
Šioje pamokoje įdiegsime E-Commerce Recommendation
variklio šabloną, kad parodytume „PredictionIO“ serverio funkcionalumą naudodami kai kuriuos duomenų pavyzdžius. Šiame variklio šablone pateikiama asmeninė rekomendacija vartotojui el. prekybos svetainėje. Pagal numatytuosius nustatymus jame yra tokių funkcijų, kaip prekių, kurių nėra sandėlyje, išskyrimas arba rekomendacijų teikimas naudotojui, kuris prisiregistruoja po to, kai modelis yra apmokytas. Be to, pagal numatytuosius nustatymus variklio šablonas peržiūri ir perka įvykius, elementus su kategorijomis ir ypatybėmis bei nepasiekiamų prekių sąrašą. Kai variklis bus išmokytas ir įdiegtas, galite išsiųsti užklausą su vartotojo ID ir rekomenduojamų elementų skaičiumi. Sugeneruota produkcija bus reitinguotas rekomenduojamų elementų ID sąrašas.
Įdiekite „Git“, nes jis bus naudojamas saugyklai klonuoti.
cd ~
sudo yum -y install git
Sistemoje klonuokite E-Commerce Recommender variklio šabloną.
git clone https://github.com/apache/incubator-predictionio-template-ecom-recommender.git MyEComRecomm
Sukurkite naują el. prekybos rekomendacijų šablonų variklio programą. Kiekviena PredictionIO programa naudojama atskiros svetainės duomenims saugoti. Jei turite kelias svetaines, galite sukurti kelias programas, kad kiekvienos svetainės duomenys būtų saugomi kitoje programoje. Galite laisvai pasirinkti bet kokį savo programos pavadinimą.
cd MyEComRecomm/
pio app new myecom
Pamatysite tokią išvestį.
[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
Aukščiau pateiktame išvestyje taip pat yra prieigos raktas, kuris bus naudojamas autentifikuoti siunčiant įvesties duomenis į įvykių serverį.
Prieigos raktą ir galimų programų sąrašą visada galite rasti paleisdami.
pio app list
Pamatysite šią išvestį, kurioje yra programų sąrašas ir prieigos raktas.
[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).
Dabar, kai sukūrėme naują programą, pridėsime prie jos kai kuriuos duomenis. Gamybos aplinkoje norite automatiškai siųsti duomenis į įvykių serverį, integruodami įvykių serverio API į programą. Norėdami sužinoti, kaip veikia „PredictionIO“, į jį importuosime keletą duomenų pavyzdžių. Šablonų variklis pateikia Python scenarijų, kurį galima lengvai naudoti pavyzdiniams duomenims importuoti į įvykių serverį.
Įdiekite Python pip.
sudo yum -y install python-pip
sudo pip install --upgrade pip
Įdiekite PredictionIO Python SDK naudodami pip.
sudo pip install predictionio
Paleiskite Python scenarijų, kad įtrauktumėte pavyzdinius duomenis į įvykių serverį.
python data/import_eventserver.py --access_key a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t
Būtinai pakeiskite prieigos raktą tikruoju prieigos raktu. Pamatysite panašų išvestį.
[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.
Aukščiau pateiktas scenarijus importuoja 10 vartotojų, 50 prekių 6 kategorijose ir kai kuriuos atsitiktinius pirkimo ir peržiūrų įvykius. Norėdami patikrinti, ar įvykiai importuoti, ar ne, galite paleisti šią užklausą.
curl -i -X GET "http://localhost:7070/events.json?accessKey=a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t"
Išvestis parodys visų importuotų įvykių sąrašą JSON formatu.
Dabar atidarykite engine.json
failą redaktoriuje. Šiame faile yra variklio konfigūracija.
nano engine.json
Raskite abu atvejus appName
ir pakeiskite reikšmę tikruoju anksčiau sukurtos programos pavadinimu.
{
"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
}
}
]
}
Sukurkite programą.
pio build --verbose
Jei nenorite matyti žurnalo pranešimų, pašalinkite --verbose
parinktį. Variklio šablono kūrimas pirmą kartą užtruks kelias minutes. Pamatysite panašų išvestį, kai sėkmingai baigs kurti.
[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.
Treniruok variklį dabar. Mokymų metu variklis analizuoja duomenų rinkinį ir pats treniruojasi pagal pateiktą algoritmą.
pio train
Prieš diegdami programą, turėsime atidaryti prievadą 8000
, kad programos būseną būtų galima peržiūrėti žiniatinklio GUI. Be to, svetainės ir programos, naudojantys įvykių serverį, siųs ir gaus savo užklausas per šį prievadą.
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
Dabar galite įdiegti „PredictionIO“ variklį.
pio deploy
Aukščiau pateikta komanda įdiegs variklį ir integruotą žiniatinklio serverį prie prievado, 8000
kad atsakytų į el. prekybos svetainių ir programų užklausas. Sėkmingai įjungus variklį, pabaigoje pamatysite šią išvestį.
[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.
Galite patikrinti variklio būseną http://192.0.2.1:8000
naudodami bet kurią šiuolaikinę naršyklę. Įsitikinkite, kad jį 192.0.2.1
pakeitėte tikruoju Vultr IP adresu.
Tai reiškia, kad el. prekybos rekomendacijos variklio šablonas įdiegtas ir sėkmingai veikia. Galite pateikti variklio šablono užklausą, kad gautumėte penkias rekomendacijas vartotojui u5
, vykdydami šią užklausą naujoje terminalo sesijoje.
curl -H "Content-Type: application/json" \
-d '{ "user": "u5", "num": 5 }' \
http://localhost:8000/queries.json
Pamatysite sugeneruotas rekomendacijas vartotojui 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}]}
Sveikiname, „Apache PredictionIO“ sėkmingai įdiegtas jūsų serveryje. Dabar galite naudoti įvykių serverio API duomenims importuoti į variklį ir numatyti rekomendacijas vartotojui. Jei norite, galite naudoti kitus šablonus iš šablonų galerijos. Būtinai peržiūrėkite Universal Recommender variklio šabloną, kuris gali būti naudojamas beveik visais naudojimo atvejais, įskaitant el. prekybą, naujienas ar vaizdo įrašus.
Naudojate kitą sistemą? Plesk yra patentuotas žiniatinklio prieglobos valdymo skydelis, leidžiantis vartotojams administruoti savo asmenines ir (arba) klientų svetaines, duomenų bazes
Squid yra populiari nemokama „Linux“ programa, leidžianti sukurti persiuntimo žiniatinklio tarpinį serverį. Šiame vadove pamatysite, kaip įdiegti „Squid“ „CentOS“, kad paverstumėte jus
Įvadas Lighttpd yra „Apache“ šakutė, skirta daug mažiau išteklių imti. Jis yra lengvas, todėl jo pavadinimas ir yra gana paprastas naudoti. Įdiegti
VULTR neseniai atliko pakeitimus, ir dabar viskas turėtų veikti gerai, kai įjungta „NetworkManager“. Jei norite išjungti
Icinga2 yra galinga stebėjimo sistema, o kai naudojama pagrindinio kliento modelyje, ji gali pakeisti NRPE pagrįstų stebėjimo patikrų poreikį. Meistras-klientas
Naudojate kitą sistemą? Apache Cassandra yra nemokama ir atviro kodo NoSQL duomenų bazių valdymo sistema, skirta užtikrinti mastelio keitimą, hig.
Naudojate kitą sistemą? Mattermost yra atvirojo kodo, savarankiškai priglobta alternatyva Slack SAAS pranešimų paslaugai. Kitaip tariant, naudodami Mattermost, jūs apytiksliai
„Plesk“ valdymo skydelyje yra labai graži „Lets Encrypt“ integracija. „Lets Encrypt“ yra vienas iš vienintelių SSL teikėjų, išduodančių visus sertifikatus
„Lets Encrypt“ yra sertifikatų institucija, skirta nemokamai teikti SSL sertifikatus. cPanel sukūrė tvarkingą integraciją, kad jūs ir jūsų klientas
Naudojate kitą sistemą? Concrete5 yra atvirojo kodo TVS, kuri siūlo daug išskirtinių ir naudingų funkcijų, padedančių redaktoriams lengvai sukurti turinį
Naudojate kitą sistemą? „Review Board“ yra nemokamas atvirojo kodo įrankis, skirtas šaltinio kodui, dokumentacijai, vaizdams ir daugeliui kitų peržiūrėti. Tai internetinė programinė įranga
Šiame vadove sužinosite, kaip nustatyti HTTP autentifikavimą Nginx žiniatinklio serveriui, kuriame veikia CentOS 7. Reikalavimai Norėdami pradėti, jums reikės
YOURLS (Your Own URL Shortener) yra atvirojo kodo URL sutrumpinimo ir duomenų analizės programa. Šiame straipsnyje apžvelgsime diegimo procesą
Naudojate kitą sistemą? Įvadas ArangoDB yra atvirojo kodo NoSQL duomenų bazė su lanksčiu duomenų modeliu dokumentams, grafikams ir raktų reikšmėms. tai yra
Įvadas Katalogas /etc/ vaidina lemiamą vaidmenį veikiant Linux sistemai. Taip yra todėl, kad beveik visos sistemos konfigūracijos
Daugelis sistemos administratorių valdo didelius serverių kiekius. Kai failus reikia pasiekti skirtinguose serveriuose, prisijungiant prie kiekvieno atskirai apytiksliai
Ši pamoka apims Half Life 2 žaidimų serverio diegimą CentOS 6 sistemoje. 1 veiksmas: būtinų sąlygų įdiegimas Norėdami nustatyti ou
Laravel GitScrum arba GitScrum yra atvirojo kodo produktyvumo įrankis, skirtas padėti kūrimo komandoms įgyvendinti Scrum metodiką panašiai
Įvadas Šiame „Vultr“ vadove sužinosite, kaip įdiegti „PowerDNS“. PowerDNS yra programa, skirta paleisti savo vardų serverius. Tai labai naudinga, kai
Galite nukopijuoti ir įklijuoti šį bash scenarijų į Vultr valdymo skydelio paleisties scenarijaus sritį. Jis įdiegs visus reikalingus paketus į ru
Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.
Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.
Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.
Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.
Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…
Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.
Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.
Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.
Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.
Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį