1

有谁知道我可以如何转换Mahout in Action书中关于推荐引擎的代码,使其与 Ηadoop 完全分布式环境一致?我的主要困难是转换我的代码(当前从本地磁盘读取和写入),使其在伪分布式环境(如 Cloudera)中运行。我的问题的解决方案是像这个一样简单,还是我应该期待比这更复杂的东西?

4

1 回答 1

3

真正的分布式计算与非分布式计算完全不同,即使计算相同的结果也是如此。结构不一样,它使用的基础设施也不一样。

如果您只是询问伪分布式解决方案如何处理本地文件:您将忽略 Hadoop 输入/输出机制并编写一个Mapper从 HDFS 上某处读取您的输入并复制到本地磁盘的程序。

如果您问的是如何实际分配计算,那么您将不得不切换到使用项目中的(完全不同的)分布式实现。这些实际上使用 Hadoop 来拆分计算。上面的过程是一个 hack,它只在 Hadoop 容器中运行许多非分布式任务。然而,这些实现是完全离线的。

如果你的意思是你想要一个像 Mahout 包一样的实时推荐.cf.taste器,但又想实际使用 Hadoop 的分布式计算能力,那么你需要的不仅仅是 Mahout。Mahout 中的一个或另一个;有代码可以执行其中一项,但它们不相关。

顺便说一句,这正是Myrrix。我不介意在这里做广告,因为它听起来正是您可能正在寻找的东西。这是我在此 Mahout 代码中开始的工作的演变。除此之外,它是一个 2 层架构,具有 Taste 的实时元素,但也可以透明地将计算卸载到 Hadoop 集群。

于 2013-02-11T14:15:51.320 回答