Инсталирайте Plesk на CentOS 7
Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни
Традиционните подходи за анализ на данни са невъзможни за използване, когато наборите от данни достигнат определен размер. Модерна алтернатива за анализиране на огромни набори от данни е използването на методи за машинно обучение. Машинното обучение е в състояние да даде точни резултати при използване на бърз и ефективен алгоритъм.
Apache PredictionIO е сървър за машинно обучение с отворен код, използван за създаване на предсказуеми двигатели за всяка задача за машинно обучение. Той съкращава времето на приложението за машинно обучение от лаборатория до производство, като използва адаптивни шаблони на двигатели, които могат да бъдат създадени и внедрени бързо. Той предоставя компонентите за събиране и обслужване на данни и абстрактни технологии, за да разкрие API, който позволява на разработчиците да се съсредоточат върху компонентите за трансформация. След като сървърът на двигателя на PredictionIO бъде внедрен като уеб услуга, той може да отговаря на динамични заявки в реално време.
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. В този урок ще инсталираме OpenJDK версия 8.
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
Накрая изтеглете HBase версия 1.2.6 и го извлечете в 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
така че състоянието на приложението да може да се види в уеб GUI. Също така, уебсайтовете и приложенията, използващи сървъра за събития, ще изпращат и получават своите заявки през този порт.
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
Сега можете да разгърнете двигателя PredictionIO.
pio deploy
Горната команда ще разгърне двигателя и вградения уеб сървър на порт, за 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 е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни
Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне
Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте
VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате
Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент
Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока
Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже
Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca
Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място
Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати
Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие и вашият клиент
Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и
Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер
В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва
YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране
Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е
Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация
Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок
Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou
Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече