我想实现一个可以实时生成推荐音乐播放列表的音乐推荐系统。我相信这可以在Prediction.io中实现......
然而,由于Prediction.io的设计,我需要调用pio train,pio deploy,以便用用户完成的新动作(如音乐等)更新学习模型。因此,我需要每2小时(或另一个适当的时间间隔)运行这些命令。
我最近遇到了Apache Storm,我非常喜欢“实时hadoop”处理的概念。因此,我在考虑是否可以将Prediction.io与Apache Storm结合使用,以便学习“在线”完成,这将允许我的应用程序在用户的一些喜欢/操作中推荐音乐,而不是让用户等待直到学习模型更新。
如果这不可行,那么是否可以将Spark的Mllib合并到Apache Storm bolt(java)中,因为我可以用它构建推荐系统(而且看起来Pred.io本身也建立在Apache Spark上) ?
提前致谢!
答案 0 :(得分:0)
用例似乎可行,但我不认为“需要每隔几个小时运行一次”作为使用风暴的良好动机。另一方面,如果您的学习数据是“流式”,则可以对风暴拓扑建模,以便在每次新数据到达时更新其内部知识库。这将允许您在每次用户查询时使用最新的知识库。
关于哪些库可以与Storm一起使用,任何java库(实际上任何语言中的任何库,如果它可以与java接口)都应该有效。