有消息表明,Google在新型网络内容索引系统——Caffeine中,将放弃以MapReduce为基础架构的分布式计算平台。
据Google高级主管Eisar
Lipkovitz表示,在Caffeine中,Google的后端索引系统将从MapReduce上移除,并向Google新建的分布式数据库平台——
BigTable上进行迁移。他表示,谷歌将于下月在USENIX研讨会上提交一项新的文件讨论系统。
据了解,从去年开始,Google就已经启动了代号为“Colossus”的研发计划,主要内容围绕新的分布式文件系统——Caffeine进行研发。Caffeine将创建一个新的数据库的编程模型,而这也意味着Google必须在BigTable上重建整个索引系统。
MapReduce完成历史使命
必须看到的是,在Google的直接竞争对手——Yahoo、Facebook们对MapReduce饱含热情进行研发投入的同时,Google却宣布放弃MapReduce,不得不佩服Google的勇气。
实际上,早在Caffeine建立之前,Google就建立了基于MapReduce的搜索索引系统。从本质上而言,这个索引是由序列的批处理操作
组成的。它通过把对数据集的大规模操作分发给网络上的每个节点进行运算,而每个节点会周期性的把完成的工作和状态的更新报告回主计算。
Lipkovitz首先谈到了Google基于MapReduce文件索引系统处理方式。“我们必须面对一个非常庞大的数据系统,在这之前,我们需
要等待8个小时的计算时间我们才能够得到计算的全结果,然后我们就会把它发布到索引系统中去。过去我们一直在不停地重复这个耗时耗力的工作。”
Lipkovitz进一步解释了Google放弃MapReduce的原因,“MapReduce仅仅是一个批处理操作方式,”Lipkovitz解释说,“一般来说你不能启动下一阶段的命令操作,直到你完成第一项操作。”
可以看到,Google之所以放弃MapReduce,是因为它并不能为谷歌提供它所想要的索引速度,特别是随着实时检索时代的到来,谷歌需要的是在几秒内刷新索引内容,而非8小时。
实际上,在过去的几年里,针对MapReduce的技术讨论可谓是褒贬不一。
麻省理工学院的数据库专家Mike Stonebraker认为,MapReduce的计算方法对于实时计算来说是很不合适的,是过时的。
“MapReduce就像是游击队员而非正规军”,Lipkovitz表示,“如果你想基于Mapreduces建立分布式文件处理系统,如果你想
实现更多的操作命令,那么必然会有错误发生。况且你并不能缩短处理的时间,这是Google选择放弃Mapreduces的原因。”
Caffeine的处理原理
早前在谷歌的一篇博文中,谷歌提到了Caffeine的处理原理,“与我们的老索引技术相比,Caffeine能够提供的新网络搜索结果提高50%,最大程度收集我们提供的网络内容。无论是新闻、还是博客或论坛,一经发布,用户都能发现相关内容的链接,索引速度较以前有大幅提高。
”
据了解,Google从2009年8月就开始测试Caffeine。当时,Google曾表示新索引技术将是自2006年以来的重大变革。速度和综合性是新技术关注的目标。
Google曾表示,新系统需与网络内容的爆炸性增长保持同步,过去两年中,博客、视频和社交媒体技术都蜂拥至网络。借助Caffeine,Google将加快索引次数的更新,对一小部分网络进行消化,而不是对整个网络重新索引并更新索引内容。
Google软件工程师卡莉·格兰姆斯(Carrie Grimes)在博客中称:“我们将把Caffeine列为未来考虑重点,不仅使之索引更多新结果,还要将之打造为适应网络消息增长的速度更快、理解力更高的搜索引擎,为用户提供相关度更高的搜索结果。”
关于“Colossus”计划
“我们需要一个新的计算框架”,Lipkovitz说,这使工程师能够在BigTable上编写代码,而该系统是基于“Colossus”建立的分布式存储平台——也被称为GFS2。
“原有的基于MapReduce的文件系统,不能达到Google所需要的计算规模。”
据了解,“Colossus”是专门设计BigTable的开发计划,基于这个原因,它并不针对传统的分布式存储平台应用。换句话说,它是专为建立
新的Caffeine搜索索引系统而用的,虽然它可能会在Google的其它内容所服务,但其并未跨越整个谷歌的基础设施系统。
在Google的实时搜索引擎Instant的发布上,谷歌著名的工程师Ben Gomes表示,Caffeine并未在Instant架构中,但它的确有助于帮助把数据处理实现“分布”式搜索服务。
Lipkovitz同时指出,MapReduce并非意味着消亡,在Caffeine中,仍然有基于MapReduce的批处理应用,以及全球尚有其它的基础设施。
而在Caffeine的诞生之前,索引系统是谷歌最大的MapReduce的应用程序。
原文链接:http://www.theregister.co.uk/2010/09/09/google_caffeine_explained/
关于MapReduce
在Google数据中心会有大规模数据需要处理,
比如被网络爬虫抓取的大量网页等。由于这些数据很多都是PB级别,导致处理工作不得不尽可能的并行化,而Google为了解决这个问题,引入了
MapReduce这个编程模型,MapReduce是源自函数式语言,主要通过"Map(映射)"和"Reduce(化简)"这两个步骤来并行处理大规
模的数据集。Map会先对由很多独立元素组成的逻辑列表中的每一个元素进行指定的操作,且原始列表不会被更改,会创建多个新的列表来保存Map的处理结
果。也就意味着,Map操作是高度并行的。当Map工作完成之后,系统会先对新生成的多个列表进行清理(Shuffle)和排序,之后会这些新创建的列表
进行Reduce操作,也就是对一个列表中的元素根据Key值进行适当的合并。
通过MapReduce这么简单的编程模型,不仅
能用于处理大规模数据,而且能将很多繁琐的细节隐藏起来,比如自动并行化,负载均衡和机
器宕机处理等,这样将极大地简化程序员的开发工作。MapReduce可用于包括“分布grep,分布排序,web访问日志分析,反向索引构建,文档聚
类,机器学习,基于统计的机器翻译,生成Google的整个搜索的索引“等大规模数据处理工作。Yahoo也推出MapReduce的开源版本
Hadoop,而且Hadoop在业界也已经被大规模使用。
分享到:
相关推荐
MapReduce 谷歌实验室论文--大规模集群下的数据处理,英文版
基于MapReduce的简单倒排索引的建立
MapReduce操作实例-倒排索引.pdf 学习资料 复习资料 教学资源
基于mapreduce的小型电影推荐系统,使用javaweb的方式实现,
基于mapreduce的小型电影推荐系统,使用javaweb的方式实现,包含数据集。
共享一个关于mapreduce框架建立简单的倒排索引的文档
针对MapReduce数据块处理机制、高维数据分布特征和KNN查询需求,设计一种基于B 树的高维索引结构(iPartition),创新性提出基于主成分区分度的优化数据划分策略和邻接数据域分散存储等原则,将数据均匀划分到不同的...
文档倒排索引的MapReduce程序设计与实现
倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted ...
经实现了数以百计的MapReduce程序,在Google的集群上,每天都有1000多个MapReduce程序在执 行。 1、介绍 在过去的5年里,包括本文作者在内的Google的很多程序员,为了处理海量的原始数据,已经实现了数 以百计的、...
Google文件系统和MapReduce的原始论文
mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce mapreduce ...
MapReduceExample 下建立新包 com.xijing.mapreduce,模仿内置的 WordCount 示例,自己编写一个 WordCount 程序,最后打包成 JAR 形式并在 Hadoop 集群上运行该 MR-App,查看运行结果。 4 分别在自编 MapReduce 程序...
Google MapReduce论文中文版本
Google MapReduce,Google分布式计算文献中文翻译版,学习大数据必备入门资料
Google 三大技术之一: MapReduce 中文版
Hadoop mapreduce 实现InvertedIndexer倒排索引,能用。
谷歌在03到06年间连续发表了三篇很有影响力的文章,分别是03年SOSP的GFS,04年OSDI的MapReduce,和06年OSDI的BigTable。SOSP和OSDI都是操作系统领域的顶级会议,在计算机学会推荐会议里属于A类。SOSP在单数年举办,...
#资源达人分享计划#
Google MapReduce实施了一系列的优化。 • 分区函数:保证不同map输出的相同key,落到同一个reduce里 • 合并函数:在map结束时,对相同key的多个输出做本地合并,节省总体资源 • 输入文件到map如何切分:随意,...