hadoop - 使用 mahout : difference between running a . jar 并输入控制台指令

标签 hadoop mahout recommendation-engine

我对 mahout 有点困惑:我的印象是有两种使用方法:

  • 使用 Taste 推荐器
  • 执行 .jar
  • 使用命令行,例如mahout recommenditembased --input input/recommend_data.csv --output output/recommendation --similarityClassname SIMILARITY_PEARSON_CORRELATION如图here .

  • -> 是正确的还是一样的?

    我的问题是:我有一个 csv 输入文件,格式如下:user_id、item_id、rating。我有 100 000 行,我需要每天为所有用户计算推荐。我读过没有hadoop应该没问题,但事实并非如此:我创建的.jar适用于小批量但不适用于整个输入文件。

    命令行方法在 5 分钟内工作,这还可以,但它不如 jar 项目灵活(最重要的是与 MySQL 数据库的接口(interface))。

    是否可以使用 .jar 并从 hadoop 中受益?
    由于我没有分发任何计算(hadoop 在一台服务器上运行),在 .jar-without-mahout 方法和命令行-with-hadoop 方法之间存在这种差异是否正常?

    非常感谢您的帮助!

    最佳答案

    100000 行并不是很多数据。我相信你不需要使用推荐算法的分布式版本,即使它运行在伪分布式模式下(只有一台机器)。

    您可以轻松地使用 API 来构建您自己的非分布式推荐器。这是 Mahout in Action 书中的一个示例(我推荐阅读) [link] .在这种情况下,他们使用的是基于相似用户的推荐器,从我在您的问题中看到的,您使用的是基于相似项目的推荐器。

    要使用项目相似性制作一个,您需要使用 ItemSimilarity而不是 UserSimilarity .同样,而不是 GenericUserBasedRecommender你会使用 GenericItemBasedRecommender .然后,当然,您将遍历所有用户并要求为每个用户提供建议。

    希望这可以帮助。

    关于hadoop - 使用 mahout : difference between running a . jar 并输入控制台指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251838/

    相关文章:

    hadoop - 无法从Ambari移除死主机

    hadoop - Hbase 0.92.1 二级索引示例

    针对非登录/访客/匿名用户的 Mahout 推荐

    vector - java.lang.OutOfMemoryError : Java heap space error while running seq2sparse in mahout 错误

    Mahout 推荐器 - 将基于内容的相似性添加到基于项目的推荐器中

    machine-learning - 基于相似度的向量系数

    hadoop - 我们可以在同一个 hadoop 集群中同时使用 Fair scheduler 和 Capacity Scheduler

    java - 使用原生 FS 时的 HBase 批量加载

    mahout - 如何加速基于 Mahout 项目的推荐系统?

    pyspark - 使用 ML Spark 和数据帧进行隐式推荐