【发布时间】:2016-04-25 20:35:10
【问题描述】:
我正在尝试在独立集群上运行 spark 应用程序。在这个应用程序中,我使用 tf-idf 向量训练朴素贝叶斯分类器。
我以与这篇文章(Spark MLLib TFIDF implementation for LogisticRegression)类似的方式编写了应用程序。 主要区别在于,我对每个文档进行标记化和规范化:
JavaRDD<Document> termDocsRdd = sc.wholeTextFiles("D:/fileFolder").flatMap(new FlatMapFunction<Tuple2<String,String>, Document>() {
@Override
public Iterable<Document> call(Tuple2<String,String> tup)
{
return Arrays.asList(parsingFunction(tup));
}
});
parsingFunction 没有任何 Spark 函数,如 map 或 flatMap 等。因此它不包含任何数据分布函数。
我的集群是 - 一台主机和另外两台机器 - 节点。所有机器都有 8 核 CPU 和 16 GB RAM。我正在尝试在 20 个文本文件(每个 ~ 100 KB - 1.5 MB)上训练分类器。我不使用分布式文件系统,而是直接将文件放到节点上。
问题是我的集群没有我想象的那么快 - 分类器训练了大约 5 分钟...在本地模式下,此操作花费的时间要少得多。
应该注意什么?
如果有任何建议,我将不胜感激。
谢谢!
【问题讨论】:
标签: apache-spark apache-spark-mllib