在生产中使用PredictionIO

我已经在本地安装了PredictionIO,使用通用build议模板对引擎进行了培训,我根据自己的需求进行了修改,一切看起来都不错。

现在我知道这可以满足我的需求,但是我希望将其部署到生产环境中,但不幸的是,这方面的文档并不多。

理想情况下,我希望在AWS上部署所有的东西,其中有一部分描述它的文档,但是因为CloudFormation模板被禁用,所以没有用处。

我正在考虑使用Docker来实现它,但我对整个堆栈缺乏了解,并希望了解以下内容:

  • 数据在哪里存储? hbase好像是“数据库”,把它和其余的服务器(事件服务器,预测服务器)放在同一台服务器上不是危险的吗?

  • 它如何扩展? 需要在负载平衡器后面运行PredictionIO的多个实例还是足够了? 如果是的话,该如何实现?

  • 什么是一个好的分布式架构? 为了扩展,我敢肯定,我们需要将EventServer与PredictionServer分开,这样做的好方法是什么?

希望有人能帮忙。 谢谢。 西里尔

  1. 数据应该存储在哪里?

根据PredictionIO网站:

如果您决定将HBase安装到其他位置,则必须编辑PredictionIO-0.10.0-incubating / conf / pio-env.sh并更改PIO_STORAGE_SOURCES_HBASE_HOMEvariables以指向您自己的HBase安装。

也在那个网页中提到

对于生产部署,运行完全分布式的HBaseconfiguration。

  1. 它如何缩放?

有一个伟大的答案在谷歌predition-io他们分解缩放到单独的部分

  1. 什么是一个好的分布式架构?

为了扩展,我敢肯定,我们需要将EventServer与PredictionServer分开,这样做的好方法是什么?

分解摄取层,处理层和服务层一般被认为是好的做法,但是你需要注意不要过度工程。 这很大程度上取决于您的具体使用情况,不要忘记,您所做的每个分离都会给系统增加更多的复杂性(部署,监控等)。