【译】mahout in action 1.4 扩展性Scaling up

当提供大量的优良的输入数据时,这些技术中的那一个才可以最好的操作。有时候,这些技术不仅必须在大量的输入数据上操作,而且必须很快的产生结果。可扩展性,很快成为这些因素的一个主要问题。

根据粗略的估计,Picasa甚至在三年前可能已经服务器托管了5亿的图片。这意味着每日成千上万的新的图片必须被分析。通过它自己来分析一张图片没有很大的问题,虽然它重复成千上万次。但是,学习阶段需要同时地数以亿计的每张图片的信息,一定规模的计算对于单一的机器来说是显然是行不通的。

根据类似的分析,谷歌新闻中心每天查询大约3.5百万的新的新闻文章。虽然就其本身来说这不是很大的量,但考虑到这些文章必须与近来的文章一起被聚集,并且需要在短时间内完成。

Netflix发行的Nerflix奖,额定数据的子集包含了一亿个等级。大概这是因为竞争的目的而发布的,所以Netflix实际拥有并必须处理,用来创造推荐的数据的总额扩大了很多倍。

这些技术在上下文中是有必要的展开,在上下文里输入的数据总额是非常巨大的。如此巨大的数据量,在一台电脑上,甚至在一个强大的电脑上处理它,都是行不通的。因此,实施这些技术的人,没有人能够忽视这个规模问题。这就是为什么Mahout使可扩展性成为头等重要的事情,以及为什么这本书会集中有效的处理大型的数据集合,而其他技术则不会采用这种方式。

[size=large]1.5.1 MapReduce 和 Hadoop[/size]

Mahout利用Apache Hadoop 项目,这个项目是一个基于java的开源实现mapreduce(http://labs.google.com/papers/mapreduce.html) 。mapreduce是一个分布式计算框架,并且在谷歌内部普遍使用。Mapreduce是一个设计范式,它起先听起来可能有些古怪,或者太简单而不能强有力。Mapreduce框架适用于这些问题,它的输入数据是一套键值对。一个“map”的作用是把这些键值对,变成其他中间结果的键值对。一个“reduce”的作用是以某种方式,将每个中间结果的键合并所有的值来产生结果。

事实上,很多难题可以被MapReduce实现,或者解决它们。这个框架本身有很好的并发性:所有的处理都是独立的,并且可以被分割到很多的机器上。请参考这里了解关于hadoop的更多知识(http://hadoop.apache.org/common/docs/current/mapred_tutorial.html).
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值