在上面,我们通过PostgreSQL来作为PredictionIO的存储后端,从而存储event data,metadata,model data。自0.11.0之后,我们也可以使用Elasticsearch作为event data,meta data的存储后端。
首先model data可以通过本地文件系统存储,在pio-env.sh中配置如下:
PIO_FS_BASEDIR=$HOME/.pio_store
PIO_FS_ENGINESDIR=$PIO_FS_BASEDIR/engines
PIO_FS_TMPDIR=$PIO_FS_BASEDIR/tmp
PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model
PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=LOCALFS
PIO_STORAGE_SOURCES_LOCALFS_TYPE=localfs
PIO_STORAGE_SOURCES_LOCALFS_PATH=$PIO_FS_BASEDIR/models
安装Elasticsearch 5.5.2
tar zxvfC elasticsearch-5.5.2.tar.gz PredictionIO-0.12.0-incubating/vendors
在pio-env.sh配置ES
PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta
PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=ELASTICSEARCH
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_HOME=$PIO_HOME/vendors/elasticsearch-5.5.2
在vendors/elasticsearch-5.5.2/config/elasticsearch.yml
修改es的网络主机配置
network.host: 127.0.0.1
安装hbase-1.2.6
tar zxvfC hbase-1.2.6-bin.tar.gz PredictionIO-0.12.0-incubating/vendors
配置pio-env.sh
PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event
PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=HBASE
PIO_STORAGE_SOURCES_HBASE_TYPE=hbase
PIO_STORAGE_SOURCES_HBASE_HOME=$PIO_HOME/vendors/hbase-1.2.6
hbase的standalone mode的最小化配置,配置在vendors/hbase-1.2.6/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///opt/modules/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/data</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/modules/PredictionIO-0.12.0-incubating/vendors/hbase-1.2.6/zookeeper</value>
</property>
</configuration>
配置vendors/hbase-1.2.6/conf/hbase-env.sh
export JAVA_HOME=/opt/modules/jdk1.8.0_151
启动服务
启动服务最好不要使用root用户,此时可以创建超级用户kevin。
启动服务
$ pio-start-all
启动命令执行之后,所有的服务不会立刻启动,一般es会启动较慢。此时可以使用jps或pio status查看服务是否启动成功。
有时pio-start-all并不能将全部的服务启动,比较常见的问题是无法启动hbase,此时可以直接使用pio eventserver
启动hbase。