4

在使用 MLlib 的 Naive Baye 分类实现创建用于文档分类的 TFIDF 向量时,我遇到了内存溢出问题。

http://chimpler.wordpress.com/2014/06/11/classifiying-documents-using-naive-bayes-on-apache-spark-mllib/

为所有术语收集 idf 时会发生内存溢出和 GC 问题。为了了解规模,我正在从 HBase 读取大约 615,000 个(大约 4GB 的文本数据)小型文档,并运行具有 8 个内核和 6GB 执行程序内存的 spark 程序。我曾尝试提高并行度和随机播放内存分数,但无济于事。

我该如何解决这个OOM问题?

谢谢

4

1 回答 1

1

您如何将 Spark RDD 连接到 HBase?您的 HBase 区域有多大?如果您同时加载多个 HBase 区域并且它们的大小总和大于可用 RAM,则您可能会在加载阶段耗尽内存。

避免这种情况的一种方法是编写自己的 HBase 加载器,专门只扫描您感兴趣的列而不是整个区域文件,这可能会大大减少内存消耗。然后,您还可以根据对 HBase 键空间的语义理解来调整正在加载的分区数量,从而进一步调整加载期间的内存消耗。

于 2014-09-18T20:16:05.767 回答