【问题标题】:Mahout servlets per data model每个数据模型的 Mahout servlet
【发布时间】:2012-07-05 00:44:00
【问题描述】:

我正在实施 Mahout 基于用户的推荐引擎,其中将通过在 Tomcat 中运行的 RecommenderServlet 提供推荐。

到目前为止,它看起来像是一个基本设置,但它有一些额外的属性:

  1. 将根据用户的上下文从 100 种不同的数据模型中提供建议。每个数据模型约为 2 Mb。

  2. 在给定时间可能有 1000 多个并发用户查询推荐。

我考虑的一个选项是为每个数据模型设置一个RecommenderServlet。所以会有 100 个分布在多个 Tomcat 实例之间。

Mahout 专家的主要问题:

您会建议为每个数据模型设置一个RecommenderServlet,还是有更好的替代方案?

【问题讨论】:

    标签: tomcat servlets mahout collaborative-filtering


    【解决方案1】:

    我不认为这种选择真的会对您提到的性能问题产生影响。

    更重要的是什么对你来说更合乎逻辑。 servlet 通常提供一种逻辑服务并回答一种“类型”的请求——针对页面或方法。理论上,您可以让一个 servlet 为您网站上的所有内容提供服务,但从设计角度来看,它会很丑陋。

    我的经验法则是对不同的 URL 路径使用不同的 servlet。

    但它不会改变内存要求或性能。无论哪种方式,您都是从内存中的数据处理这些请求。

    现在,您实际上可以将整个 Tomcat 实例专用于只为这 100 个模型中的一部分提供服务。但是你真的在不同的服务器上运行不同的网络应用程序。这不再是 1 或 100 个 servlet 的问题,而是拆分架构的更大选择。

    【讨论】:

    • 谢谢。你是对的,这是一个架构问题。但是,我想澄清一个 Mahout 特定方面。每个 RecommenderServlet 使用一个 Recommender 对象。每个 Recommender 使用一个数据模型并将其加载到 servlet 的 init() 中。这使我得出结论,拥有不同的数据模型需要单独的 servlet。是不是真的?
    • 哦,我明白了。如果您按原样使用RecommenderServlet,那么是的,它可以处理一个Recommender。但这对于快速演示或原型来说更方便,也是一个示例。对于您的用例,我将编写您自己的自定义 servlet。那些可以做任何你想做的事情。尽管我最终可能仍然会为每个逻辑服务使用一个 servlet,并且我想您每个逻辑服务都有一个模型/推荐器。
    猜你喜欢
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多