CyberPanel installeren en configureren op uw CentOS 7-server
Gebruikt u een ander systeem? Introductie CyberPanel is een van de eerste bedieningspanelen op de markt die zowel open source is als OpenLiteSpeed gebruikt. Wat thi
Traditionele benaderingen van data-analyse zijn onmogelijk te gebruiken wanneer datasets een bepaalde grootte bereiken. Een modern alternatief voor het analyseren van de enorme hoeveelheden gegevens is het gebruik van machine learning-methoden. Machine learning kan nauwkeurige resultaten opleveren bij gebruik van een snel en efficiënt algoritme.
Apache PredictionIO is een open source machine learning-server die wordt gebruikt om voorspellende engines te maken voor elke machine learning-taak. Het verkort de tijd van machine learning-toepassingen van laboratorium tot productie door gebruik te maken van aanpasbare motorsjablonen die snel kunnen worden gebouwd en geïmplementeerd. Het biedt de componenten voor gegevensverzameling en -bediening en abstraheert onderliggende technologie om een API bloot te leggen waarmee ontwikkelaars zich kunnen concentreren op transformatiecomponenten. Zodra de motorserver van PredictionIO is geïmplementeerd als een webservice, kan deze in realtime reageren op dynamische vragen.
Apache PredictionIO bestaat uit verschillende componenten.
In deze zelfstudie gebruiken we 192.0.2.1het openbare IP-adres van de server. Vervang alle exemplaren van 192.0.2.1door uw Vultr openbare IP-adres.
Update uw basissysteem met behulp van de handleiding CentOS 7 updaten . Zodra uw systeem is bijgewerkt, gaat u verder met de installatie van Java.
Veel van de componenten van PredictionIO hebben JDK of Java Development Kit, versie 8 nodig om te werken. Het ondersteunt zowel OpenJDK als Oracle Java. In deze tutorial installeren we OpenJDK versie 8.
OpenJDK kan eenvoudig worden geïnstalleerd, omdat het pakket beschikbaar is in de standaard YUM-repository.
sudo yum -y install java-1.8.0-openjdk-devel
Controleer de Java-versie om er zeker van te zijn dat deze correct is geïnstalleerd.
java -version
Je krijgt een vergelijkbare output.
[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)
Voordat we verder kunnen gaan, moeten we de JAVA_HOMEen JRE_HOMEomgevingsvariabelen instellen. Vind het absolute pad van het JAVA-uitvoerbare bestand in uw systeem.
readlink -f $(which java)
U zult een vergelijkbare uitvoer zien.
[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
Stel nu JAVA_HOMEen JRE_HOMEomgevingsvariabele in volgens het pad van de Java-directory.
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
Voer het bash_profilebestand uit.
source ~/.bash_profile
Nu kunt u de echo $JAVA_HOMEopdracht uitvoeren om te controleren of de omgevingsvariabele is ingesteld.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Apache biedt PredictionIO-bronbestanden die lokaal kunnen worden gedownload en gecompileerd. Maak een nieuwe tijdelijke map om het bronbestand te downloaden en te compileren.
mkdir /tmp/pio_sourcefiles && cd /tmp/pio_sourcefiles
Download het PredictionIO-bronbestandarchief met elke Apache Mirror-site .
wget http://apache.mirror.vexxhost.com/incubator/predictionio/0.12.0-incubating/apache-predictionio-0.12.0-incubating.tar.gz
Pak het archief uit en compileer de bron om een distributie van PredictionIO te maken.
tar xf apache-predictionio-0.12.0-incubating.tar.gz
./make-distribution.sh
Bovenstaande verdeling zal worden gebouwd tegen de standaardversies van de afhankelijkheden, die zijn Scala 2.11.8, Spark 2.1.1, Hadoop 2.7.3en ElasticSearch 5.5.2. Wacht tot het bouwen is voltooid, het duurt ongeveer tien minuten om te voltooien, afhankelijk van de prestaties van je systeem.
Opmerking : u bent vrij om de nieuwste ondersteunde versie van de afhankelijkheden te gebruiken, maar tijdens het bouwen ziet u mogelijk enkele waarschuwingen omdat sommige functies mogelijk worden afgeschaft. Rennen ./make-distribution.sh -Dscala.version=2.11.11 -Dspark.version=2.1.2 -Dhadoop.version=2.7.4 -Delasticsearch.version=5.5.3, vervang het versienummer volgens uw keuze.
Zodra de build is voltooid, ziet u aan het einde het volgende bericht.
...
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
De PredictionIO binaire bestanden worden opgeslagen in het PredictionIO-0.12.0-incubating.tar.gzarchief. Pak het archief uit in de /optdirectory en geef het eigendom aan de huidige gebruiker.
sudo tar xf PredictionIO-0.12.0-incubating.tar.gz -C /opt/
sudo chown -R $USER:$USER /opt/PredictionIO-0.12.0-incubating
Stel de PIO_HOMEomgevingsvariabele in.
echo "export PIO_HOME=/opt/PredictionIO-0.12.0-incubating" >> ~/.bash_profile
source ~/.bash_profile
Maak een nieuwe map om PredictionIO-afhankelijkheden zoals HBase, Sparken te installeren Elasticsearch.
mkdir /opt/PredictionIO-0.12.0-incubating/vendors
Download Scala versie 2.11.8 en pak het uit in de vendorsdirectory.
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
Download Apache Hadoop versie 2.7.3 en pak het uit in de vendorsmap.
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 is de standaard verwerkingsengine voor PredictionIO. Download Spark versie 2.1.1 en pak het uit in de vendorsdirectory.
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
Download Elasticsearch versie 5.5.2 en pak het uit in de vendorsdirectory.
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
Download ten slotte HBase-versie 1.2.6 en pak het uit in de vendorsmap.
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
Open het hbase-site.xmlconfiguratiebestand om HBase te configureren om in een zelfstandige omgeving te werken.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-site.xml
Zoek het lege configuratieblok en vervang het door de volgende configuratie.
<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>
De datamap wordt automatisch aangemaakt door HBase. Bewerk het HBase-omgevingsbestand om het JAVA_HOMEpad in te stellen.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh
Maak een opmerking bij regelnummer 27 en stel JAVA_HOMEhet pad in van jreuw Java-installatie. Je kunt het pad naar het JAVA-uitvoerbare bestand vinden met behulp van de readlink -f $(which java)opdracht.
# 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
Geef ook commentaar op regelnummers 46 en 47 omdat ze niet vereist zijn voor 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"
De standaardconfiguratie in het PredictionIO-omgevingsbestand pio-env.shgaat ervan uit dat we PostgreSQL of MySQL gebruiken. Omdat we HBase en Elasticsearch hebben gebruikt, moeten we bijna elke configuratie in het bestand wijzigen. Het is het beste om een back-up te maken van het bestaande bestand en een nieuw PredictionIO-omgevingsbestand te maken.
mv /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh.bak
Maak nu een nieuw bestand aan voor de configuratie van de PredictionIO-omgeving.
nano /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh
Vul het bestand in met de volgende configuratie.
# 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
Sla het bestand op en verlaat de editor.
Open het Elasticsearch-configuratiebestand.
nano /opt/PredictionIO-0.12.0-incubating/vendors/elasticsearch-5.5.2/config/elasticsearch.yml
Maak een commentaar op de regel en stel de clusternaam in op exact dezelfde als die in het PredictionIO-omgevingsbestand. De clusternaam is ingesteld op pioin de bovenstaande configuratie.
# Use a descriptive name for your cluster:
#
cluster.name: pio
Voeg nu de $PIO_HOME/bindirectory toe aan de PATH-variabele zodat de PredictionIO-executables direct worden uitgevoerd.
echo "export PATH=$PATH:$PIO_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile
Op dit moment is PredictionIO met succes op uw server geïnstalleerd.
U kunt alle services in PredictionIO starten, zoals Elasticsearch, HBase en Event-server met één enkele opdracht.
pio-start-all
Je ziet de volgende 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...
Gebruik de volgende opdracht om de status van de PredictionIO-server te controleren.
pio status
Je ziet de volgende 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.
Zoals we in de bovenstaande berichten kunnen zien, is ons systeem klaar voor gebruik voor het implementeren van een motorsjabloon en het voorspellen van gegevens.
Er zijn verschillende kant-en-klare engine-sjablonen beschikbaar in de PredictionIO-sjabloongalerij die eenvoudig op de PredictionIO-server kan worden geïnstalleerd. U bent vrij om door de lijst met motorsjablonen te bladeren om degene te vinden die dicht bij uw vereisten ligt, of u kunt uw eigen engine schrijven.
In deze tutorial zullen we de motorsjabloon implementeren E-Commerce Recommendationom de functionaliteit van de PredictionIO-server te demonstreren met behulp van enkele voorbeeldgegevens. Deze motorsjabloon geeft een persoonlijke aanbeveling aan een gebruiker op een e-commerce website. Standaard heeft het functies zoals het uitsluiten van artikelen die niet op voorraad zijn of het geven van aanbevelingen aan een gebruiker die zich aanmeldt nadat het model is getraind. Ook neemt de motorsjabloon standaard de weergave van een gebruiker op en koopt hij evenementen, items met categorieën en eigenschappen en een lijst met niet-beschikbare items. Zodra de engine is getraind en geïmplementeerd, kunt u een query verzenden met de gebruikers-ID en het aantal aan te bevelen items. De gegenereerde output is een gerangschikte lijst met aanbevolen item-ID's.
Installeer Git, omdat het zal worden gebruikt om de repository te klonen.
cd ~
sudo yum -y install git
Kloon de E-Commerce Recommender engine-sjabloon op uw systeem.
git clone https://github.com/apache/incubator-predictionio-template-ecom-recommender.git MyEComRecomm
Maak een nieuwe applicatie voor de engine voor aanbevelingen voor e-commerce-aanbevelingen. Elke applicatie in PredictionIO wordt gebruikt om de gegevens op te slaan voor een aparte website. Als u meerdere websites heeft, kunt u meerdere apps maken om de gegevens van elke website op te slaan in een andere applicatie. U kunt elke naam voor uw toepassing kiezen.
cd MyEComRecomm/
pio app new myecom
Je ziet de volgende 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
De uitvoer hierboven bevat ook de toegangssleutel die zal worden gebruikt om te verifiëren bij het verzenden van de invoergegevens naar de gebeurtenisserver.
U kunt de toegangssleutel en de lijst met beschikbare applicaties altijd vinden door te draaien.
pio app list
U ziet de volgende uitvoer met een lijst met applicaties en de toegangssleutel.
[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).
Nu we een nieuwe applicatie hebben gemaakt, zullen we er wat gegevens aan toevoegen. In de productieomgeving zou u de gegevens automatisch naar de gebeurtenisserver willen sturen door de API van de gebeurtenisserver in de applicatie te integreren. Om te leren hoe PredictionIO werkt, zullen we er enkele voorbeeldgegevens in importeren. De sjabloonengine biedt een Python-script dat gemakkelijk kan worden gebruikt om de voorbeeldgegevens in de gebeurtenisserver te importeren.
Installeer Python pip.
sudo yum -y install python-pip
sudo pip install --upgrade pip
Installeer PredictionIO Python SDK met pip.
sudo pip install predictionio
Voer het Python-script uit om de voorbeeldgegevens toe te voegen aan de gebeurtenisserver.
python data/import_eventserver.py --access_key a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t
Zorg ervoor dat u de toegangssleutel vervangt door uw daadwerkelijke toegangssleutel. U zult een vergelijkbare uitvoer zien.
[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.
Het bovenstaande script importeert 10 gebruikers, 50 items in 6 categorieën en enkele willekeurige aankoop- en weergavegebeurtenissen. Om te controleren of de gebeurtenissen al dan niet zijn geïmporteerd, kunt u de volgende query uitvoeren.
curl -i -X GET "http://localhost:7070/events.json?accessKey=a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t"
De uitvoer toont u de lijst met alle geïmporteerde gebeurtenissen in JSON-indeling.
Open nu het engine.jsonbestand in de editor. Dit bestand bevat de configuratie van de engine.
nano engine.json
Zoek zowel het voorkomen van appNameals de waarde vervangen door de werkelijke naam van de app die u eerder hebt gemaakt.
{
"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
}
}
]
}
Bouw de applicatie.
pio build --verbose
Verwijder de --verboseoptie als u de logboekberichten niet wilt zien . Het bouwen van de motorsjabloon duurt een paar minuten. U zult een vergelijkbare uitvoer zien wanneer de build met succes is voltooid.
[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.
Train nu de motor. Tijdens de training analyseert de engine de dataset en traint zichzelf volgens het verstrekte algoritme.
pio train
Voordat we de applicatie implementeren, moeten we de poort openen 8000zodat de status van de applicatie kan worden bekeken op de web-GUI. Ook zullen de websites en applicaties die de gebeurtenisserver gebruiken hun vragen via deze poort verzenden en ontvangen.
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
Nu kunt u de PredictionIO-engine gebruiken.
pio deploy
De bovenstaande opdracht zal de engine en de ingebouwde webserver op de poort inzetten 8000om te reageren op de vragen van de e-commerce websites en applicaties. Aan het einde ziet u de volgende uitvoer zodra de engine met succes is geïmplementeerd.
[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.
U kunt de status van de engine verifiëren door naar http://192.0.2.1:8000een moderne browser te gaan. Zorg ervoor dat u vervangt 192.0.2.1door uw werkelijke Vultr IP-adres.
Dit betekent dat de motorsjabloon voor E-commerce-aanbeveling is geïmplementeerd en met succes wordt uitgevoerd. U kunt de motorsjabloon opvragen om vijf aanbevelingen voor de gebruiker u5op te halen door de volgende query uit te voeren in een nieuwe terminalsessie.
curl -H "Content-Type: application/json" \
-d '{ "user": "u5", "num": 5 }' \
http://localhost:8000/queries.json
U ziet de gegenereerde aanbevelingen voor de gebruiker 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}]}
Gefeliciteerd, Apache PredictionIO is met succes op uw server geïmplementeerd. U kunt nu de API van de gebeurtenisserver gebruiken om de gegevens in de engine te importeren om de aanbevelingen voor de gebruiker te voorspellen. Als u wilt, kunt u enkele andere sjablonen uit de sjabloongalerij gebruiken. Zorg ervoor dat u de Universal Recommender- enginesjabloon bekijkt, die in bijna alle use-cases kan worden gebruikt, inclusief e-commerce, nieuws of video.
Gebruikt u een ander systeem? Introductie CyberPanel is een van de eerste bedieningspanelen op de markt die zowel open source is als OpenLiteSpeed gebruikt. Wat thi
Introductie Sensu is een gratis en open source monitoringoplossing die kan worden gebruikt om server, applicatie en verschillende systeemservices te monitoren. Sensu i
Het gebruik van een sudo-gebruiker om toegang te krijgen tot een server en opdrachten uit te voeren op rootniveau is een veel voorkomende praktijk onder Linux en Unix-systeembeheerder. Het gebruik van een sud
Gebruikt u een ander systeem? RTMP is geweldig voor het weergeven van live inhoud. Wanneer RTMP is gekoppeld aan FFmpeg, kunnen streams worden omgezet in verschillende kwaliteiten. Vultr ik
TaskBoard is een gratis en open source webbeheer voor tijdbeheer. Geïnspireerd door Kanban, kan TaskBoard u helpen bij het bijhouden van dingen die moeten worden gedaan in een
Gebruikt u een ander systeem? Gradle is een gratis en open source toolset voor het automatiseren van builds, gebaseerd op de concepten van Apache Ant en Apache Maven. Gradle biedt
Gebruikt u een ander systeem? In deze handleiding zullen we zien hoe u een FTP-server (ProFTPd) configureert om bestanden over te zetten tussen uw pc en uw server.
Gebruikt u een ander systeem? Netdata is een rijzende ster op het gebied van realtime monitoring van systeemstatistieken. Vergeleken met andere tools van dezelfde soort, Netdata:
Gebruikt u een ander systeem? Apache Cassandra is een gratis en open source NoSQL-databasebeheersysteem dat is ontworpen om schaalbaarheid te bieden
In deze tutorial leer je goed hoe je een Just Cause 2 multiplayer-server opzet. Vereisten Zorg ervoor dat het systeem volledig is bijgewerkt voordat we beginnen
Gebruikt u een ander systeem? In deze tutorial leg ik uit hoe je een Starbound-server instelt op CentOS 7. Vereisten Je moet dit spel op je hebben
ZNC is een gratis en open-source IRC-uitsmijter die permanent verbonden blijft met een netwerk, zodat klanten berichten kunnen ontvangen die worden verzonden terwijl ze offline zijn. Thi
Django is een populair Python-framework voor het schrijven van webapplicaties. Met Django kun je sneller applicaties bouwen, zonder het wiel opnieuw uit te vinden. Als je wilt
MantisBT, of Mantis Bug Tracker, is een open source issue tracker geschreven in PHP. MantisBT is uitgebalanceerd tussen gebruiksgemak en functionaliteit, mits
Gebruikt u een ander systeem? Elgg is een open source engine voor sociaal netwerken waarmee sociale omgevingen kunnen worden gecreëerd, zoals sociale campusnetwerken
Froxlor is een open source, gratis, lichtgewicht en toch krachtig serverbeheerpaneel dat geweldig is voor het opzetten en beheren van webhostingservices. Thi
Gebruikt u een ander systeem? Alfresco Community Edition is een open source-versie van de Alfresco Content Services. Het is geschreven in Java en gebruikt PostgreSQL t
Vtiger CRM is een populaire applicatie voor klantrelatiebeheer die bedrijven kan helpen hun verkoop te laten groeien, klantenservice te bieden en de winst te vergroten. ik
Wat je nodig hebt Een Vultr VPS met minimaal 1 GB RAM. SSH-toegang (met root- / beheerdersrechten). Stap 1: BungeeCord installeren Eerste dingen eerst
MaraDNS is een lichtgewicht maar robuust open source DNS-serverprogramma. Vergeleken met andere applicaties van dezelfde soort, zoals ISC BIND, PowerDNS en djbdns
Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek
ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.
WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+
Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.
Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie
13 Commerciële data-extractietools voor big data
Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true
Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.
Een inzicht in 26 Big Data-analysetechnieken: deel 1
AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.