有消息表明,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在业界也已经被大规模使用。
分享到:
相关推荐
在Map函数中,通过文档解析器解析存储在HDFS文件系统的文档,然后创建索引并输出。而Reduce函数则对同一组内的文档索引进行归并处理,控制索引片的大小,并在达到阀值时输出独立的索引片,以此来保证索引的高效处理...
在这个实例中,我们将详细探讨如何使用MapReduce实现倒排索引。 首先,我们来看`Mapper`类。`InvertedIndexMapper`是Map阶段的核心,它负责将输入数据拆分成键值对(K1, V1)并转换为新的键值对(K2, V2)。在这个...
Hadoop mapreduce 实现InvertedIndexer倒排索引,能用。
MapReduce是Apache Hadoop的一部分,用于分布式处理大规模数据,尤其适合处理推荐系统中常见的协同过滤或基于内容的推荐算法。Java Web是开发Web应用程序的标准技术,用于构建服务器端功能和用户界面。推荐系统则是...
在这个推荐系统中,MySQL用于存储用户信息,如用户ID、喜好等;电影信息,如电影ID、名称、类型等;以及用户观影历史等关键数据。 4. **JavaWeb**:JavaWeb是指用Java语言开发的Web应用。JSP是其中的一部分,它允许...
此外,文档还讨论了如何使用MapReduce模型对大规模并行处理进行了优化,并提到了其在Google内部的应用情况,比如索引系统的重写和其他一些基于MapReduce的项目实践。最后,文档对未来工作进行了讨论,包括MapReduce...
根据提供的文件信息,本文将详细探讨“文档倒排索引的MapReduce程序设计与实现”这一主题,重点介绍倒排索引的基本概念、其在搜索引擎中的应用以及如何利用MapReduce框架来实现高效的文档倒排索引构建。 ### 倒排...
谷歌的三篇经典论文——Bigtable、File-System和MapReduce,对现代大数据处理和分布式系统的发展产生了深远影响。这三篇文章分别详细介绍了谷歌在数据存储、文件系统和大规模并行计算上的创新解决方案。 首先,让...
MapReduce 是一种解决问题的思路,而不是一个产品,它有多个工程实现,Google 在论文中也给出了它自己的工程架构实现。MapReduce 编程模型解决的问题是能够用分治法解决的问题,如网页抓取、日志处理、索引倒排、...
在论文《MapReduce: Simplified Data Processing on Large Clusters》中,Google详细描述了MapReduce的实现细节,包括作业调度、数据分区、容错机制以及优化策略等。 结合GFS和MapReduce,Google能够高效地处理海量...
MapReduce排序在很多实际应用中非常常见,如日志分析、搜索引擎的索引构建、社交媒体数据分析等。通过对海量数据进行排序,我们可以找出最常见的词汇、用户行为模式或者发现其他有价值的洞察。 ### 总结 这个面向...
Hadoop MapReduce在Apache Hadoop生态系统中扮演着核心角色,使得非Google公司也能利用这种强大的计算模型处理海量数据。 中文版的Google MapReduce文档对于中国开发者来说是一个宝贵的资源,它可以帮助他们深入...
**Google MapReduce** 是一种分布式计算框架,由Google在2004年提出,用于解决大规模数据处理的问题。它的设计灵感来源于函数式编程中的映射(Map)和化简(Reduce)操作,使得程序员可以方便地编写处理海量数据的...
MapReduce模型在Google内部被广泛采用,不仅用于各种数据处理任务,还作为基础重写了索引系统产品,积累了丰富的使用经验。MapReduce模型的实现具有自动并行化和容错的功能,使得即使是复杂的计算任务也能在大量普通...
Google 内部已经使用 MapReduce 重写了其索引系统,证明了这一模型在处理大数据问题上的实用性。 总结来说,MapReduce 是一种强大的工具,它通过将复杂的数据处理任务分解为可并行化的 Map 和 Reduce 阶段,使...