有人知道我如何转换mahout in action手册中关于推荐引擎的代码,使之与η一个完全分布式的环境?我的主要困难是转换代码(当前从本地磁盘读取和写入的代码),使其在伪分布式环境(如cloudera)中运行。我的问题的解决办法是这么简单,还是我应该期待比这更复杂的事情?
ac1kyiln1#
即使计算相同的结果,真正的分布式计算也与非分布式计算有很大的不同。结构不一样,使用的基础设施也不一样。如果您只是询问关于本地文件的伪分布式解决方案是如何工作的:您将忽略hadoop输入/输出机制并编写一个 Mapper 它从hdfs上的某个地方读取您的输入并复制到本地磁盘。如果您询问如何实际分配计算,那么您必须切换到在项目中使用(完全不同的)分布式实现。它们实际上使用hadoop来分割计算。上面的过程只是在hadoop容器中运行许多非分布式任务。然而,这些实现是完全离线的。如果你的意思是你想要一个实时的推荐人,像在马霍特 .cf.taste 包,而且还想实际使用hadoop的分布式计算能力,那么你需要的不仅仅是mahout。这不是一个或另一个在mahout;有些代码执行其中一个操作,但它们并不相关。顺便说一句,这正是没药。我不介意在这里做广告,因为这听起来正是你要找的。这是我在这个mahout代码中开始的工作的演变。除此之外,它是一个2层体系结构,具有实时性元素,但也可以透明地将计算卸载到hadoop集群。
Mapper
.cf.taste
1条答案
按热度按时间ac1kyiln1#
即使计算相同的结果,真正的分布式计算也与非分布式计算有很大的不同。结构不一样,使用的基础设施也不一样。
如果您只是询问关于本地文件的伪分布式解决方案是如何工作的:您将忽略hadoop输入/输出机制并编写一个
Mapper
它从hdfs上的某个地方读取您的输入并复制到本地磁盘。如果您询问如何实际分配计算,那么您必须切换到在项目中使用(完全不同的)分布式实现。它们实际上使用hadoop来分割计算。上面的过程只是在hadoop容器中运行许多非分布式任务。然而,这些实现是完全离线的。
如果你的意思是你想要一个实时的推荐人,像在马霍特
.cf.taste
包,而且还想实际使用hadoop的分布式计算能力,那么你需要的不仅仅是mahout。这不是一个或另一个在mahout;有些代码执行其中一个操作,但它们并不相关。顺便说一句,这正是没药。我不介意在这里做广告,因为这听起来正是你要找的。这是我在这个mahout代码中开始的工作的演变。除此之外,它是一个2层体系结构,具有实时性元素,但也可以透明地将计算卸载到hadoop集群。