Mahout 通过可插拔的后端平台 Spark 和 Flink 获取自优化矩阵代数接口

阅读数:1156 2014 年 12 月 16 日

话题:ApacheDevOps大数据语言 & 开发AI

在柏林最近 GOTO 发布会,Mahout 的提交者 Sebastian Schelter 概述了 Mahout 中的最新进展,即持续努力为数据分析创造一个可扩展的基础,使其如 R 或 Python 一样易用。

Schelter 所述的主要目标是提供一种简单的基于 DSL(域特定语言)Scala 语言,它类似于 R 语言中的矩阵表示法,但又能提供集群的大矩阵分布式存储和并行计算的可能性。

Schelter 说到,最终的库将无缝地提供对本地和分布式矩阵的使用。Mahout 团队通过设计使得这个库不依赖于特定的平台,相反它有一个可插拔的后端以针对不同的平台。

Schelter 说,目前 Apache Spark(星火)发展最为快速,但是Apache Flink,另一个正在孵化的下一代大数据平台,也将在 Mahout 的考虑之中。

这种新结构的一个重要方面是提供不同操作的可能性,比如,基于涉及矩阵的大小来进行潜在的深入优化。根据 Schelter 所说,主要的设计目标是让数据科学家能够编写出可伸缩的代码,而不必过分担心并行的因素。这个演示页给出了结果界面的第一印象。

Apache Mahout 最初是在 Hadoop 之上实现一些机器学习算法的一个项目。它涵盖了分类,聚类,推荐和文档学习模型算法。到目前为止,这些算法是基于 Hadoop 和 MapReduce 的计算模型,而不是其它更灵活的模型,比如 Apache Spark。Apache Spark 已经开始发展自己的机器学习库mllib,目前它涵盖的算法要比 Mahout 少,但他们的项目主页声称其算法要比 Mahout 快很多(译者注:这里是说基于 MapReduce 的 Mahout),这些改进是因为将计算移动到内存中以及更好地支持了迭代算法。

Mahout 开始不仅仅依靠 MapReduce,这正是其它各种各样分布式计算替代方法出现的时候。

谷歌自身前段时间已开始探索替代的计算方案,这其中包括Percolator(咖啡滤壶),它允许谷歌在搜索的数据库上做增量更新,还有Pregel(普雷格尔),一个专为分布式图形计算建立的系统。Pregel 反过来又导致了象Apache Giraph斯坦福大学 GPS的开源项目。

卡内基 - 梅隆大学开发的 GraphLab 是可替代另一种工具箱,它提供了各种各样的机器学习算法的分布式实现。

查看英文原文:Mahout to Get Self-Optimizing Matrix Algebra Interface with Pluggable Backends for Spark and Flink