首页 > 解决方案 > apache mahout ALS 可以在没有 hadoop 的情况下工作吗?

问题描述

我尝试使用 ParallelALSFactorizationJob,但它在这里崩溃:

Exception in thread "main" java.lang.NullPointerException at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012) at org.apache.hadoop.util.Shell.runCommand(Shell.java:445) at org.apache.hadoop.util.Shell.run(Shell.java:418) at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:650) at org.apache.hadoop.util.Shell.execCommand(Shell.java:739)

命令行帮助提到使用文件系统,但它似乎需要 hadoop。如何在 Windows 上运行它,mahout.cmd 文件已损坏:

"===============DEPRECATION WARNING===============" "This script is no longer supported for new drivers as of Mahout 0.10.0" "Mahout's bash script is supported and if someone wants to contribute a fix for this" "it would be appreciated."

那么这可能吗(ALS + Windows - hadoop)?

标签: windowshadoopmahout

解决方案


Mahout 是一个社区驱动的项目,它的社区非常强大。

“Apache Mahout 是最早也是最著名的大数据机器学习平台之一。它在 Hadoop 和 Spark 等分布式处理平台之上实现机器学习算法。”

-Tiwary, C. (2015)。学习 Apache Mahout

Apache Spark 是一个开源、内存中的通用计算系统,可在 Windows 和类 Unix 系统上运行。Spark 不是类似 Hadoop 的基于磁盘的计算,而是使用集群内存将所有数据上传到内存中,并且可以重复查询这些数据。

“随着 Spark 在数据科学家中越来越受欢迎,Mahout 社区也在迅速致力于让 Mahout 算法在 Spark 的执行引擎上运行,以将其计算速度提高 10 到 100 倍。Mahout 提供了几个重要的构建块来使用 Spark 创建建议。”

-古普塔,A(2015 年)。学习 Apache Mahout 分类

(最后一本书还提供了使用 Mahout 的 Spark shell的分步指南(他们不使用 Windows,但不清楚他们是否使用 Hadoop)。有关该主题的更多信息,请参阅https的实施部分://mahout.apache.org/users/sparkbindings/play-with-shell.html。)

除此之外,您还可以使用 Spark 构建推荐引擎,例如Spark MLlib

在 Spark 中,(...) 交替最小二乘法 ( ALS ) 方法用于生成基于模型的协同过滤。

-Gorakala, S. (2016)。构建推荐引擎

在这一点上,在回答您的问题之前还有一个问题需要回答:我们可以在没有 Hadoop 的情况下运行 Spark 吗?.

所以,的,可以使用 Spark(没有 Hadoop)在 Windows 上使用 ALS 方法。


推荐阅读