ZPanel y Sentora en CentOS 6 x64
ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.
Los enfoques tradicionales para el análisis de datos son imposibles de usar cuando los conjuntos de datos alcanzan un cierto tamaño. Una alternativa moderna para analizar los enormes conjuntos de datos es utilizar métodos de aprendizaje automático. El aprendizaje automático puede producir resultados precisos cuando se utiliza un algoritmo rápido y eficiente.
Apache PredictionIO es un servidor de aprendizaje automático de código abierto que se utiliza para crear motores predictivos para cualquier tarea de aprendizaje automático. Acorta el tiempo de aplicación de aprendizaje automático desde el laboratorio hasta la producción mediante el uso de plantillas de motor personalizables que se pueden construir e implementar rápidamente. Proporciona la recopilación de datos y los componentes de servicio, y resume la tecnología subyacente para exponer una API que permite a los desarrolladores centrarse en los componentes de transformación. Una vez que el servidor del motor de PredictionIO se implementa como un servicio web, puede responder a consultas dinámicas en tiempo real.
Apache PredictionIO consta de diferentes componentes.
En este tutorial, lo utilizaremos 192.0.2.1
como la dirección IP pública del servidor. Reemplace todas las apariciones de 192.0.2.1
con su dirección IP pública de Vultr.
Actualice su sistema base utilizando la guía Cómo actualizar CentOS 7 . Una vez que su sistema ha sido actualizado, proceda a instalar Java.
Muchos de los componentes de PredictionIO requieren JDK, o Java Development Kit, versión 8 para funcionar. Es compatible con OpenJDK y Oracle Java. En este tutorial, instalaremos OpenJDK versión 8.
OpenJDK se puede instalar fácilmente, ya que el paquete está disponible en el repositorio predeterminado de YUM.
sudo yum -y install java-1.8.0-openjdk-devel
Verifique la versión de Java para asegurarse de que se instaló correctamente.
java -version
Obtendrá una salida similar.
[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)
Antes de que podamos seguir adelante, tendremos que configurar los JAVA_HOME
y las JRE_HOME
variables de entorno. Encuentre la ruta absoluta del ejecutable JAVA en su sistema.
readlink -f $(which java)
Verá una salida similar.
[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
Ahora, ajuste JAVA_HOME
y JRE_HOME
variable de entorno de acuerdo con la ruta del directorio de 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
Ejecuta el bash_profile
archivo.
source ~/.bash_profile
Ahora puede ejecutar el echo $JAVA_HOME
comando para verificar si la variable de entorno está configurada.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Apache proporciona archivos de origen de PredictionIO que se pueden descargar y compilar localmente. Cree un nuevo directorio temporal para descargar y compilar el archivo fuente.
mkdir /tmp/pio_sourcefiles && cd /tmp/pio_sourcefiles
Descargue el archivo de origen de PredictionIO utilizando cualquier sitio de Apache Mirror .
wget http://apache.mirror.vexxhost.com/incubator/predictionio/0.12.0-incubating/apache-predictionio-0.12.0-incubating.tar.gz
Extraiga el archivo y compile la fuente para crear una distribución de PredictionIO.
tar xf apache-predictionio-0.12.0-incubating.tar.gz
./make-distribution.sh
Esta distribución será construido en contra de las versiones predeterminadas de las dependencias, que son Scala 2.11.8
, Spark 2.1.1
, Hadoop 2.7.3
y ElasticSearch 5.5.2
. Espere a que finalice la compilación, tardará alrededor de diez minutos en completarse dependiendo del rendimiento de su sistema.
Nota : Puede utilizar la última versión compatible de las dependencias, pero puede ver algunas advertencias durante la compilación ya que algunas funciones pueden quedar obsoletas. Ejecute ./make-distribution.sh -Dscala.version=2.11.11 -Dspark.version=2.1.2 -Dhadoop.version=2.7.4 -Delasticsearch.version=5.5.3
, reemplazando el número de versión según su elección.
Una vez que la compilación finalice correctamente, verá el siguiente mensaje al final.
...
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
Los archivos binarios PredictionIO se guardarán en el PredictionIO-0.12.0-incubating.tar.gz
archivo. Extraiga el archivo en el /opt
directorio y proporcione la propiedad al usuario actual.
sudo tar xf PredictionIO-0.12.0-incubating.tar.gz -C /opt/
sudo chown -R $USER:$USER /opt/PredictionIO-0.12.0-incubating
Establecer la PIO_HOME
variable de entorno.
echo "export PIO_HOME=/opt/PredictionIO-0.12.0-incubating" >> ~/.bash_profile
source ~/.bash_profile
Cree un nuevo directorio para instalar las dependencias de PredictionIO como HBase
, Spark
y Elasticsearch
.
mkdir /opt/PredictionIO-0.12.0-incubating/vendors
Descargue Scala versión 2.11.8 y extráigala en el vendors
directorio.
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
Descargue Apache Hadoop versión 2.7.3 y extráigalo en el vendors
directorio.
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 es el motor de procesamiento predeterminado para PredictionIO. Descargue Spark versión 2.1.1 y extráigalo en el vendors
directorio.
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
Descargue Elasticsearch versión 5.5.2 y extráigalo en el vendors
directorio.
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
Finalmente, descargue HBase versión 1.2.6 y extráigalo en el vendors
directorio.
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
Abra el hbase-site.xml
archivo de configuración para configurar HBase para que funcione en un entorno independiente.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-site.xml
Encuentre el bloque de configuración vacío y reemplácelo con la siguiente configuración.
<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>
El directorio de datos será creado automáticamente por HBase. Edite el archivo de entorno HBase para establecer la JAVA_HOME
ruta.
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh
Elimine el comentario de la línea número 27 y establezca JAVA_HOME
la ruta de jre
su instalación Java. Puede encontrar la ruta al ejecutable JAVA con el readlink -f $(which java)
comando
# 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
Además, comente los números de línea 46 y 47, ya que no son necesarios para 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"
La configuración predeterminada en el archivo de entorno PredictionIO pio-env.sh
supone que estamos utilizando PostgreSQL o MySQL. Como hemos usado HBase y Elasticsearch, necesitaremos modificar casi todas las configuraciones en el archivo. Es mejor hacer una copia de seguridad del archivo existente y crear un nuevo archivo de entorno PredictionIO.
mv /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh.bak
Ahora cree un nuevo archivo para la configuración del entorno PredictionIO.
nano /opt/PredictionIO-0.12.0-incubating/conf/pio-env.sh
Rellene el archivo con la siguiente configuración.
# 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
Guarde el archivo y salga del editor.
Abra el archivo de configuración de Elasticsearch.
nano /opt/PredictionIO-0.12.0-incubating/vendors/elasticsearch-5.5.2/config/elasticsearch.yml
Elimine el comentario de la línea y configure el nombre del clúster exactamente igual al que se proporciona en el archivo de entorno PredictionIO. El nombre del clúster se establece pio
en la configuración anterior.
# Use a descriptive name for your cluster:
#
cluster.name: pio
Ahora agregue el $PIO_HOME/bin
directorio a la variable PATH para que los ejecutables de PredictionIO se ejecuten directamente.
echo "export PATH=$PATH:$PIO_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile
En este punto, PredictionIO se ha instalado correctamente en su servidor.
Puede iniciar todos los servicios en PredictionIO, como Elasticsearch, HBase y Event server, utilizando un solo comando.
pio-start-all
Verá el siguiente resultado.
[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...
Use el siguiente comando para verificar el estado del servidor PredictionIO.
pio status
Verá el siguiente resultado.
[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.
Como podemos ver en los mensajes anteriores, nuestro sistema está listo para usar para implementar una plantilla de motor y predecir datos.
Varias plantillas de motor listas para usar están disponibles en la Galería de plantillas de PredictionIO, que se pueden instalar fácilmente en el servidor de PredictionIO. Puede navegar libremente por la lista de plantillas de motor para encontrar la que esté más cerca de sus requisitos o puede escribir su propio motor.
En este tutorial, implementaremos la E-Commerce Recommendation
plantilla del motor para demostrar la funcionalidad del servidor PredictionIO utilizando algunos datos de muestra. Esta plantilla de motor proporciona algunas recomendaciones personales a un usuario en un sitio web de comercio electrónico. De manera predeterminada, tiene características tales como excluir artículos agotados o proporcionar recomendaciones a un usuario que se registra después de que el modelo esté capacitado. Además, de forma predeterminada, la plantilla del motor toma la vista de un usuario y compra eventos, artículos con categorías y propiedades y una lista de artículos no disponibles. Una vez que el motor ha sido entrenado y desplegado, puede enviar una consulta con la identificación de usuario y la cantidad de elementos que se recomendarán. La salida generada será una lista clasificada de ID de elementos recomendados.
Instale Git, ya que se usará para clonar el repositorio.
cd ~
sudo yum -y install git
Clone la plantilla del motor de recomendaciones de comercio electrónico en su sistema.
git clone https://github.com/apache/incubator-predictionio-template-ecom-recommender.git MyEComRecomm
Cree una nueva aplicación para el motor de plantillas de recomendación de comercio electrónico. Cada aplicación en PredictionIO se usa para almacenar los datos para un sitio web separado. Si tiene varios sitios web, puede crear múltiples aplicaciones para almacenar los datos de cada sitio web en una aplicación diferente. Usted es libre de elegir cualquier nombre para su aplicación.
cd MyEComRecomm/
pio app new myecom
Verá el siguiente resultado.
[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
La salida anterior también contiene la clave de acceso que se usará para autenticar cuando se envían los datos de entrada al servidor de eventos.
Siempre puede encontrar la clave de acceso junto con la lista de aplicaciones disponibles ejecutando.
pio app list
Verá el siguiente resultado que contiene una lista de aplicaciones y la clave de acceso.
[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).
Ahora que hemos creado una nueva aplicación, le agregaremos algunos datos. En el entorno de producción, desearía enviar automáticamente los datos al servidor de eventos integrando la API del servidor de eventos en la aplicación. Para aprender cómo funciona PredictionIO, importaremos algunos datos de muestra. El motor de plantillas proporciona un script de Python que se puede usar fácilmente para importar los datos de muestra al servidor de eventos.
Instalar Python pip.
sudo yum -y install python-pip
sudo pip install --upgrade pip
Instale PredictionIO Python SDK usando pip.
sudo pip install predictionio
Ejecute el script Python para agregar los datos de muestra al servidor de eventos.
python data/import_eventserver.py --access_key a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t
Asegúrese de reemplazar la clave de acceso con su clave de acceso real. Verá una salida similar.
[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.
El script anterior importa 10 usuarios, 50 artículos en 6 categorías y algunos eventos aleatorios de compra y vistas. Para verificar si los eventos se importan o no, puede ejecutar la siguiente consulta.
curl -i -X GET "http://localhost:7070/events.json?accessKey=a_DnDr4uyvjsKRldPoJAFMuPvb-QBz-BhUFyGehXoTKbm89r00Gx4ygnqspTJx4t"
La salida le mostrará la lista de todos los eventos importados en formato JSON.
Ahora, abra el engine.json
archivo en el editor. Este archivo contiene la configuración del motor.
nano engine.json
Encuentre las ocurrencias appName
y reemplace el valor con el nombre real de la aplicación que creó anteriormente.
{
"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
}
}
]
}
Compila la aplicación.
pio build --verbose
Si no desea ver los mensajes de registro, elimine la --verbose
opción. Crear la plantilla del motor por primera vez tomará unos minutos. Verá una salida similar cuando la compilación finalice correctamente.
[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.
Entrena el motor ahora. Durante el entrenamiento, el motor analiza el conjunto de datos y se entrena según el algoritmo proporcionado.
pio train
Antes de implementar la aplicación, tendremos que abrir el puerto 8000
para que el estado de la aplicación se pueda ver en la GUI web. Además, los sitios web y las aplicaciones que utilizan el servidor de eventos enviarán y recibirán sus consultas a través de este puerto.
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
Ahora puede implementar el motor PredictionIO.
pio deploy
El comando anterior desplegará el motor y el servidor web incorporado en el puerto 8000
para responder a las consultas de los sitios web y aplicaciones de comercio electrónico. Verá la siguiente salida al final una vez que el motor se implemente correctamente.
[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.
Puede verificar el estado del motor accediendo a http://192.0.2.1:8000
cualquier navegador moderno. Asegúrese de reemplazar 192.0.2.1
con su dirección IP Vultr real.
Esto significa que la plantilla del motor para la recomendación de comercio electrónico está implementada y ejecutándose con éxito. Puede consultar la plantilla del motor para obtener cinco recomendaciones para el usuario u5
ejecutando la siguiente consulta en una nueva sesión de terminal.
curl -H "Content-Type: application/json" \
-d '{ "user": "u5", "num": 5 }' \
http://localhost:8000/queries.json
Verá las recomendaciones generadas para el usuario 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}]}
Felicitaciones, Apache PredictionIO se ha implementado con éxito en su servidor. Ahora puede usar la API del servidor de eventos para importar los datos al motor para predecir las recomendaciones para el usuario. Si lo desea, puede usar algunas otras plantillas de la galería de plantillas. Asegúrese de consultar la plantilla del motor de Universal Recommended que se puede utilizar en casi todos los casos de uso, incluidos el comercio electrónico, las noticias o los videos.
ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.
Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Vultr le ofrece una increíble conectividad de red privada para servidores que se ejecutan en la misma ubicación. Pero a veces quieres dos servidores en diferentes países.
Using a Different System? Introduction CyberPanel is one of the first control panels on the market that is both open source and uses OpenLiteSpeed. What thi
Using a Different System? ESpeak can generate text-to-speech (TTS) audio files. These can be useful for many reasons, such as creating your own Turin
¿Usando un sistema diferente? Thelia es una herramienta de código abierto para crear sitios web de comercio electrónico y administrar contenido en línea, escrito en PHP. Código fuente de Thelia i
¿Usando un sistema diferente? LibreNMS es un completo sistema de monitoreo de red de código abierto. Utiliza SNMP para obtener los datos de diferentes dispositivos. Una variedad
Cacti es una herramienta de gráficos y monitoreo de red de código abierto y libre escrita en PHP. Con la ayuda de RRDtool (herramienta de base de datos Round-Robin), Cacti se puede usar t
Usar un usuario sudo para acceder a un servidor y ejecutar comandos a nivel raíz es una práctica muy común entre Linux y Unix Systems Administrator. El uso de un sud
¿Usando un sistema diferente? Zabbix es un software gratuito y de código abierto listo para empresas que se utiliza para monitorear la disponibilidad de sistemas y componentes de red.
MODX es un sistema de gestión de contenido gratuito y de código abierto escrito en PHP. Utiliza MySQL o MariaDB para almacenar su base de datos. MODX está diseñado para el negocio i
YOURLS (Your Own URL Shortener) es una aplicación de análisis de datos y acortamiento de URL de código abierto. En este artículo, cubriremos el proceso de instalación
Using a Different System? RTMP is great for serving live content. When RTMP is paired with FFmpeg, streams can be converted into various qualities. Vultr i
LimeSurvey es una herramienta de encuestas en línea gratuita y de código abierto que se utiliza ampliamente para publicar encuestas en línea y para recopilar comentarios de encuestas. En este artículo, voy a
¿Usando un sistema diferente? Vanilla forum es una aplicación de foro de código abierto escrita en PHP. Es totalmente personalizable, fácil de usar y admite dispositivos externos.
¿Usando un sistema diferente? Netdata es una estrella en ascenso en el campo del monitoreo de métricas del sistema en tiempo real. En comparación con otras herramientas del mismo tipo, Netdata:
En este tutorial, aprende bien cómo configurar un servidor multijugador Just Cause 2. Requisitos previos Asegúrese de que el sistema esté completamente actualizado antes de comenzar
¿Usando un sistema diferente? En este tutorial, explicaré cómo configurar un servidor Starbound en CentOS 7. Requisitos previos Necesitas tener este juego contigo
ZNC es un enlace IRC gratuito y de código abierto que permanece permanentemente conectado a una red para que los clientes puedan recibir mensajes enviados mientras están desconectados. Thi
ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.
Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.
Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.
Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición
ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.
Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+
Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.
Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información
13 Herramientas comerciales de extracción de datos de Big Data
Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.