在Windows 10上部署Apache PredictionIO开发环境

时间:2023-03-09 06:07:06
在Windows 10上部署Apache PredictionIO开发环境

Windows在初研究人员的探索下,研究出了一套更为精简的环境配置,极大的缩短了开发时间与效率,在此总结以供后来者参阅。

1、部署环境的配置

Windows10 64 home

IntelliJ IDEA 2018.2.1 pro

java version 1.8.0_172

PredictionIO 0.12.1(包含众多依赖包)

在Windows 10上部署Apache PredictionIO开发环境

2、准备

首先,你的电脑是一定要有JDK的,并且配好环境变量

其次,你需要下载IDEA,最好专业版,功能全一点

最后,git一个demo,以供开发测试,运行以下代码即可

$ git clone https://github.com/apache/predictionio-template-attribute-based-classifier.git MyClassification

3、配置过程

3.1 安装插件

你安装好IDEA会有让你输入以前的配置,如果没有就点不输入就行,接下来你就会看见以下的页面,点击Configure~~>Plugins

在Windows 10上部署Apache PredictionIO开发环境

之后就会出现下面的页面,按照指示操作即可

在Windows 10上部署Apache PredictionIO开发环境

3.2 导入项目

可能需要一点时间,安装完插件之后,就可以打开之前下载的demo,具体操作如下

在Windows 10上部署Apache PredictionIO开发环境

在Windows 10上部署Apache PredictionIO开发环境

在Windows 10上部署Apache PredictionIO开发环境

输入项目完成的页面,是下面这样的

在Windows 10上部署Apache PredictionIO开发环境

3.3 添加依赖包

初步的导入项目已经完成,现在需要利用IDEA的SBT安装PredictionIO以及其依赖包

这里下载build.sbt文件替换demo文件根目录里的同名文件

在Windows 10上部署Apache PredictionIO开发环境

或者,你也可以把以下代码替换原来build.sbt的代码(此处也可参考所用包的版本)

name := "template-scala-parallel-classification"

scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"org.apache.predictionio" %% "apache-predictionio-core" % "0.12.1" % "provided",
"org.apache.predictionio" %% "apache-predictionio-data-jdbc" % "0.12.1" % "provided",
"org.apache.predictionio" %% "apache-predictionio-data" % "0.12.1",
"mysql" % "mysql-connector-java" % "8.0.12",
"org.postgresql" % "postgresql" % "42.2.4",
"org.apache.predictionio" %% "apache-predictionio-data-hbase" % "0.12.1" % "provided",
"org.apache.predictionio" %% "apache-predictionio-data-elasticsearch" % "0.12.1" % "provided",
"org.apache.predictionio" %% "apache-predictionio-data-localfs" % "0.12.1" % "provided",
"org.apache.spark" %% "spark-mllib" % "2.1.1" % "provided")

之后右下角会弹出SBT的框框,点击下面页面的标记处,就可以静静的等待这些包安装,甚为方便。这可能会花费一点时间,不影响我们下面的操作,接着走。

在Windows 10上部署Apache PredictionIO开发环境

3.4 添加补充文件

这里下载log4j.properties文件添加到demo文件的根目录下

在Windows 10上部署Apache PredictionIO开发环境

3.5 配置项目   (window下,仅配置模拟pio train)

这里要配置的东西颇多,在等待SBT下载包的时候,就可以开始这步。

在Windows 10上部署Apache PredictionIO开发环境

接下来,会出现这个页面,较为清晰,请手打填写空的框框,勿漏标点符号

在Windows 10上部署Apache PredictionIO开发环境

上面第四个框框,参照这一步,添加环境变量,点击加号一个一个添加。下面给出文本,复制即可。

在Windows 10上部署Apache PredictionIO开发环境

方便添加,复制粘贴

PIO_STORAGE_REPOSITORIES_METADATA_NAME            pio_meta
PIO_STORAGE_REPOSITORIES_METADATA_SOURCE       MYSQL
PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME          pio_event
PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE     MYSQL
PIO_STORAGE_REPOSITORIES_MODELDATA_NAME         pio_model
PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE    MYSQL
PIO_STORAGE_SOURCES_MYSQL_TYPE                             jdbc
PIO_STORAGE_SOURCES_MYSQL_URL                               jdbc:mysql://localhost/pio?serverTimezone=GMT
PIO_STORAGE_SOURCES_MYSQL_USERNAME                  root
PIO_STORAGE_SOURCES_MYSQL_PASSWORD                  root

4、测试pio train

经过上面的步骤之后,只要你别弄错,基本是配置好了,下面就可以进行开发工作了,点击上面pio train旁的三角形运行按钮,等运行完成,无报错成功,就可以得到下面的输出:[INFO] [CoreWorkflow$] Training completed successfully.

在Windows 10上部署Apache PredictionIO开发环境

5、关于Windows下开发的特殊之处

5.1 无法在终端下直接运行pio,部署服务

在Windows 10上部署Apache PredictionIO开发环境

所以,只能在IDEA下开发引擎完毕,可以在服务器或者本机Docker(参照此方法)下部署服务

需要注意的是,如果在本机docker下部署服务,IDEA开发和Docker部署不能是同一个文件夹,要分开,否则出错

在Windows 10上部署Apache PredictionIO开发环境

使用docker成功部署

在Windows 10上部署Apache PredictionIO开发环境

5.2 IDEA模拟pio deploy出错

参照官方教程配置模拟pio deploy,然后是这样婶的,出错了,问题很大,直接用docker这种方法部署把。

在Windows 10上部署Apache PredictionIO开发环境

6、参考资料

Developing Engines with IntelliJ IDEA(不够仔细的官方教程)

Apache PredictionIO在Docker上的搭建及使用 - 知-青 - 博客园