نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
در صورت دستیابی به مجموعه دادههای داده به اندازه خاصی ، روشهای سنتی برای تجزیه و تحلیل دادهها غیرممکن است. یک جایگزین مدرن برای تجزیه و تحلیل مجموعه های عظیم داده ها ، استفاده از روش های یادگیری ماشین است. یادگیری ماشین در هنگام استفاده از الگوریتم سریع و کارآمد قادر به تولید نتایج دقیق است.
Apache PredictionIO یک سرور یادگیری ماشین منبع باز است که برای ایجاد موتورهای پیش بینی برای هر کار یادگیری ماشین استفاده می شود. با استفاده از قالب های قابل تنظیم موتور که می توان به سرعت ساخته و مستقر شد ، زمان کاربرد یادگیری ماشین را از آزمایشگاه به تولید کوتاه می کند. این مجموعه داده ها و مؤلفه های ارائه دهنده و انتزاعات فن آوری زمینه ای را برای افشای API فراهم می کند که به توسعه دهندگان امکان می دهد تا روی اجزای تحول متمرکز شوند. هنگامی که سرور موتور PredictionIO به عنوان یک سرویس وب مستقر شد ، می تواند در زمان واقعی به سؤالات پویا پاسخ دهد.
پیش بینی آپاچی از مؤلفه های مختلفی تشکیل شده است.
در این آموزش ، ما به 192.0.2.1
عنوان آدرس IP عمومی سرور استفاده خواهیم کرد. تمام وقایع را 192.0.2.1
با آدرس IP عمومی Vultr خود جایگزین کنید.
سیستم پایه خود را با استفاده از راهنمای نحوه به روزرسانی CentOS 7 به روز کنید . پس از به روزرسانی سیستم ، جاوا را نصب کنید.
بسیاری از مؤلفه های PredictionIO برای کار به JDK یا جاوا توسعه کیت ، نسخه 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
محیط را تنظیم کنید .
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
با استفاده از هر سایت Apache Mirror ، بایگانی منبع منبع PredictionIO را بارگیری کنید .
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 ایجاد می شود. برای تنظیم JAVA_HOME
مسیر ، فایل محیط HBase را ویرایش کنید .
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh
خط Uncomment شماره 27 و نصب شده JAVA_HOME
روی مسیر jre
، نصب جاوا است. با استفاده از readlink -f $(which java)
دستور می توانید مسیر اجرایی 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 سرور شروع کنید.
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 قابل نصب است. شما می توانید در فهرست الگوهای موتور جستجو کنید تا بتوانید مطلبی را پیدا کنید که به نیاز شما نزدیک باشد یا می توانید موتور خود را بنویسید.
در این آموزش ، ما E-Commerce Recommendation
الگوی موتور را به نمایش می گذاریم تا عملکرد سرور PredictionIO را با استفاده از برخی داده های نمونه نشان دهد. این الگوی موتور توصیه های شخصی را در وب سایت تجارت الکترونیکی به کاربر ارائه می دهد. به طور پیش فرض ، دارای ویژگی هایی از قبیل خارج کردن موارد موجودی سهام یا ارائه توصیه هایی به کاربر است که پس از آموزش مدل ثبت نام می کند. همچنین به طور پیش فرض ، قالب موتور نمای کاربر را می گیرد و رویدادها ، کالاهایی را با دسته ها و خصوصیات و لیست موارد غیر قابل دسترسی خریداری می کند. پس از آموزش و استقرار موتور ، می توانید با شناسه کاربری و تعداد موارد مورد نظر ، پرس و جو ارسال کنید. خروجی تولید شده لیستی از آیدیهای مورد توصیه شده است.
Git را نصب کنید ، زیرا برای کلون کردن مخزن استفاده خواهد شد.
cd ~
sudo yum -y install git
قالب موتور پیشنهادی تجارت الکترونیکی را در سیستم خود کلون کنید.
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 ، ما برخی از داده های نمونه را در آن وارد می کنیم. موتور قالب یک اسکریپت پایتون را فراهم می کند که می تواند به راحتی برای وارد کردن داده های نمونه به سرور رویداد استفاده شود.
پی پایت را نصب کنید.
sudo yum -y install python-pip
sudo pip install --upgrade pip
PredictionIO Python SDK را با استفاده از 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"
خروجی لیستی از تمام رویدادهای وارد شده با فرمت JSON را به شما نشان می دهد.
اکنون engine.json
پرونده را در ویرایشگر باز کنید. این پرونده شامل پیکربندی موتور است.
nano engine.json
هر دو مورد را پیدا کنید appName
و ارزش آن را با نام واقعی برنامه ای که قبلاً ایجاد کرده اید جایگزین کنید.
{
"id": "default",
"description": "Default settings",
"engineFactory": "org.example.ecommercerecommendation.ECommerceRecommendationEngine",
"datasource": {
"params" : {
"appName": "myecom"
}
},
"algorithms": [
{
"name": "ecomm",
"params": {
"appName": "myecom",
"unseenOnly": true,
"seenEvents": ["buy", "view"],
"similarEvents": ["view"],
"rank": 10,
"numIterations" : 20,
"lambda": 0.01,
"seed": 3
}
}
]
}
برنامه را بسازید.
pio build --verbose
اگر نمی خواهید پیام های گزارش را مشاهده کنید ، --verbose
گزینه را حذف کنید. ساخت الگوی موتور برای اولین بار چند دقیقه طول خواهد کشید. با اتمام موفقیت آمیز ساخت ، یک خروجی مشابه را خواهید دید.
[user@vultr MyEComRecomm]$ pio build --verbose
[INFO] [Engine$] Using command '/opt/PredictionIO-0.12.0-incubating/sbt/sbt' at /home/user/MyEComRecomm to build.
...
[INFO] [Engine$] Build finished successfully.
[INFO] [Pio$] Your engine is ready for training.
اکنون موتور را آموزش دهید. در طول آموزش ، موتور مجموعه داده ها را تجزیه و تحلیل می کند و طبق الگوریتم ارائه شده ، خود را آموزش می دهد.
pio train
قبل از استقرار برنامه ، باید پورت را باز کنیم 8000
تا وضعیت برنامه در GUI وب مشاهده شود. همچنین وب سایت ها و برنامه های کاربردی با استفاده از سرور رویداد از طریق این درگاه سؤالات خود را ارسال و دریافت می کنند.
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
اکنون می توانید موتور PredictionIO را مستقر کنید.
pio deploy
دستور فوق موتور و سرور وب داخلی را در پورت مستقر می کند 8000
تا به سؤالات از وب سایت ها و برنامه های تجارت الکترونیکی پاسخ دهد. هنگامی که موتور با موفقیت مستقر شد ، خروجی زیر را مشاهده خواهید کرد.
[INFO] [HttpListener] Bound to /0.0.0.0:8000
[INFO] [MasterActor] Engine is deployed and running. Engine API is live at http://0.0.0.0:8000.
http://192.0.2.1:8000
با استفاده از هر مرورگر مدرن می توانید وضعیت موتور را تأیید کنید . مطمئن شوید که 192.0.2.1
آدرس IP واقعی Vultr را جایگزین کرده اید.
این نشان می دهد که الگوی موتور برای توصیه تجارت الکترونیکی مستقر شده و با موفقیت در حال کار است. می توانید u5
با اجرای پرس و جو زیر در یک جلسه ترمینال جدید ، از قالب موتور پرس و جو کنید.
curl -H "Content-Type: application/json" \
-d '{ "user": "u5", "num": 5 }' \
http://localhost:8000/queries.json
توصیه های تولید شده را برای کاربر مشاهده خواهید کرد u5
.
[user@vultr ~]$ curl -H "Content-Type: application/json" \
> -d '{ "user": "u5", "num": 5 }' \
> http://localhost:8000/queries.json
{"itemScores":[{"item":"i25","score":0.9985169366745619},{"item":"i10","score":0.996613946803819},{"item":"i27","score":0.996613946803819},{"item":"i17","score":0.9962796867639341},{"item":"i8","score":0.9955868705972656}]}
تبریک می گویم ، Apache PredictionIO با موفقیت در سرور شما مستقر شد. اکنون می توانید از API سرور رویداد برای وارد کردن داده ها به موتور استفاده کنید تا توصیه ها برای کاربر پیش بینی شود. اگر می خواهید ، می توانید از الگوهای دیگر از گالری قالب استفاده کنید. حتماً الگوی موتور Universal rekomander را مشاهده کنید که تقریباً در کلیه موارد استفاده از جمله تجارت الکترونیکی ، اخبار یا فیلم استفاده می شود
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
مقدمه RethinkDB یک پایگاه داده NoSQL است که داده ها را به عنوان اسناد JSON ذخیره می کند. این یک زبان پرس و جو بسیار بصری است و از ویژگی های آن معمولا در دسترس است
Vtiger CRM یک نرم افزار محبوب مدیریت ارتباط با مشتری است که می تواند به بنگاهها در رشد فروش ، ارائه خدمات به مشتری و افزایش سود کمک کند. من
با استفاده از یک سیستم متفاوت؟ Couch CMS یک سیستم مدیریت محتوای منبع ساده و انعطاف پذیر ، آزاد و منبع باز (CMS) است که به طراحان وب اجازه می دهد تا طراحی کنند.
با استفاده از یک سیستم متفاوت؟ SonarQube یک ابزار منبع باز برای توسعه سیستم با کیفیت است. در جاوا نوشته شده است و چندین پایگاه داده را پشتیبانی می کند. فراهم می کند
با استفاده از یک سیستم متفاوت؟ Netdata یک ستاره در حال افزایش در زمینه نظارت بر معیارهای سیستم در زمان واقعی است. در مقایسه با سایر ابزارهای مشابه ، Netdata:
HTTP / 2 جدیدترین نسخه پروتکل HTTP است که از SPDY مستقر است. توسعه آن توسط Google آغاز شده است و HTTP / 2 تا حد زیادی بر اساس پایگاه کد است
با استفاده از یک سیستم متفاوت؟ در این آموزش ، Ill در مورد نحوه راه اندازی یک سرور Starbound در CentOS 7 توضیح می دهد. پیش نیازها: شما باید این بازی را روی خود داشته باشید
به یکی دیگر از آموزش های Vultr خوش آمدید. در اینجا ، نحوه نصب و اجرای سرور SAMP را یاد خواهید گرفت. این راهنما برای CentOS 6 نوشته شده است. پیش نیازهای مورد نیاز شما
با استفاده از یک سیستم متفاوت؟ Elgg یک موتور شبکه ای منبع باز است که امکان ایجاد محیط های اجتماعی از جمله شبکه های اجتماعی دانشگاه را فراهم می کند
RStudio Server نسخه وب RStudio است که مجموعه ای از ابزارهایی است که برای تسهیل کار برنامه نویسی با استفاده از زبان برنامه نویسی R طراحی شده است. در سه
Bolt یک CMS منبع باز است که به زبان PHP نوشته شده است. کد منبع Bolts در GitHub میزبانی شده است. این راهنما نحوه نصب Bolt CMS را در CentOS 7 Vult تازه نشان می دهد
Elasticsearch یک موتور جستجوی کامل و متن تحلیلی متن کامل است. به لطف تطبیق پذیری ، مقیاس پذیری و سهولت استفاده ، Elasticsearch گسترده تر است
بررسی اجمالی این مقاله به شما کمک می کند تا در هر زمان خوشه ای از Kubernetes را جمع کنید و با kubeadm در حال اجرا باشید. در این راهنما از دو سرور استفاده می شود
با استفاده از یک سیستم متفاوت؟ مقدمه Sails.js یک چارچوب MVC ��رای Node.js است ، شبیه به Ruby on Rails. این امر برای ایجاد برنامه های مدرن ver
Vultrs عملکرد IP فضای شما را امکان پذیر می سازد تا آزادی بی سابقه ای در اختصاص منابع IP شخصی شما به سرورهای cloud Vultr داشته باشید. ما کلی
مقدمه در این آموزش ، PufferPanel را در Vultr VPS ما نصب کنید. PufferPanel یک پانل کنترل با منبع آزاد و بصورت رایگان برای مدیریت شما است
معرفی سیستم های لینوکس به طور پیش فرض مانند top ، df و du با ابزارهای نظارتی ارسال می شوند که به نظارت بر فرایندها و فضای دیسک کمک می کنند. با این حال ، اغلب اوقات ، آنها به صورت طاقت فرسا هستند
با استفاده از یک سیستم متفاوت؟ LibreNMS یک سیستم نظارت بر شبکه منبع باز کاملاً برجسته است. از SNMP برای به دست آوردن داده ها از دستگاه های مختلف استفاده می کند. یک نوع
با استفاده از یک سیستم متفاوت؟ Gitea یک منبع کنترل جایگزین متن باز و خود میزبان است که توسط Git ساخته شده است. Gitea در Golang نوشته شده و هست
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.
NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o
TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من
Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th
با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB
ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.
رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد