我想实现一个音乐推荐系统,可以实时生成推荐的音乐播放列表。我相信这可以在Prediction.io中实现。
但是,由于Prediction.io的设计,我需要调用pio train和pio deploy,以便使用用户执行的新操作(如音乐等)更新学习模型。因此,我需要每2小时(或另一个适当的时间间隔)运行一次这些命令。
我最近遇到了Apache Storm,我真的很喜欢“实时hadoop”处理的概念。因此,我在想,如果我可以将Prediction.io与Apache Storm结合起来,这样学习就可以“在线”完成,这将允许我的应用程序在用户喜欢/操作的几个范围内推荐音乐,而不是让用户等待学习模型更新。
如果这不可行,那么有没有可能将Spark的Mllib集成到Apache Storm bolt (java)中,因为我可以用它构建推荐系统(而且Prediction.io本身似乎也是基于Apache Spark构建的)?
提前感谢!
发布于 2015-07-25 02:59:22
这个用例看起来是可行的,但我不认为“每隔几个小时就需要运行一些东西”是使用storm的良好动机。另一方面,如果您的学习数据是“流”的,您可以对storm拓扑进行建模,以便在每次新数据到达时更新其内部知识库。这将允许您在每次用户查询时使用最新的知识库。
至于哪些库可以与Storm一起使用,任何java库(实际上是任何语言的任何库,只要它可以与java接口)都应该可以工作。
https://stackoverflow.com/questions/31432604
复制相似问题