应用引擎:内存如何工作? (使用应用程序引擎的Mahout)

时间:2016-01-11 14:21:59

标签: java google-app-engine memory-management memcached mahout-recommender

我正在尝试将Mahout与应用引擎配合使用。出现了一些问题,但我现在的主要问题是:如果模型太大而无法留在内存中,我该如何提出建议?

我正在使用内存缓存,但Mahout数据模型默认不可序列化。我正在序列化FastIDSet,但是当我不得不提出建议时,我必须从memcache获取FastIDSet,将其用作推荐器的参数,然后提出建议。

这样可以,但保留在内存中会给我一个堆空间错误,即使我的数据库不是太大(19 MB)。

我无法在块中执行此操作,因为Mahout确实希望使用完整数据模型进行初始化。

有没有人有这个问题的经验?

谢谢,祝你好运。

2 个答案:

答案 0 :(得分:1)

我想通了,不得不在appengine-web.xml中设置我的缩放。

如果我不得不经常从fastIDSET重建模型,仍然可以看到推荐器的速度。

答案 1 :(得分:0)

你正在使用一些旧的,在折旧的道路上,技术。名为SimilarityAnalysis.cooccurrence的新Mahout关联引擎用于Apache 2许可下的端到端推荐程序。查看基于Spark Mahout工作的Universal Recommender,并使用搜索引擎提供推荐

顺便说一句,我是Mahout的工作人员,并没有试图贬低Mahout的老推荐者:-)