我目前在mahout中使用内存推荐apis实现推荐器。但是,我想使用hadoop转移到分布式解决方案,以便计算离线建议。这是我第一次使用hadoop,我正在寻找有关一些概念和用法的澄清。
目前,我对hadoop的理解很少,我认为正确的方法如下:
使用apache drill之类的东西,以便用用户和项目数据填充hdfs。
使用mahout列车中的推荐作业来处理来自hdfs的数据。
将hdfs中的结果数据转换为solr使用的索引分片
使用solr向用户群提供建议
但是,我正在寻找有关此设计的几个方面的说明:
我如何以内存实时推荐中使用的方式使用rescorer?
调用推荐职位的最佳方式是什么?
除了这两个问题,我还有其他问题,但对这些问题的答案将是一个巨大的帮助。
答案 0 :(得分:2)
您可能正在谈论Mahout + Hadoop + Solr推荐器。此方法以不同的方式处理重新加载。
基本推荐器可以通过两种方式组合在一起:
我做演示网站(https://guide.finderbots.com)的方式是使用我的Solr网络应用程序集成,将指标矩阵放入数据库中,将类似的项目列表附加到我的项目集合中。所以item123在其指标字段中得到item223 item643 item293 item445 ....索引集合之后,查询是=“item223 item344 item445 ...” - 用户的首选项目。
以下是三种重新校正的方法:
有趣的是,您可以将过滤器,元数据字段和用户首选项与Solr称为“增强”值的内容混合,以获得各种重新分配。 Solr甚至可以使用位置来查询,倾斜或过滤。
注意:您不必担心Solr分片。 Solr将直接索引大多数DB和HDFS,但仅对索引进行分片。如果您有一个非常大的索引,则会对索引进行分片,如果您有大量的查询/秒(或用于故障转移),则复制它。 Solr查询通常非常快,因此在您拥有一个正常运行的系统之后我会担心,因为它是一个配置的东西,不应该受到其他工作流的影响。