كيفية تثبيت وتكوين CyberPanel على خادم CentOS 7 الخاص بك
استخدام نظام مختلف؟ مقدمة تعد CyberPanel واحدة من أولى لوحات التحكم في السوق مفتوحة المصدر وتستخدم OpenLiteSpeed. ما هذا
من المستحيل استخدام الأساليب التقليدية لتحليل البيانات عندما تصل مجموعات البيانات إلى حجم معين. من البدائل الحديثة لتحليل المجموعات الضخمة من البيانات استخدام أساليب التعلم الآلي. التعلم الآلي قادر على تحقيق نتائج دقيقة عند استخدام خوارزمية سريعة وفعالة.
Apache PredictionIO هو خادم تعلم آلي مفتوح المصدر يستخدم لإنشاء محركات تنبؤية لأي مهمة تعلم آلي. إنه يقصر وقت تطبيق التعلم الآلي من المختبر إلى الإنتاج باستخدام قوالب محرك قابلة للتخصيص والتي يمكن بناؤها ونشرها بسرعة. يوفر مكونات جمع البيانات وعرضها ، ويوجز التكنولوجيا الأساسية لفضح واجهة برمجة التطبيقات التي تسمح للمطورين بالتركيز على مكونات التحويل. بمجرد نشر خادم محرك 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
متغير البيئة وفقا لمسار دليل جافا.
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
قم بتنزيل الإصدار 2.11.8 من Scala واستخراجه في 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. قم بتنزيل الإصدار 2.1.1 من Spark واستخراجه في vendors
الدليل.
wget https://archive.apache.org/dist/spark/spark-2.1.1/spark-2.1.1-bin-hadoop2.7.tgz
tar xf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/PredictionIO-0.12.0-incubating/vendors
قم بتنزيل الإصدار 5.5.2 من Elasticsearch واستخراجه في 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
خط uncomment رقم 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"
pio-env.sh
يفترض التكوين الافتراضي في ملف البيئة PredictionIO أننا نستخدم 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
قم بإلغاء تثبيت السطر واضبط اسم المجموعة على نفس الاسم المحدد في ملف بيئة التنبؤ. يتم تعيين اسم الكتلة 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 وخادم الأحداث باستخدام أمر واحد.
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
استنساخ قالب محرك التوصية للتجارة الإلكترونية على نظامك.
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).
الآن بعد أن أنشأنا تطبيقًا جديدًا ، سنضيف بعض البيانات إليه. في بيئة الإنتاج ، قد ترغب في إرسال البيانات تلقائيًا إلى خادم الأحداث من خلال دمج واجهة برمجة تطبيقات خادم الحدث في التطبيق. لمعرفة كيفية عمل PredictionIO ، سنقوم باستيراد بعض عينات البيانات إليه. يوفر محرك القالب سكربت Python الذي يمكن استخدامه بسهولة لاستيراد عينات البيانات إلى خادم الأحداث.
قم بتثبيت Python pip.
sudo yum -y install python-pip
sudo pip install --upgrade pip
قم بتثبيت PredictionIO Python SDK باستخدام النقطة.
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
حتى يمكن عرض حالة التطبيق على Web 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 بنجاح على خادمك. يمكنك الآن استخدام واجهة برمجة التطبيقات لخادم الحدث لاستيراد البيانات إلى المحرك للتنبؤ بالتوصيات للمستخدم. إذا كنت تريد ، يمكنك استخدام بعض القوالب الأخرى من معرض القوالب. تأكد من التحقق من نموذج محرك التوصية العالمية الذي يمكن استخدامه في جميع حالات الاستخدام تقريبًا بما في ذلك التجارة الإلكترونية أو الأخبار أو الفيديو.
استخدام نظام مختلف؟ مقدمة تعد CyberPanel واحدة من أولى لوحات التحكم في السوق مفتوحة المصدر وتستخدم OpenLiteSpeed. ما هذا
أكتوبر هو نظام إدارة محتوى مفتوح المصدر يعتمد على Laravel PHP Framework. مع واجهة أنيقة وبنية وحدات موجزة
RockMongo هي أداة إدارة MongoDB على الويب تشبه أداة إدارة MySQL: phpMyAdmin. سيغطي هذا البرنامج التعليمي عملية التثبيت
Lets Chat هو تطبيق دردشة مفتوح المصدر مصمم لتوفير خدمة الرسائل ذاتية الاستضافة للفرق الصغيرة. يعتمد Lets Chat على NodeJS و MongoDB
استخدام نظام مختلف؟ Taiga هو تطبيق مجاني ومفتوح المصدر لإدارة المشاريع. على عكس أدوات إدارة المشاريع الأخرى ، يستخدم Taiga زيادة
استخدام نظام مختلف؟ المتطلبات الأساسية مثيل خادم Vultr CentOS 7. مستخدم sudo. الخطوة 1: تحديث النظام أولاً ، قم بتحديث خادم النظام الخاص بك إلى th
استخدام نظام مختلف؟ Netdata هي نجمة صاعدة في مجال مراقبة مقاييس النظام في الوقت الفعلي. مقارنة بالأدوات الأخرى من نفس النوع ، Netdata:
DreamFactory هو برنامج مفتوح المصدر يمكنه تحويل أي قاعدة بيانات إلى منصة RESTful API. يمكن نشر DreamFactory على منصات مختلفة. في ثي
استخدام نظام مختلف؟ في هذا البرنامج التعليمي ، سأشرح لك كيفية إعداد خادم Starbound على CentOS 7. المتطلبات الأساسية يجب أن تمتلك هذه اللعبة عليك
Go (تُعرف أيضًا باسم Golang) هي لغة برمجة مكتوبة بشكل ثابت ومجمعة على شكل حرف C تم تطويرها بواسطة Google. جعلت البساطة وتعدد الاستخدامات ب
Django هو إطار Python شائع لكتابة تطبيقات الويب. مع Django ، يمكنك بناء التطبيقات بشكل أسرع ، دون إعادة اختراع العجلة. إذا كنت تريد
مرحبًا بك في برنامج تعليمي Vultr آخر. هنا ، ستتعلم كيفية تثبيت خادم SAMP وتشغيله. تمت كتابة هذا الدليل الخاص بـ CentOS 6. المتطلبات الأساسية التي ستحتاج إليها
Revive Adserver هو نظام عرض إعلانات مجاني ومفتوح المصدر يمكن استخدامه لإدارة الإعلانات على مواقع الويب و / أو التطبيقات و / أو مشغلات الفيديو. في هذه المقالة ،
استخدام نظام مختلف؟ Elgg هو محرك تواصل اجتماعي مفتوح المصدر يسمح بإنشاء بيئات اجتماعية مثل الشبكات الاجتماعية في الحرم الجامعي
استخدام نظام مختلف؟ الشتات هو شبكة اجتماعية مفتوحة المصدر تدرك الخصوصية. في هذا البرنامج التعليمي ، ستتعلم كيفية إعداد وتكوين po Diaspora po
نظرة عامة تهدف هذه المقالة إلى مساعدتك في إنشاء مجموعة Kubernetes وتشغيلها باستخدام kubeadm في لمح البصر. سيقوم هذا الدليل بنشر خادمين في
استخدام نظام مختلف؟ مقدمة Sails.js هو إطار عمل MVC لـ Node.js ، مشابه لـ Ruby on Rails. يجعل لتطوير التطبيقات الحديثة ver
استخدام نظام مختلف؟ يمكن استخدام NGINX كخادم HTTP / HTTPS أو خادم وكيل عكسي أو خادم وكيل بريد أو موازن تحميل أو فاصل TLS أو ذاكرة تخزين مؤقت
استخدام نظام مختلف؟ dotCMS هو نظام إدارة محتوى من فئة مفتوحة المصدر مفتوح بلغة جافا. أنه يحتوي تقريبا على كل ميزة مطلوبة ر
مقدمة في هذا البرنامج التعليمي ، سيتم تثبيت PufferPanel على Vultr VPS. PufferPanel هي لوحة تحكم مفتوحة المصدر مجانية للاستخدام لإدارتك
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد