CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
データセットが特定のサイズに達すると、データ分析への従来のアプローチは使用できなくなります。膨大なデータセットを分析する最新の代替手段は、機械学習手法を使用することです。機械学習は、高速で効率的なアルゴリズムを使用すると、正確な結果を生成できます。
Apache PredictionIOは、あらゆる機械学習タスクの予測エンジンを作成するために使用されるオープンソースの機械学習サーバーです。迅速に構築およびデプロイできるカスタマイズ可能なエンジンテンプレートを使用することにより、ラボから本番までの機械学習アプリケーションの時間を短縮します。データの収集と提供のコンポーネントを提供し、基盤となるテクノロジーを抽象化して、開発者が変換コンポーネントに集中できるようにするAPIを公開します。PredictionIOのエンジンサーバーがWebサービスとして展開されると、動的クエリにリアルタイムで応答できます。
Apache PredictionIOは、さまざまなコンポーネントで構成されています。
このチュートリアルで192.0.2.1
は、サーバーのパブリックIPアドレスとして使用します。すべての192.0.2.1
をVultrパブリックIPアドレスに置き換えます。
CentOS 7のアップデート方法ガイドを使用して、ベースシステムをアップデートします。システムが更新されたら、Javaのインストールに進みます。
PredictionIOのコンポーネントの多くが機能するには、JDKまたはJava Development Kitバージョン8が必要です。OpenJDKとOracle Javaの両方をサポートしています。このチュートリアルでは、OpenJDKバージョン8をインストールします。
パッケージはデフォルトのYUMリポジトリで利用できるため、OpenJDKは簡単にインストールできます。
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ディレクトリのパスに従って環境変数を設定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ミラーサイトを使用して、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
。ビルドが完了するまで待ちます。システムのパフォーマンスにもよりますが、完了するまでに約10分かかります。
注:サポートされている最新バージョンの依存関係を自由に使用できますが、一部の機能が廃止されている可能性があるため、ビルド中に警告が表示される場合があります。を実行し./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によって自動的に作成されます。HBase環境ファイルを編集してJAVA_HOME
パスを設定します。
nano /opt/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/conf/hbase-env.sh
行番号27のコメントを外し、Javaインストールの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
PredictionIO実行可能ファイルが直接実行されるように、ディレクトリをPATH変数に追加します。
echo "export PATH=$PATH:$PIO_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile
この時点で、PredictionIOはサーバーに正常にインストールされています。
Elasticsearch、HBase、イベントサーバーなどのPredictionIOのすべてのサービスを1つのコマンドで開始できます。
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サーバーの機能を示します。このエンジンテンプレートは、eコマースWebサイトのユーザーにいくつかの個人的な推奨事項を提供します。デフォルトでは、在庫切れのアイテムを除外したり、モデルのトレーニング後にサインアップしたユーザーに推奨を提供したりする機能があります。また、デフォルトでは、エンジンテンプレートはユーザーのビューを取得し、イベント、カテゴリとプロパティを持つアイテム、および使用できないアイテムのリストを購入します。エンジンがトレーニングされてデプロイされたら、ユーザーIDと推奨するアイテムの数を含むクエリを送信できます。生成された出力は、推奨されるアイテムIDのランク付けされたリストになります。
リポジトリのクローン作成に使用されるため、Gitをインストールします。
cd ~
sudo yum -y install git
システムにeコマース推奨エンジンエンジンテンプレートを複製します。
git clone https://github.com/apache/incubator-predictionio-template-ecom-recommender.git MyEComRecomm
Eコマース推奨テンプレートエンジン用の新しいアプリケーションを作成します。PredictionIOの各アプリケーションは、個別のWebサイトのデータを保存するために使用されます。複数のWebサイトがある場合は、複数のアプリを作成して、各Webサイトのデータを別のアプリケーションに保存できます。アプリケーションの名前は自由に選択できます。
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の仕組みを学ぶために、サンプルデータをインポートします。テンプレートエンジンは、サンプルデータをイベントサーバーにインポートするために簡単に使用できるPythonスクリプトを提供します。
Python pipをインストールします。
sudo yum -y install python-pip
sudo pip install --upgrade pip
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人のユーザー、6つのカテゴリーの50のアイテム、および購入と表示のランダムイベントをインポートします。イベントがインポートされたかどうかを確認するには、次のクエリを実行します。
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で表示できるようにする必要があります。また、イベントサーバーを使用するWebサイトおよびアプリケーションは、このポートを介してクエリを送受信します。
sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
これで、PredictionIOエンジンをデプロイできます。
pio deploy
上記のコマンドは、エンジンと組み込みのWebサーバーをポート8000
にデプロイして、eコマースのWebサイトとアプリケーションからのクエリに応答します。エンジンが正常にデプロイされると、最後に次の出力が表示されます。
[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
実際のVultr IPアドレスに置き換えてください。
これは、eコマース推奨のエンジンテンプレートが正常に展開され、実行されていることを示しています。u5
新しいターミナルセッションで次のクエリを実行することにより、エンジンテンプレートをクエリして、ユーザーに対する5つの推奨事項を取得できます。
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}]}
おめでとうございます。ApachePredictionIOがサーバーに正常にデプロイされました。これで、イベントサーバーのAPIを使用してデータをエンジンにインポートし、ユーザーへの推奨を予測できます。必要に応じて、テンプレートギャラリーから他のテンプレートを使用できます。eコマース、ニュース、ビデオなど、ほとんどすべてのユースケースで使用できるUniversal Recommenderエンジンテンプレートを必ずチェックしてください。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。