当前位置: 首页 > 知识库问答 >
问题:

Apache Mahout和Apache Spark的MLLib有什么区别?

张建树
2023-03-14

考虑一个MySQLproducts数据库,其中包含一个电子商务网站的1000万个产品。

我正在尝试建立一个分类模块来对产品进行分类。我正在使用Apache Sqoop将数据从MySQL导入到Hadoop。

我想使用Mahout作为机器学习框架来使用它的一种分类算法,然后我遇到了MLlib提供的Spark

  • 那么这两个框架之间有什么区别?
  • 主要是,每种方法的优点、缺点和局限性是什么?

共有1个答案

林俊晖
2023-03-14

主要区别将来自底层框架。对于Mahout,它是Hadoop MapReduce,对于MLib,它是Spark。更具体地说--从每个作业开销的差异来看
如果您的ML算法映射到单个MR作业--主要的差异将只是启动开销,对于Hadoop MR来说是几十秒,对于Spark来说是1秒。所以在模型训练的情况下,它并不是那么重要。
如果你的算法被映射到许多工作中,情况就会有所不同。在这种情况下,我们将在每次迭代的开销上有相同的差异,并且可以改变游戏规则。
假设我们需要100次迭代,每次需要5秒的集群CPU。

    火花上的
  • :100*5+100*1秒=600秒。
  • 在Hadoop上:MR(Mahout)需要100*5+100*30=3500秒。

同时,Hadoop MR是比Spark更成熟的框架,如果您有大量的数据,并且稳定性是最重要的--我会考虑Mahout作为一个重要的替代方案。

 类似资料:
  • 问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。

  • 本文向大家介绍<%# %> 和 <% %> 有什么区别?相关面试题,主要包含被问及<%# %> 和 <% %> 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答:<%# %>表示绑定的数据源 <%%>是服务器端代码块  

  • 问题内容: 以下代码之间有什么区别: 和 Python建议采用一种做事方式,但有时似乎不止一种。 问题答案: 一个是函数调用,一个是文字: 使用第二种形式。它更具Python风格,并且可能更快(因为它不涉及加载和调用单独的函数)。

  • 问题内容: 我一直认为Java 中的运算符用于验证其两个布尔操作数是否均为,并且该&运算符用于对两种整数类型进行按位运算。 最近我知道,也可以使用运算符来验证其两个布尔操作数是否均为,唯一的区别是即使LHS操作数为false,它也会检查RHS操作数。 Java中的运算符是否在内部重载?还是在这背后有其他概念? 问题答案: <-验证两个操作数 <-停止评估第一个操作数是否为false,因为结果为fa

  • 问题内容: JavaScript中的&和&&有什么区别? 示例代码: 似乎&&是一个逻辑上的“和”,如果两个都为true,则总是为我提供第二个值。 但是什么是&? (顺便说一下,&&在Python中似乎是“ and”;&在Python中似乎是&。) 问题答案: 是按位AND 该运算符期望 两个数字 并重新调整一个 数字。 如果它们不是数字,则将其强制转换为数字。 注意: 在Javascript中,

  • 问题内容: 我正在从Spring 2.5迁移到Spring 3。 他们介绍了一些黑魔法。预期仅在servlet配置文件中声明。 在Spring 2.5中,我刚刚使用,并且在分发服务器servlet配置XML中声明了标记,并使用了要扫描的基本包。 所以,我不知道是什么样的区别,并在servlet配置标签和我有什么可以消除在Spring3配置文件? 问题答案: 声明一般注释,比如支持,等等。 声明了注