MapReduce

      今天看到新闻:在将近六年等待之后,Google的一个专利申请近日终于获得批准,名为 System and method for efficient large-scale data processing(高效大规模数据处理),因为“非同小可”,所以了解了一下。它所指的是Google最引为自豪的成果之一,也是云计算最重要的核心技术之一:MapReduce

      MapReduce 是一种编程模型(并不是google自己开发的编程工具),用于大规模数据集(大于1TB)的并行运算,他的名字是由它的两个核心操作Map“映射”和Reduce“化简”组成。Map,是对数据集中的某一个独立的数据元素进行函数映射,产生另外一个数据的操作,映射的规则有函数来确定。而数据集中没有个元素都是被独立操作的,操作不会改变原始数据集,产生新的数据集会另外保存。因此Map操作是高度独立并可高度并行的。Reduce是指对一个列表元素进行适当的合并。百度中描述化简为:“虽然他不如映射函数那么并行,但是因为化简总是有一个简单的答案,大规模的运算相对独立(?),所以化简函数在高度并行环境下也很有用。”

      分布和可靠性
  MapReduce通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性;每个节点会周期性的把完成的工作和状态的更新报告回来。如果一个节点保持沉默超过一个预设的时间间隔,主节点(类同Google File System中的主服务器)记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。每个操作使用命名文件的原子操作以确保不会发生并行线程间的冲突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。(避免副作用)。

  化简操作工作方式很类似,但是由于化简操作在并行能力较差,主节点会尽量把化简操作调度在一个节点上,或者离需要操作的数据尽可能进的节点上了;这个特性可以满足Google的需求,因为他们有足够的带宽,他们的内部网络没有那么多的机器。

       MapReduce广泛用于各种数据挖掘应用中,除了Google自己,还有Yahoo的搜索基础设施,Amazon的Elastic MapReduce服务,IBM的M2平台,等等。当然,最重要的实现应该是开源项目Apache Hadoop。事实上,Hadoop已经成为Yahoo整个Web基础设施的核心,用户还包括Facebook、Last.fm、Joost、Meebo、Ning等2.0新贵和《纽约时报》网站、Rackspace等云计算公司。

 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值