Инсталирајте Плеск на ЦентОС 7
Користите другачији систем? Плеск је власничка контролна табла веб хоста која омогућава корисницима да управљају својим личним и/или клијентским веб локацијама, базама података
Традиционалне приступе анализи података немогуће је користити када скупови података достигну одређену величину. Модерна алтернатива анализи огромних скупова података је коришћење метода машинског учења. Машинско учење је у стању да произведе тачне резултате када се користи брз и ефикасан алгоритам.
Апацхе ПредицтионИО је сервер за машинско учење отвореног кода који се користи за креирање предиктивних механизама за било који задатак машинског учења. Скраћује време примене машинског учења од лабораторије до производње коришћењем прилагодљивих шаблона мотора који се могу брзо изградити и применити. Он обезбеђује компоненте за прикупљање података и опслуживање, као и апстрахује основну технологију да би открио АПИ који омогућава програмерима да се фокусирају на компоненте трансформације. Када се сервер мотора ПредицтионИО примени као веб услуга, он може да одговори на динамичке упите у реалном времену.
Апацхе ПредицтионИО се састоји од различитих компоненти.
У овом водичу користићемо 192.0.2.1
као јавну ИП адресу сервера. Замените сва појављивања 192.0.2.1
са својом јавном ИП адресом Вултр.
Ажурирајте свој основни систем помоћу водича Како да ажурирате ЦентОС 7 . Када се ваш систем ажурира, наставите са инсталирањем Јаве.
Многе компоненте ПредицтионИО захтевају ЈДК, или Јава Девелопмент Кит, верзија 8 да би радиле. Подржава и ОпенЈДК и Орацле Јава. У овом водичу ћемо инсталирати ОпенЈДК верзију 8.
ОпенЈДК се може лако инсталирати, пошто је пакет доступан у подразумеваном ИУМ спремишту.
sudo yum -y install java-1.8.0-openjdk-devel
Проверите верзију Јаве да бисте били сигурни да је исправно инсталирана.
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
. Пронађите апсолутну путању ЈАВА извршне датотеке у вашем систему.
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
променљиву окружења у складу са путањом Јава директоријума.
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
Апацхе обезбеђује изворне датотеке ПредицтионИО које се могу локално преузети и компајлирати. Направите нови привремени директоријум за преузимање и компајлирање изворне датотеке.
mkdir /tmp/pio_sourcefiles && cd /tmp/pio_sourcefiles
Преузмите архиву изворне датотеке ПредицтионИО користећи било коју Апацхе Миррор локацију .
wget http://apache.mirror.vexxhost.com/incubator/predictionio/0.12.0-incubating/apache-predictionio-0.12.0-incubating.tar.gz
Извуците архиву и компајлирајте извор да бисте креирали дистрибуцију ПредицтионИО.
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-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
Креирајте нови директоријум да бисте инсталирали ПредицтионИО зависности као што су HBase
, Spark
и Elasticsearch
.
mkdir /opt/PredictionIO-0.12.0-incubating/vendors
Преузмите Сцала верзију 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
Преузмите Апацхе Хадооп верзију 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
Апацхе Спарк је подразумевани механизам за обраду за ПредицтионИО. Преузмите Спарк верзију 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
Преузмите Еластицсеарцх верзију 5.5.2 и распакујте је у vendors
директоријум.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.tar.gz
tar xf elasticsearch-5.5.2.tar.gz -C /opt/PredictionIO-0.12.0-incubating/vendors
На крају, преузмите ХБасе верзију 1.2.6 и распакујте је у 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
конфигурациону датотеку да бисте конфигурисали ХБасе за рад у самосталном окружењу.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-site.xml
Find the empty configuration block and replace it with the following configuration.
<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>
The data directory will be created automatically by HBase. Edit the HBase environment file to set the JAVA_HOME
path.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh
Uncomment line number 27 and set JAVA_HOME
to the path of jre
, your Java installation. You can find the path to the JAVA executable using the readlink -f $(which java)
command.
# 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
Also, comment out line numbers 46 and 47 as they are not required for 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"
The default configuration in the PredictionIO environment file pio-env.sh
assumes that we are using PostgreSQL or MySQL. As we have used HBase and Elasticsearch, we will need to modify nearly every configuration in the file. It's best to take a backup of the existing file and create a new PredictionIO environment file.
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).
Сада када смо направили нову апликацију, додаћемо јој неке податке. У производном окружењу, желели бисте да аутоматски пошаљете податке на сервер догађаја интеграцијом АПИ сервера догађаја у апликацију. Да бисмо научили како ПредицтионИО функционише, увешћемо неке узорке података у њега. Механизам шаблона обезбеђује Питхон скрипту која се лако може користити за увоз узорака података у сервер догађаја.
Инсталирајте Питхон пип.
sudo yum -y install python-pip
sudo pip install --upgrade pip
Инсталирајте ПредицтионИО Питхон СДК користећи пип.
sudo pip install predictionio
Покрените Питхон скрипту да додате узорке података на сервер догађаја.
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"
Излаз ће вам показати листу свих увезених догађаја у ЈСОН формату.
Сада отворите 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
тако да се статус апликације може видети на веб ГУИ. Такође, веб локације и апликације које користе сервер догађаја ће слати и примати своје упите преко овог порта.
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
Сада можете да примените ПредицтионИО механизам.
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
својом стварном Вултр ИП адресом.
Ово значи да је шаблон мотора за препоруку за е-трговину примењен и да успешно ради. Можете да упитате шаблон мотора да бисте преузели пет препорука за корисника 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}]}
Честитамо, Апацхе ПредицтионИО је успешно распоређен на вашем серверу. Сада можете да користите АПИ сервера догађаја за увоз података у машину да бисте предвидели препоруке за корисника. Ако желите, можете користити неке друге шаблоне из галерије шаблона. Обавезно погледајте шаблон мотора Универсал Рецоммендер који се може користити у скоро свим случајевима употребе укључујући е-трговину, вести или видео.
Користите другачији систем? Плеск је власничка контролна табла веб хоста која омогућава корисницима да управљају својим личним и/или клијентским веб локацијама, базама података
Скуид је популаран, бесплатни Линук програм који вам омогућава да креирате веб проки за прослеђивање. У овом водичу ћете видети како да инсталирате Скуид на ЦентОС да вас преокрене
Увод Лигхттпд је форк Апацхе-а који има за циљ да буде много мање интензиван према ресурсима. Лаган је, отуда и његово име, и прилично је једноставан за употребу. Инсталлин
ВУЛТР је недавно направио измене на њиховој страни, и сада би све требало да ради добро из кутије са омогућеним НетворкМанагер-ом. Ако желите да онемогућите
Ицинга2 је моћан систем за праћење, и када се користи у моделу мастер-цлиент, може да замени потребу за провером праћења заснованом на НРПЕ. Главни клијент
Користите другачији систем? Апацхе Цассандра је бесплатан систем за управљање НоСКЛ базом података отвореног кода који је дизајниран да обезбеди скалабилност, високу
Користите другачији систем? Мицровебер је ЦМС и онлајн продавница отвореног кода. Мицровебер изворни код се налази на ГитХуб-у. Овај водич ће вам показати
Користите другачији систем? Маттермост је опен соурце алтернатива Слацк СААС сервису за размену порука. Другим речима, са Маттермостом, ца
Шта вам треба Вултр ВПС са најмање 1 ГБ РАМ-а. ССХ приступ (са роот/административним привилегијама). Корак 1: Инсталирање БунгееЦорд-а Прво прво
Плеск контролна табла има веома лепу интеграцију за Летс Енцрипт. Летс Енцрипт је један од јединих ССЛ провајдера који у потпуности издају сертификате
Летс Енцрипт је ауторитет за сертификацију посвећен бесплатном пружању ССЛ сертификата. цПанел је направио уредну интеграцију тако да ви и ваш клијент
Користите другачији систем? Цонцрете5 је ЦМС отвореног кода који нуди многе карактеристичне и корисне функције које помажу уредницима да лако производе садржај и
Користите другачији систем? Ревиев Боард је бесплатан алат отвореног кода за преглед изворног кода, документације, слика и још много тога. То је софтвер заснован на вебу
У овом водичу ћете научити како да подесите ХТТП аутентификацију за Нгинк веб сервер који ради на ЦентОС 7. Захтеви Да бисте започели, требаће вам
ИОУРЛС (Иоур Овн УРЛ Схортенер) је апликација за скраћивање УРЛ-ова отвореног кода и аналитику података. У овом чланку ћемо покрити процес инсталације
Користите другачији систем? Увод АрангоДБ је НоСКЛ база података отвореног кода са флексибилним моделом података за документе, графиконе и кључ-вредности. То је
Увод Директоријум /етц/ игра кључну улогу у начину на који Линук систем функционише. Разлог за то је што је скоро свака конфигурација система
Многи системски администратори управљају великим количинама сервера. Када датотекама треба приступити на различитим серверима, пријављивање на сваки појединачно ца
Овај водич ће покрити процес инсталирања Халф Лифе 2 сервера за игре на ЦентОС 6 систем. Корак 1: Инсталирање предуслова Да бисте подесили оу
Ларавел ГитСцрум или ГитСцрум је алатка за продуктивност отвореног кода дизајнирана да помогне развојним тимовима да имплементирају Сцрум методологију на сличан начин т
Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.
Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.
Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.
Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.
Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…
Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.
Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.
Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.
У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.
Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више