【问题标题】:Out of memory exception during TFIDF generation for use in Spark's MLlib用于 Spark 的 MLlib 的 TFIDF 生成期间内存不足异常
【发布时间】:2014-11-12 16:11:22
【问题描述】:

我在使用 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 问题?

谢谢

【问题讨论】:

    标签: apache-spark machine-learning classification apache-spark-mllib


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。我通过设置一个具有更多内存的集群并从那里加载它来解决这个问题,除了代码优化。
    猜你喜欢
    • 2015-01-09
    • 2015-07-08
    • 2016-11-26
    • 2015-04-20
    • 1970-01-01
    • 2015-12-13
    • 2020-08-13
    • 2010-10-05
    相关资源
    最近更新 更多