2013-02-11 79 views
1

有没有人知道我可以如何转换Mahout in Action书中关于推荐引擎的代码,以便它符合Ηadoop完全分布式环境?我的主要困难是转换我的代码(目前从本地磁盘读取和写入),以便它在伪分布式环境(如Cloudera)中运行。我的问题的解决方案就像this one一样简单,或者我应该期待比这更复杂的东西?Mahout推荐引擎:正在分发

回答

3

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

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

如果您问的是如何实际分配计算,那么您将不得不切换到在项目中使用(完全不同)分布式实现。这些实际上使用Hadoop来分割计算。上述过程只是在Hadoop容器中运行许多非分布式任务。但是,这些实现完全脱机。

如果你的意思是你想要一个像Mahout .cf.taste包那样的实时推荐器,但也想实际使用Hadoop的分布式计算能力,那么你需要的不仅仅是Mahout。这是Mahout中的一个或另一个;有一个或另一个代码,但它们不相关。顺便说一下,这正是Myrrix。我不介意在这里宣传它,因为它听起来像你正在寻找的东西。这是我在Mahout代码中开始的工作的演变。除此之外,它是一个具有Taste实时元素的双层体系结构,但也可以将计算透明地卸载到Hadoop集群。

+1

谢谢你的启发答案! – user706838 2013-02-11 14:49:10