CentOS 7de Tavşan Kümesini Kümeleme
RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir
Veri setlerine belirli bir boyuta ulaştığında geleneksel veri analiz yaklaşımlarının kullanılması imkansızdır. Büyük veri setlerini analiz etmenin modern bir alternatifi, makine öğrenme yöntemlerini kullanmaktır. Makine öğrenimi, hızlı ve verimli bir algoritma kullanırken doğru sonuçlar üretebilir.
Apache PredictionIO, herhangi bir makine öğrenimi görevi için tahmin motorları oluşturmak için kullanılan açık kaynaklı bir makine öğrenim sunucusudur. Hızla oluşturulabilen ve dağıtılabilen özelleştirilebilir motor şablonları kullanarak makine öğrenimi uygulamasının laboratuvardan üretime süresini kısaltır. Veri toplama ve sunum bileşenleri sağlar ve geliştiricilerin dönüşüm bileşenlerine odaklanmalarını sağlayan bir API'yi ortaya çıkarmak için teknolojinin temelini oluşturur. PredictionIO'nun motor sunucusu bir web hizmeti olarak dağıtıldığında, dinamik sorgulara gerçek zamanlı olarak yanıt verebilir.
Apache TahminIO farklı bileşenlerden oluşur.
Bu öğreticide, 192.0.2.1
sunucunun genel IP adresi olarak kullanacağız . 192.0.2.1
İle ilgili tüm tekrarları Vultr genel IP adresinizle değiştirin.
CentOS 7'yi Güncelleme kılavuzunu kullanarak temel sisteminizi güncelleyin . Sisteminiz güncellendiğinde, Java'yı yüklemeye devam edin.
PredictionIO bileşenlerinin birçoğunun çalışması için JDK veya Java Geliştirme Kiti sürüm 8 gerekir. Hem OpenJDK hem de Oracle Java'yı destekler. Bu öğreticide, OpenJDK sürüm 8'i kuracağız.
OpenJDK, paket varsayılan YUM deposunda bulunduğundan kolayca kurulabilir.
sudo yum -y install java-1.8.0-openjdk-devel
Java'nın sürümünü doğru yüklendiğinden emin olmak için doğrulayın.
java -version
Benzer bir çıktı alırsınız.
[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)
Daha ileri gidebilmemiz için, JAVA_HOME
ve JRE_HOME
ortam değişkenlerini ayarlamamız gerekecek . Sisteminizdeki JAVA yürütülebilir dosyasının mutlak yolunu bulun.
readlink -f $(which java)
Benzer bir çıktı göreceksiniz.
[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
Şimdi, Java dizininin yoluna göre ayar JAVA_HOME
ve JRE_HOME
ortam değişkeni.
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
Dosyayı yürütün .
source ~/.bash_profile
Artık echo $JAVA_HOME
ortam değişkeninin ayarlanıp ayarlanmadığını kontrol etmek için komutu çalıştırabilirsiniz .
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Apache, yerel olarak indirilebilen ve derlenebilen PredictionIO kaynak dosyaları sağlar. Kaynak dosyayı indirmek ve derlemek için yeni bir geçici dizin oluşturun.
mkdir /tmp/pio_sourcefiles && cd /tmp/pio_sourcefiles
Herhangi bir Apache Mirror sitesini kullanarak PredictionIO kaynak dosya arşivini indirin .
wget http://apache.mirror.vexxhost.com/incubator/predictionio/0.12.0-incubating/apache-predictionio-0.12.0-incubating.tar.gz
PredictionIO'nun bir dağıtımını oluşturmak için arşivi çıkarın ve kaynağı derleyin.
tar xf apache-predictionio-0.12.0-incubating.tar.gz
./make-distribution.sh
Yukarıdaki dağıtım olan bağımlılıkları, varsayılan sürümleri karşı inşa edilecek Scala 2.11.8
, Spark 2.1.1
, Hadoop 2.7.3
ve ElasticSearch 5.5.2
. Yapının bitmesini bekleyin, sisteminizin performansına bağlı olarak tamamlanması yaklaşık on dakika sürer.
Not : Bağımlılıkların en son desteklenen sürümünü kullanmakta özgürsünüz, ancak bazı işlevler kullanımdan kaldırılabileceği için derleme sırasında bazı uyarılar görebilirsiniz. Çalıştırın ./make-distribution.sh -Dscala.version=2.11.11 -Dspark.version=2.1.2 -Dhadoop.version=2.7.4 -Delasticsearch.version=5.5.3
, sürüm numarasını seçiminize göre değiştirin.
Derleme başarıyla tamamlandığında, sonunda aşağıdaki mesajı görürsünüz.
...
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 ikili dosyaları PredictionIO-0.12.0-incubating.tar.gz
arşive kaydedilir . Arşivi /opt
dizine çıkarın ve mevcut kullanıcıya sahipliğini sağlayın.
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
Ortam değişkenini ayarlayın .
echo "export PIO_HOME=/opt/PredictionIO-0.12.0-incubating" >> ~/.bash_profile
source ~/.bash_profile
HBase
, Spark
Ve gibi PredictionIO bağımlılıklarını yüklemek için yeni bir dizin oluşturun Elasticsearch
.
mkdir /opt/PredictionIO-0.12.0-incubating/vendors
Scala sürüm 2.11.8'i indirin ve vendors
dizine çıkarın .
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 sürüm 2.7.3'ü indirin ve vendors
dizine çıkarın .
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 için varsayılan işleme motorudur. Spark 2.1.1 sürümünü indirin ve vendors
dizine çıkarın .
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 sürüm 5.5.2'yi indirin ve vendors
dizine çıkarın .
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
Son olarak, HBase 1.2.6 sürümünü indirin ve vendors
dizine ayıklayın .
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'i bağımsız bir ortamda çalışacak şekilde yapılandırmak için yapılandırma dosyasını açın .
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-site.xml
Boş yapılandırma bloğunu bulun ve aşağıdaki yapılandırmayla değiştirin.
<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>
Veri dizini HBase tarafından otomatik olarak oluşturulacaktır. JAVA_HOME
Yolu ayarlamak için HBase ortam dosyasını düzenleyin .
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh
Öneri 27 numaralı satır ve Java kurulumunuzun JAVA_HOME
yoluna ayarlanır jre
. JAVA yürütülebilir dosyasının yolunu readlink -f $(which java)
komutu kullanarak bulabilirsiniz .
# 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
Ayrıca, JAVA 8 için gerekli olmadığından 46 ve 47 numaralı satırları da yorumlayın.
# 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 ortam dosyasındaki varsayılan yapılandırma, pio-env.sh
PostgreSQL veya MySQL kullandığımızı varsayar. HBase ve Elasticsearch kullandığımız için, dosyadaki hemen hemen her yapılandırmayı değiştirmemiz gerekecek. Mevcut dosyanın yedeğini almak ve yeni bir PredictionIO ortam dosyası oluşturmak en iyisidir.
mv /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh.bak
Şimdi PredictionIO ortam yapılandırması için yeni bir dosya oluşturun.
nano /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh
Dosyayı aşağıdaki yapılandırmayla doldurun.
# 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
Dosyayı kaydedin ve editörden çıkın.
Elasticsearch yapılandırma dosyasını açın.
nano /opt/PredictionIO-0.12.0-incubating/vendors/elasticsearch-5.5.2/config/elasticsearch.yml
Satırı açın ve küme adını PredictionIO ortam dosyasında verilen adla tamamen aynı olacak şekilde ayarlayın. Küme adı pio
yukarıdaki yapılandırmada olarak ayarlanmıştır.
# Use a descriptive name for your cluster:
#
cluster.name: pio
Şimdi $PIO_HOME/bin
dizini PATH değişkenine ekleyin, böylece PredictionIO yürütülebilir dosyaları doğrudan yürütülür.
echo "export PATH=$PATH:$PIO_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile
Bu noktada, PredictionIO sunucunuza başarıyla yüklenmiştir.
PredictionIO'da Elasticsearch, HBase ve Event server gibi tüm hizmetleri tek bir komut kullanarak başlatabilirsiniz.
pio-start-all
Aşağıdaki çıktıyı göreceksiniz.
[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 sunucusunun durumunu kontrol etmek için aşağıdaki komutu kullanın.
pio status
Aşağıdaki çıktıyı göreceksiniz.
[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.
Yukarıdaki mesajlarda da görebildiğimiz gibi, sistemimiz bir motor şablonu uygulamak ve verileri tahmin etmek için kullanıma hazırdır.
PredictionIO sunucusuna kolayca kurulabilen PredictionIO Şablon Galerisi'nde kullanıma hazır birkaç motor şablonu bulunmaktadır . Gereksinimlerinize yakın olanı bulmak için motor şablonları listesine göz atabilir veya kendi motorunuzu yazabilirsiniz.
Bu öğreticide, E-Commerce Recommendation
bazı örnek veriler kullanarak PredictionIO sunucusunun işlevselliğini göstermek için motor şablonunu uygulayacağız . Bu motor şablonu, bir e-ticaret web sitesindeki bir kullanıcıya bazı kişisel önerilerde bulunur. Varsayılan olarak, stok eğitimlerini hariç tutma veya model eğitildikten sonra kaydolan bir kullanıcıya öneriler sağlama gibi özelliklere sahiptir. Ayrıca, varsayılan olarak, motor şablonu kullanıcının görünümlerini ve etkinliklerini, kategorileri ve özellikleri olan öğeleri ve mevcut olmayan öğelerin listesini alır. Motor eğitildikten ve dağıtıldıktan sonra, kullanıcı kimliği ve tavsiye edilecek öğe sayısı ile bir sorgu gönderebilirsiniz. Oluşturulan çıktı, önerilen öğe kimliklerinin sıralı bir listesi olacaktır.
Depoyu klonlamak için kullanılacağı için Git'i yükleyin.
cd ~
sudo yum -y install git
Sisteminizdeki E-Ticaret Tavsiye motoru şablonunu kopyalayın.
git clone https://github.com/apache/incubator-predictionio-template-ecom-recommender.git MyEComRecomm
E-Ticaret Öneri şablon motoru için yeni bir uygulama oluşturun. PredictionIO'daki her uygulama ayrı bir web sitesine ait verileri saklamak için kullanılır. Birden fazla web siteniz varsa, her web sitesinin verilerini farklı bir uygulamada saklamak için birden fazla uygulama oluşturabilirsiniz. Başvurunuz için herhangi bir isim seçmekte özgürsünüz.
cd MyEComRecomm/
pio app new myecom
Aşağıdaki çıktıyı göreceksiniz.
[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
Yukarıdaki çıktı ayrıca, olay verilerini olay sunucusuna gönderirken kimlik doğrulaması yapmak için kullanılacak erişim anahtarını da içerir.
Erişim anahtarını her zaman çalıştırarak kullanılabilir uygulamalar listesiyle birlikte bulabilirsiniz.
pio app list
Bir uygulama listesi ve erişim anahtarı içeren aşağıdaki çıktıyı göreceksiniz.
[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).
Şimdi yeni bir uygulama oluşturduğumuza göre, ona bazı veriler ekleyeceğiz. Üretim ortamında, olay sunucusu API'sını uygulamaya entegre ederek verileri olay sunucusuna otomatik olarak göndermek istersiniz. PredictionIO'nun nasıl çalıştığını öğrenmek için, bazı örnek verileri içine aktaracağız. Şablon motoru, örnek verileri olay sunucusuna almak için kolayca kullanılabilecek bir Python betiği sağlar.
Python pip'ini kurun.
sudo yum -y install python-pip
sudo pip install --upgrade pip
PredictionIO Python SDK'yı pip kullanarak kurun.
sudo pip install predictionio
Olay sunucusuna örnek veri eklemek için Python komut dosyasını çalıştırın.
python data/import_eventserver.py --access_key a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t
Erişim anahtarını gerçek erişim anahtarınızla değiştirdiğinizden emin olun. Benzer bir çıktı göreceksiniz.
[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.
Yukarıdaki komut dosyası 10 kullanıcıyı, 6 kategoride 50 öğeyi ve bazı rastgele satın alma ve görüntüleme olaylarını içe aktarır. Olayların içe aktarılıp aktarılmadığını kontrol etmek için aşağıdaki sorguyu çalıştırabilirsiniz.
curl -i -X GET "http://localhost:7070/events.json?accessKey=a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t"
Çıktı, içe aktarılan tüm olayların listesini JSON biçiminde gösterir.
Şimdi engine.json
dosyayı düzenleyiciye açın. Bu dosya motorun yapılandırmasını içerir.
nano engine.json
Hem oluşumlarını bulun hem de appName
değeri daha önce oluşturduğunuz uygulamanın gerçek adıyla değiştirin.
{
"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
}
}
]
}
Uygulamayı oluşturun.
pio build --verbose
Günlük mesajlarını görmek istemiyorsanız, --verbose
seçeneği kaldırın . Motor şablonunu ilk kez oluşturmak birkaç dakika sürecektir. Derleme başarıyla tamamlandığında benzer bir çıktı göreceksiniz.
[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.
Şimdi motoru eğitin. Eğitim sırasında motor veri setini analiz eder ve sağlanan algoritmaya göre kendini eğitir.
pio train
Uygulamayı dağıtmadan önce, uygulamanın 8000
durumunun Web GUI'sinde görüntülenebilmesi için bağlantı noktasını açmamız gerekecek . Ayrıca, olay sunucusunu kullanan web siteleri ve uygulamalar sorgularını bu bağlantı noktası üzerinden gönderir ve alır.
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
Şimdi PredictionIO motorunu dağıtabilirsiniz.
pio deploy
Yukarıdaki komut, motoru ve yerleşik web sunucusunu 8000
, e-ticaret web sitelerinden ve uygulamalarından gelen sorgulara yanıt vermek için bağlantı noktasına dağıtır. Motor başarıyla devreye alındıktan sonra aşağıdaki çıktıyı göreceksiniz.
[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
Herhangi bir modern tarayıcıyı kullanarak motorun durumunu doğrulayabilirsiniz . 192.0.2.1
Gerçek Vultr IP adresinizle değiştirdiğinizden emin olun .
Bu, E-Ticaret önerisi için motor şablonunun başarıyla dağıtıldığını ve çalıştığını gösterir. u5
Yeni bir terminal oturumunda aşağıdaki sorguyu çalıştırarak kullanıcı için beş öneri getirmek üzere motor şablonunu sorgulayabilirsiniz.
curl -H "Content-Type: application/json" \
-d '{ "user": "u5", "num": 5 }' \
http://localhost:8000/queries.json
Kullanıcı için oluşturulan önerileri göreceksiniz 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}]}
Tebrikler, Apache PredictionIO sunucunuza başarıyla konuşlandırıldı. Artık kullanıcı için önerileri tahmin etmek üzere verileri motora aktarmak için olay sunucusunun API'sını kullanabilirsiniz. İsterseniz, şablon galerisindeki diğer bazı şablonları da kullanabilirsiniz. E-ticaret, haberler veya video da dahil olmak üzere hemen hemen tüm kullanım durumlarında kullanılabilen Evrensel Tavsiye motoru şablonunu kontrol ettiğinizden emin olun .
RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir
Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size
Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak
Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b
Bu makalede, ModSecurity tarafından korunan bir LEMP yığını oluşturmayı açıklayacağım. ModSecurity faydalı bir açık kaynaklı web uygulaması güvenlik duvarıdır.
Giriş LAMP, Linux, Apache, MySQL ve PHPnin kısaltmasıdır. Bu yazılım yığını, kurulum için en popüler açık kaynaklı çözümdür.
Farklı Bir Sistem mi Kullanıyorsunuz? Chamilo, çevrimiçi eğitim ve takım işbirliği için yaygın olarak kullanılan ücretsiz ve açık kaynaklı bir öğrenme yönetim sistemidir (LMS).
Eskiden OpenERP olarak bilinen Odoo, iyi bilinen bir açık kaynaklı ERP iş platformudur. Her büyüklükteki işletme, bol miktarda lis sayesinde Odoodan yararlanabilir
Icinga2 güçlü bir izleme sistemidir ve bir ana istemci modelinde kullanıldığında, NRPE tabanlı izleme kontrollerine olan ihtiyacın yerini alabilir. Master-Clien
Farklı Bir Sistem mi Kullanıyorsunuz? Couch CMS, web tasarımcılarının tasarlamalarını sağlayan basit ve esnek, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)
Farklı Bir Sistem mi Kullanıyorsunuz? Netdata, gerçek zamanlı sistem ölçümleri izleme alanında yükselen bir yıldızdır. Aynı türdeki diğer araçlarla karşılaştırıldığında, Netdata:
Farklı Bir Sistem mi Kullanıyorsunuz? ERP veya Kurumsal Kaynak Planlaması, temel iş süreçlerini yönetmek için kullanılan bir kurumsal uygulama paketidir. ERPNext ücretsizdir
Başka bir Vultr eğitimine hoş geldiniz. Burada, bir SAMP sunucusunun nasıl kurulacağını ve çalıştırılacağını öğreneceksiniz. Bu kılavuz CentOS 6 için yazılmıştır. Önkoşullar
Genel Bakış Bu makale, bir Kubernetes kümesini hemen kurup kubeadm ile çalıştırmanıza yardımcı olmak içindir. Bu kılavuz iki sunucuyu
Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Sails.js, Ruby on Railse benzer şekilde Node.js için bir MVC çerçevesidir. Modern uygulamalar geliştirmek için yapar
Bu eğitimde, CentOS 6 Sistemine Half Life 2 oyun sunucusu kurma süreci ele alınacaktır. 1. Adım: Önkoşulları kurma
PrestaShop popüler bir açık kaynaklı e-ticaret çözümüdür. Kendi çevrimiçi mağazanızı ücretsiz oluşturmak için kullanabilirsiniz. Bu eğitimde, size
Farklı Bir Sistem mi Kullanıyorsunuz? MODX Revolution hızlı, esnek, ölçeklenebilir, ücretsiz ve açık kaynaklı, kurumsal düzeyde bir İçerik Yönetim Sistemi (CMS)
Giriş Linux sistemleri, süreçleri ve disk alanını izlemeye yardımcı olan varsayılan olarak top, df ve du gibi izleme araçlarıyla birlikte gelir. Çoğu zaman, onlar ar
Farklı Bir Sistem mi Kullanıyorsunuz? Kolab Groupware, ücretsiz ve açık kaynaklı bir web tabanlı grup yazılımı uygulamasıdır. Özellikleri e-posta iletişiminden, olaylardan oluşur
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.
CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?
Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.
Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!
Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.
Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun