Как установить Anchor CMS на CentOS 7 LAMP VPS
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
Традиционные подходы к анализу данных невозможно использовать, когда наборы данных достигают определенного размера. Современная альтернатива анализу огромных массивов данных - использование методов машинного обучения. Машинное обучение способно давать точные результаты при использовании быстрого и эффективного алгоритма.
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
Теперь создайте новый файл для конфигурации среды PredictionIO.
nano /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh
Заполните файл следующей конфигурацией.
# 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
Сохраните файл и выйдите из редактора.
Откройте файл конфигурации Elasticsearch.
nano /opt/PredictionIO-0.12.0-incubating/vendors/elasticsearch-5.5.2/config/elasticsearch.yml
Раскомментируйте строку и задайте для имени кластера то же имя, которое указано в файле среды PredictionIO. Имя кластера установлено pio
в вышеупомянутой конфигурации.
# Use a descriptive name for your cluster:
#
cluster.name: pio
Теперь добавьте $PIO_HOME/bin
каталог в переменную PATH, чтобы исполняемые файлы PredictionIO выполнялись напрямую.
echo "export PATH=$PATH:$PIO_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile
На этом этапе PredictionIO успешно установлен на вашем сервере.
Вы можете запустить все службы в PredictionIO, такие как Elasticsearch, HBase и Event server, с помощью одной команды.
pio-start-all
Вы увидите следующий вывод.
[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...
Используйте следующую команду, чтобы проверить состояние сервера PredictionIO.
pio status
Вы увидите следующий вывод.
[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.
Как видно из приведенных выше сообщений, наша система готова к использованию для реализации шаблона движка и прогнозирования данных.
Несколько готовых к использованию шаблонов движка доступны в галерее шаблонов PredictionIO, которую можно легко установить на сервере PredictionIO. Вы можете свободно просматривать список шаблонов движка, чтобы найти тот, который соответствует вашим требованиям, или вы можете написать свой собственный движок.
В этом руководстве мы реализуем E-Commerce Recommendation
шаблон движка, чтобы продемонстрировать функциональность сервера PredictionIO с использованием некоторых примеров данных. Этот шаблон двигателя предоставляет некоторые личные рекомендации пользователю на веб-сайте электронной коммерции. По умолчанию у него есть такие функции, как исключение товаров, отсутствующих на складе, или предоставление рекомендаций пользователю, который зарегистрируется после обучения модели. Также по умолчанию шаблон движка принимает пользовательский вид и покупает события, предметы с категориями и свойствами и список недоступных предметов. После того, как движок обучен и развернут, вы можете отправить запрос с идентификатором пользователя и количеством рекомендуемых элементов. Сгенерированный вывод будет ранжированным списком рекомендуемых идентификаторов предметов.
Установите Git, так как он будет использован для клонирования хранилища.
cd ~
sudo yum -y install git
Клонируйте шаблон движка E-Commerce Recommender в вашей системе.
git clone https://github.com/apache/incubator-predictionio-template-ecom-recommender.git MyEComRecomm
Создайте новое приложение для механизма шаблонов рекомендаций по электронной торговле. Каждое приложение в PredictionIO используется для хранения данных для отдельного веб-сайта. Если у вас есть несколько веб-сайтов, вы можете создать несколько приложений для хранения данных каждого веб-сайта в другом приложении. Вы можете выбрать любое имя для своего приложения.
cd MyEComRecomm/
pio app new myecom
Вы увидите следующий вывод.
[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
Вывод выше также содержит ключ доступа, который будет использоваться для аутентификации при отправке входных данных на сервер событий.
Вы всегда можете найти ключ доступа вместе со списком доступных приложений, запустив их.
pio app list
Вы увидите следующий вывод, содержащий список приложений и ключ доступа.
[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
чтобы можно было просматривать его состояние в веб-интерфейсе. Кроме того, веб-сайты и приложения, использующие сервер событий, будут отправлять и получать свои запросы через этот порт.
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, который можно использовать практически во всех случаях, включая электронную торговлю, новости или видео.
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
При настройке нового сервера Linux рекомендуется обновить ядро системы и другие пакеты до последней стабильной версии. В этой статье
Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам
Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья
Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания
OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через
OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в
Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я
MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns
Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:
Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе
RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях
Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия
Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и
Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.
Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется
Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на
Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер
Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше