Jak zainstalować Anchor CMS na CentOS 7 LAMP VPS
Używasz innego systemu? Anchor CMS to bardzo prosty i niezwykle lekki, darmowy i otwarty system zarządzania treścią (CMS) Blog Engine, który
Tradycyjne podejście do analizy danych jest niemożliwe do zastosowania, gdy zbiory danych osiągną określony rozmiar. Nowoczesną alternatywą dla analizy ogromnych zestawów danych jest stosowanie metod uczenia maszynowego. Uczenie maszynowe jest w stanie uzyskać dokładne wyniki przy użyciu szybkiego i wydajnego algorytmu.
Apache PredictionIO to serwer uczenia maszynowego typu open source, służący do tworzenia mechanizmów predykcyjnych dla każdego zadania uczenia maszynowego. Skraca czas aplikacji uczenia maszynowego z laboratorium do produkcji dzięki zastosowaniu dostosowywanych szablonów silnika, które można szybko zbudować i wdrożyć. Udostępnia komponenty do gromadzenia danych i udostępniania oraz streszcza technologię leżącą u podstaw interfejsu API, który umożliwia programistom skupienie się na komponentach transformacji. Gdy silnik silnika PredictionIO zostanie wdrożony jako usługa sieciowa, może on odpowiadać na zapytania dynamiczne w czasie rzeczywistym.
Prognozy ApacheIO składają się z różnych komponentów.
W tym samouczku użyjemy 192.0.2.1
jako publicznego adresu IP serwera. Zamień wszystkie wystąpienia na 192.0.2.1
swój publiczny adres IP Vultr.
Zaktualizuj system podstawowy za pomocą przewodnika Jak zaktualizować CentOS 7 . Po zaktualizowaniu systemu przejdź do instalacji Java.
Wiele komponentów PredictionIO wymaga do działania JDK lub Java Development Kit, wersja 8. Obsługuje zarówno OpenJDK, jak i Oracle Java. W tym samouczku zainstalujemy wersję 8 OpenJDK.
OpenJDK można łatwo zainstalować, ponieważ pakiet jest dostępny w domyślnym repozytorium YUM.
sudo yum -y install java-1.8.0-openjdk-devel
Sprawdź wersję Java, aby upewnić się, że została poprawnie zainstalowana.
java -version
Otrzymasz podobny wynik.
[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)
Zanim przejdziemy dalej, musimy skonfigurować zmienne środowiskowe JAVA_HOME
i JRE_HOME
. Znajdź absolutną ścieżkę pliku wykonywalnego JAVA w swoim systemie.
readlink -f $(which java)
Zobaczysz podobne wyjście.
[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
Teraz ustaw JAVA_HOME
i JRE_HOME
zmienna w zależności od ścieżki katalogu 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
Uruchom bash_profile
plik.
source ~/.bash_profile
Teraz możesz uruchomić echo $JAVA_HOME
polecenie, aby sprawdzić, czy zmienna środowiskowa jest ustawiona.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Apache zapewnia pliki źródłowe PredictionIO, które można pobrać i skompilować lokalnie. Utwórz nowy katalog tymczasowy, aby pobrać i skompilować plik źródłowy.
mkdir /tmp/pio_sourcefiles && cd /tmp/pio_sourcefiles
Pobierz archiwum plików źródłowych PredictionIO, korzystając z dowolnej witryny Apache Mirror .
wget http://apache.mirror.vexxhost.com/incubator/predictionio/0.12.0-incubating/apache-predictionio-0.12.0-incubating.tar.gz
Wyodrębnij archiwum i skompiluj źródło, aby utworzyć dystrybucję PredictionIO.
tar xf apache-predictionio-0.12.0-incubating.tar.gz
./make-distribution.sh
Powyższy podział zostanie zbudowana na wersji domyślnych zależności, które są Scala 2.11.8
, Spark 2.1.1
, Hadoop 2.7.3
i ElasticSearch 5.5.2
. Poczekaj na zakończenie kompilacji, ukończenie zajmie około dziesięciu minut, w zależności od wydajności systemu.
Uwaga : Możesz używać najnowszej obsługiwanej wersji zależności, ale podczas kompilacji możesz zobaczyć ostrzeżenia, ponieważ niektóre funkcje mogą być przestarzałe. Uruchom ./make-distribution.sh -Dscala.version=2.11.11 -Dspark.version=2.1.2 -Dhadoop.version=2.7.4 -Delasticsearch.version=5.5.3
, zastępując numer wersji zgodnie z twoim wyborem.
Po pomyślnym zakończeniu kompilacji na końcu zobaczysz następujący komunikat.
...
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
Pliki binarne PredictionIO zostaną zapisane w PredictionIO-0.12.0-incubating.tar.gz
archiwum. Wypakuj archiwum do /opt
katalogu i przekaż własność bieżącemu użytkownikowi.
sudo tar xf PredictionIO-0.12.0-incubating.tar.gz -C /opt/
sudo chown -R $USER:$USER /opt/PredictionIO-0.12.0-incubating
Ustaw PIO_HOME
zmienną środowiskową.
echo "export PIO_HOME=/opt/PredictionIO-0.12.0-incubating" >> ~/.bash_profile
source ~/.bash_profile
Utwórz nowy katalog, aby zainstalować PredictionIO Zależności takich jak HBase
, Spark
i Elasticsearch
.
mkdir /opt/PredictionIO-0.12.0-incubating/vendors
Pobierz Scala w wersji 2.11.8 i wypakuj ją do vendors
katalogu.
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
Pobierz Apache Hadoop w wersji 2.7.3 i wypakuj go do vendors
katalogu.
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 to domyślny silnik przetwarzania dla PredictionIO. Pobierz Spark w wersji 2.1.1 i wypakuj go do vendors
katalogu.
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
Pobierz Elasticsearch w wersji 5.5.2 i wypakuj go do vendors
katalogu.
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
Na koniec pobierz HBase w wersji 1.2.6 i wypakuj ją do vendors
katalogu.
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
Otwórz hbase-site.xml
plik konfiguracyjny, aby skonfigurować HBase do pracy w autonomicznym środowisku.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-site.xml
Znajdź pusty blok konfiguracji i zastąp go następującą konfiguracją.
<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>
Katalog danych zostanie utworzony automatycznie przez HBase. Edytuj plik środowiska HBase, aby ustawić JAVA_HOME
ścieżkę.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh
Odkomentuj wiersz 27 i ustaw JAVA_HOME
ścieżkę jre
instalacji Java. Ścieżkę do pliku wykonywalnego JAVA można znaleźć za pomocą readlink -f $(which java)
polecenia.
# 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
Ponadto skomentuj numery linii 46 i 47, ponieważ nie są one wymagane dla 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"
Domyślna konfiguracja w pliku środowiska PredictionIO pio-env.sh
zakłada, że korzystamy z PostgreSQL lub MySQL. Ponieważ korzystaliśmy z HBase i Elasticsearch, będziemy musieli zmodyfikować prawie każdą konfigurację w pliku. Najlepiej zrobić kopię zapasową istniejącego pliku i utworzyć nowy plik środowiska PredictionIO.
mv /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh.bak
Teraz utwórz nowy plik do konfiguracji środowiska PredictionIO.
nano /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh
Wypełnij plik następującą konfiguracją.
# 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
Zapisz plik i wyjdź z edytora.
Otwórz plik konfiguracyjny Elasticsearch.
nano /opt/PredictionIO-0.12.0-incubating/vendors/elasticsearch-5.5.2/config/elasticsearch.yml
Usuń komentarz z wiersza i ustaw dokładnie nazwę klastra podaną w pliku środowiska PredictionIO. Nazwa klastra jest ustawiona pio
na powyższą konfigurację.
# Use a descriptive name for your cluster:
#
cluster.name: pio
Teraz dodaj $PIO_HOME/bin
katalog do zmiennej PATH, aby pliki wykonywalne PredictionIO były wykonywane bezpośrednio.
echo "export PATH=$PATH:$PIO_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile
W tym momencie PredictionIO zostało pomyślnie zainstalowane na twoim serwerze.
Możesz uruchomić wszystkie usługi w PredictionIO, takie jak Elasticsearch, HBase i serwer zdarzeń, za pomocą jednego polecenia.
pio-start-all
Zobaczysz następujące dane wyjściowe.
[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...
Użyj następującego polecenia, aby sprawdzić status serwera PredictionIO.
pio status
Zobaczysz następujące dane wyjściowe.
[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.
Jak widać w powyższych komunikatach, nasz system jest gotowy do użycia w celu wdrożenia szablonu silnika i przewidywania danych.
Kilka gotowych do użycia szablonów silnika jest dostępnych w Galerii szablonów PredictionIO, które można łatwo zainstalować na serwerze PredictionIO. Możesz swobodnie przeglądać listę szablonów wyszukiwarek, aby znaleźć ten, który jest zgodny z Twoimi wymaganiami lub możesz napisać własny silnik.
W tym samouczku zaimplementujemy E-Commerce Recommendation
szablon silnika, aby zademonstrować funkcjonalność serwera PredictionIO przy użyciu przykładowych danych. Ten szablon silnika stanowi osobistą rekomendację dla użytkownika w witrynie e-commerce. Domyślnie ma takie funkcje, jak wykluczanie brakujących produktów lub przekazywanie rekomendacji użytkownikowi, który zarejestruje się po przeszkoleniu modelu. Domyślnie szablon wyszukiwarki przyjmuje widok użytkownika i kupuje zdarzenia, elementy z kategoriami i właściwościami oraz listę niedostępnych elementów. Po przeszkoleniu i wdrożeniu silnika możesz wysłać zapytanie z identyfikatorem użytkownika i liczbą zalecanych elementów. Wygenerowany wynik będzie listą rankingową zalecanych identyfikatorów produktów.
Zainstaluj Git, ponieważ będzie on używany do klonowania repozytorium.
cd ~
sudo yum -y install git
Sklonuj szablon silnika E-Commerce Rekomendender w swoim systemie.
git clone https://github.com/apache/incubator-predictionio-template-ecom-recommender.git MyEComRecomm
Utwórz nową aplikację dla silnika szablonu rekomendacji e-commerce. Każda aplikacja w PredictionIO służy do przechowywania danych na osobnej stronie internetowej. Jeśli masz wiele witryn, możesz utworzyć wiele aplikacji do przechowywania danych z każdej witryny w innej aplikacji. Możesz wybrać dowolną nazwę swojej aplikacji.
cd MyEComRecomm/
pio app new myecom
Zobaczysz następujące dane wyjściowe.
[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
Powyższe dane wyjściowe zawierają również klucz dostępu, który zostanie użyty do uwierzytelnienia podczas wysyłania danych wejściowych do serwera zdarzeń.
Zawsze możesz znaleźć klucz dostępu wraz z listą dostępnych aplikacji, uruchamiając.
pio app list
Zobaczysz następujące dane wyjściowe zawierające listę aplikacji i klucz dostępu.
[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).
Teraz, gdy stworzyliśmy nową aplikację, dodamy do niej pewne dane. W środowisku produkcyjnym należy automatycznie wysyłać dane do serwera zdarzeń, integrując interfejs API serwera zdarzeń z aplikacją. Aby dowiedzieć się, jak działa PredictionIO, zaimportujemy do niego niektóre przykładowe dane. Silnik szablonów zapewnia skrypt w języku Python, którego można łatwo użyć do zaimportowania przykładowych danych do serwera zdarzeń.
Zainstaluj pip Python.
sudo yum -y install python-pip
sudo pip install --upgrade pip
Zainstaluj PredictionIO Python SDK za pomocą pip.
sudo pip install predictionio
Uruchom skrypt Python, aby dodać przykładowe dane do serwera zdarzeń.
python data/import_eventserver.py --access_key a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t
Pamiętaj, aby zastąpić klucz dostępu faktycznym kluczem dostępu. Zobaczysz podobne wyjście.
[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.
Powyższy skrypt importuje 10 użytkowników, 50 pozycji w 6 kategoriach oraz niektóre losowe zdarzenia zakupu i wyświetleń. Aby sprawdzić, czy zdarzenia są importowane, czy nie, możesz uruchomić następujące zapytanie.
curl -i -X GET "http://localhost:7070/events.json?accessKey=a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t"
Dane wyjściowe pokażą listę wszystkich zaimportowanych zdarzeń w formacie JSON.
Teraz otwórz engine.json
plik w edytorze. Ten plik zawiera konfigurację silnika.
nano engine.json
Znajdź zarówno wystąpienia, jak appName
i zastąp wartość rzeczywistą nazwą wcześniej utworzonej aplikacji.
{
"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
}
}
]
}
Zbuduj aplikację.
pio build --verbose
Jeśli nie chcesz widzieć komunikatów dziennika, usuń --verbose
opcję. Zbudowanie szablonu silnika po raz pierwszy zajmie kilka minut. Podobne wyniki zobaczysz, gdy kompilacja zakończy się pomyślnie.
[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.
Wytrenuj teraz silnik. Podczas szkolenia silnik analizuje zestaw danych i trenuje się zgodnie z dostarczonym algorytmem.
pio train
Przed wdrożeniem aplikacji konieczne będzie otwarcie portu, 8000
aby można było wyświetlić status aplikacji w internetowym interfejsie GUI. Ponadto witryny i aplikacje korzystające z serwera zdarzeń będą wysyłać i odbierać zapytania przez ten port.
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
Teraz możesz wdrożyć silnik PredictionIO.
pio deploy
Powyższe polecenie wdroży silnik i wbudowany serwer internetowy na porcie, 8000
aby odpowiadać na zapytania z witryn i aplikacji e-commerce. Po pomyślnym wdrożeniu silnika zobaczysz następujące dane wyjściowe.
[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.
Możesz zweryfikować status silnika, przechodząc do http://192.0.2.1:8000
dowolnej nowoczesnej przeglądarki. Upewnij się, że zastąpiłeś 192.0.2.1
swój rzeczywisty adres IP Vultr.
Oznacza to, że szablon silnika dla rekomendacji e-commerce został wdrożony i działa poprawnie. Możesz wysłać zapytanie do szablonu silnika, aby pobrać pięć rekomendacji dla użytkownika u5
, uruchamiając następujące zapytanie w nowej sesji terminala.
curl -H "Content-Type: application/json" \
-d '{ "user": "u5", "num": 5 }' \
http://localhost:8000/queries.json
Zobaczysz wygenerowane rekomendacje dla użytkownika 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}]}
Gratulacje, Apache PredictionIO został pomyślnie wdrożony na twoim serwerze. Możesz teraz użyć interfejsu API serwera zdarzeń, aby zaimportować dane do silnika, aby przewidzieć zalecenia dla użytkownika. Jeśli chcesz, możesz użyć innych szablonów z galerii szablonów. Koniecznie sprawdź szablon silnika Universal Rekomendender , którego można używać w prawie wszystkich przypadkach użycia, w tym w handlu elektronicznym, wiadomościach lub filmach.
Używasz innego systemu? Anchor CMS to bardzo prosty i niezwykle lekki, darmowy i otwarty system zarządzania treścią (CMS) Blog Engine, który
Podczas konfigurowania nowego serwera Linux zaleca się aktualizację jądra systemu i innych pakietów do najnowszej stabilnej wersji. W tym artykule
Wprowadzenie RethinkDB to baza danych NoSQL, która przechowuje dane jako dokumenty JSON. Ma bardzo intuicyjny język zapytań i funkcje powszechnie dostępne
Niezależnie od tego, czy chcesz umieścić zapasy sklepów online, czy po prostu prosty sklep z akcesoriami technicznymi, Magento jest doskonałym rozwiązaniem dla eCommerce online. Ten artykuł
OrientDB to wielomodowy model open source NoSQL DBMS nowej generacji. Dzięki obsłudze wielu modeli danych, OrientDB może zapewnić większą funkcjonalność i elastyczność
Neos to innowacyjny system zarządzania treścią typu open source, który doskonale nadaje się do tworzenia i edytowania treści online. Z myślą o autorach i redaktorach, Neo
Vtiger CRM to popularna aplikacja do zarządzania relacjami z klientami, która może pomóc przedsiębiorstwom zwiększyć sprzedaż, zapewnić obsługę klienta i zwiększyć zyski. ja
MaraDNS to lekki, ale solidny program serwera DNS typu open source. W porównaniu z innymi aplikacjami tego samego rodzaju, takimi jak ISC BIND, PowerDNS i djbdns
Używasz innego systemu? Netdata jest wschodzącą gwiazdą w dziedzinie monitorowania wskaźników systemowych w czasie rzeczywistym. W porównaniu z innymi narzędziami tego samego rodzaju, Netdata:
Używasz innego systemu? W tym samouczku wyjaśnię, jak skonfigurować serwer Starbound na CentOS 7. Wymagania wstępne Musisz mieć tę grę na sobie
RabbitMQ to broker komunikatów typu open source, który obsługuje AMQP, STOMP i inne technologie komunikacyjne. Jest szeroko stosowany w aplikacjach dla przedsiębiorstw
Witamy w innym samouczku Vultr. Tutaj dowiesz się, jak zainstalować i uruchomić serwer SAMP. Ten przewodnik został napisany dla CentOS 6. Wymagania wstępne Będziesz potrzebował
Używasz innego systemu? Elgg to silnik sieci społecznościowych typu open source, który umożliwia tworzenie środowisk społecznościowych, takich jak kampusowe sieci społecznościowe
RStudio Server to internetowa wersja RStudio, która jest serią narzędzi zaprojektowanych w celu ułatwienia kodowania przy użyciu języka programowania R. W thi
Bolt to open source CMS napisany w PHP. Kod źródłowy Bolts jest hostowany na GitHub. Ten przewodnik pokaże Ci, jak zainstalować Bolt CMS na nowym CentOS 7 Vult
Elasticsearch to popularny wyszukiwarka pełnotekstowa i silnik analityczny typu open source. Dzięki swojej wszechstronności, skalowalności i łatwości użytkowania, Elasticsearch jest szeroko rozpowszechniony
Omówienie Ten artykuł ma na celu pomóc ci w szybkim uruchomieniu klastra Kubernetes z kubeadm. W tym przewodniku zostaną wdrożone dwa serwery
Używasz innego systemu? Wprowadzenie Sails.js to framework MVC dla Node.js, podobny do Ruby on Rails. Umożliwia tworzenie nowoczesnych aplikacji wer
Wprowadzenie W tym samouczku zainstaluj PufferPanel na naszym Vultr VPS. PufferPanel to otwarty, darmowy panel kontrolny do zarządzania tobą
Wprowadzenie Systemy Linux są domyślnie dostarczane z narzędziami do monitorowania, takimi jak top, df i du, które pomagają monitorować procesy i miejsce na dysku. Często jednak są
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.