在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(包含众多依赖包)

2、准备
首先,你的电脑是一定要有JDK的,并且配好环境变量
其次,你需要下载IDEA,最好专业版,功能全一点
最后,git一个demo,以供开发测试,运行以下代码即可
$ git clone https://github.com/apache/predictionio-template-attribute-based-classifier.git MyClassification
3、配置过程
3.1 安装插件
你安装好IDEA会有让你输入以前的配置,如果没有就点不输入就行,接下来你就会看见以下的页面,点击Configure~~>Plugins

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

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



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

3.3 添加依赖包
初步的导入项目已经完成,现在需要利用IDEA的SBT安装PredictionIO以及其依赖包
从这里下载build.sbt文件替换demo文件根目录里的同名文件

或者,你也可以把以下代码替换原来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的框框,点击下面页面的标记处,就可以静静的等待这些包安装,甚为方便。这可能会花费一点时间,不影响我们下面的操作,接着走。

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

3.5 配置项目 (window下,仅配置模拟pio train)
这里要配置的东西颇多,在等待SBT下载包的时候,就可以开始这步。

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

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

方便添加,复制粘贴
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.

5、关于Windows下开发的特殊之处
5.1 无法在终端下直接运行pio,部署服务

所以,只能在IDEA下开发引擎完毕,可以在服务器或者本机Docker(参照此方法)下部署服务
需要注意的是,如果在本机docker下部署服务,IDEA开发和Docker部署不能是同一个文件夹,要分开,否则出错

使用docker成功部署

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

6、参考资料
Developing Engines with IntelliJ IDEA(不够仔细的官方教程)
Apache PredictionIO在Docker上的搭建及使用 - 知-青 - 博客园
在Windows 10上部署Apache PredictionIO开发环境的更多相关文章
- 在 Windows 10 上搭建 Cordova 跨平台开发 Android 环境
目录 安装 Cordova 安装 Java 和 Android 环境 创建 Cordova 应用程序 构建和运行 Cordova Cordova 简介:Cordova 原名 PhoneGap,是一个开 ...
- Delphi for iOS开发指南(1):在Mac上配置你的开发环境
http://cache.baiducontent.com/c?m=9d78d513d99516f11ab7cf690d678c3b584380122ba7a0020fd18438e4732b4050 ...
- 如何在Windows 10上运行Docker和Kubernetes?
如何在Windows 10上运行Docker和Kubernetes? 在Windows上学习Docker和Kubernetes,开始的时候会让你觉得无从下手.最起码安装好这些软件都不是一件容易的事情. ...
- 在 Windows Azure 上部署预配置 Oracle VM
Microsoft 和 Oracle 近期宣布建立战略合作伙伴关系,基于此,我们将通过 Windows Azure 镜像库推出多种常用的 Oracle 软件配置.即日起,客户可以在 Windows S ...
- DB 查询分析器 6.04 在 Windows 10 上的安装与运行展示
DB查询分析器 6.04 在 Windows 10 上的安装与运行展示 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员 http://www.csdn.net/art ...
- 在Docker Swarm上部署Apache Storm:第2部分
[编者按]本文来自 Baqend Tech Blog,描述了如何在 Docker Swarm,而不是在虚拟机上部署和调配Apache Storm集群.文章系国内 ITOM 管理平台 OneAPM 编译 ...
- 在Windows 10上安装Oracle 11g数据库出现的问题及解决
在Windows 10上安装Oracle 11g数据库,并且很多次出现过:当安装的进度条进行到快要结束的时候弹出一个提示框.如下: [Java(TM)2 Platform Standard Editi ...
- Windows 10 上,Edge 浏览器不支持插件,因此将不运行 Java
在 Windows 10 上,Edge 浏览器不支持插件,因此将不运行 Java.微软想干嘛?
- Windows 10 上的 Git 如何清除密码? Git Credential Manager for Windows
Windows 10 上的 Git 如何清除密码? 因为一台新的电脑是 Windows 10 在第一次使用 Git 要求输入密码时把密码给输错了. 之前提交都是说 Token 错了,不再出现提示密码. ...
随机推荐
- Zookeeper概念学习系列之zab协议
不多说,直接上干货! 上一章讨论了paxos算法,把paxos推到一个很高的位置. Zookeeper概念学习系列之paxos协议 但是,paxos有没有什么问题呢?实际上,paxos还是有其自身的缺 ...
- 九度oj 1006 ZOJ问题 2010年浙江大学计算机及软件工程研究生机试真题
题目1006:ZOJ问题 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:16244 解决:2742 题目描述: 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC.是 ...
- Java中子类覆盖父类方法所必须满足的条件
因为太喜欢,所以转来,侵删! 参考自:http://www.it165.net/pro/html/201504/39284.html 一.描述 子类重写(覆盖)父类的方法必须满足的条件:1.父类中的方 ...
- Java 字符串(String)格式转json格式
json是前后端传输数据的一种文本格式,json其实就是字符串,因为前后端传输数据时,只能传输字符串,我们又想传一些对象或者列表信息,这都是很常见的应用场景. 所以,我们需要在java代码中,把jav ...
- 第六章使用java实现面向对象-集合框架
一:接口:即表示集合的抽象数据类型. 实现:即集合框架中接口的实现. 算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找. 排序等. Collection 接口存储一组 ...
- Swift构造器链
IDE:Xcode Version7.3.1 指定构造器: 1>名字为init的方法前没有前缀(子类重写时有override除外), 2>一个类中至少有一个指定构造器,其必须初始化类中的所 ...
- MyBatis 学习(一)
一.MyBatis 1.MyBatis 介绍(百度) MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数 ...
- Tomcat服务器配置和使用(三)
https连接器 明白了互联网上的加密原理之后,下面来看看浏览器与服务器交互时,浏览器想将数据加密后再发送给服务器,那么该怎么做呢?服务器首先要向浏览器出示一份数字证书,浏览器看到数字证书后,就可以使 ...
- 学习笔记flexbox新布局
FlexBox简称“弹性盒子”,除了用于实现弹性布局,还可以用来居中内容,改变标记中的源码顺序.首先说明IE9及以下浏览器不支持FlexBox. .flex{ display:flex; flex:1 ...
- Django—middleware
一.Django中间件的请求周期 我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下: 也就是说,每一个请求都是先通过中 ...