【问题标题】:Mahout single-machine performanceMahout单机性能
【发布时间】:2013-09-12 19:13:54
【问题描述】:

我正在开发一个基于 Java 的应用程序,我决定使用 Mahout 库中实现的机器学习算法。我的应用程序将在没有 Hadoop 的单机上运行。

我想问一下,单节点 Mahout 是否也有开销,比如分布式的?我在一本书中读到 Mahout in action,多集群 Mahout 有一些开销(初始化、传输数据等)。但是如果我们使用没有 MapReduce 范式的 Mahout 算法,应该没有开销,对吧?

【问题讨论】:

  • 一些算法有非分布式版本(意味着没有 hadoop)。如果可以满足您的需要,您应该使用它们。

标签: java mahout


【解决方案1】:

在单机或 1000 节点集群中运行它没有区别。 Hadoop 将所有中间数据(MAP 的键值输出)序列化,并将其持久化到磁盘上。在 reduce 阶段,它将键值对加载回内存中。因此,它具有巨大的处理和磁盘访问开销。

基本上,如果您的机器很少(例如

【讨论】:

  • 你确定吗?因为我问的是不使用 hadoop 的算法。这组算法适用于中等大小的数据(我认为没有使用 MapReduce,但我不确定)。他们也使用序列化吗?
  • @HIP_HOP 好吧,Mahout 被创建为在 Hadoop 之上运行,使用 map-reduce 范例。我认为他们没有实现没有 map-reduce 的串行版本。
  • 但是,如果你想在单机或有限数量的机器上使用可扩展的机器学习工具(不是完全可扩展的版本),你可以试试 graphlab 或spark
猜你喜欢
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 2015-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-18
相关资源
最近更新 更多