原文地址:
http://www.kuqin.com/database/20120715/322528.html
Hadoop这个单词如今铺天盖地,几乎成了大数据的代名词。仅仅数年时间,Hadoop从边缘技术迅速成长为一个事实标准。如今想玩转大数据,搞企业分析或者商业智能,没有Hadoop还真不行。但Hadoop狂热的背后却酝酿着一场技术变革,Hadoop的核心技术在Google那里已经过时,因为Hadoop并不擅长处理“快数据”。
今天,Hadoop似乎已经毫无争议地成了企业大数据技术标准,看上去Hadoop将根植企业,其地位在未来十年似乎都不会动摇。但是GigaOM的专栏作家Mike Miller却发出了“不和谐”的声音:“企业真的会为一个盛极而衰的技术买单吗?”
起源:Google文件系统和Google MapReduce为了探讨Hadoop的生命周期我们需要回溯Hadoop的灵感源泉——Google的MapReduce。为了迎接数据大爆炸的挑战,Google的工程师Jeff Dean和Sanjay Ghemawat架构了两个影响深远的系统:Google File System(GFS)和Google MapReduce(GMR)。前者是一个能在通用硬件上管理EB(Exabyte)级数据的出色的可行方案。后者则是一个同样出色的,能在通用服务器上大规模并行处理数据的模型设计实现。
GMR的出彩之处在于能够让普通的Google用户和开发者也能够进行高速、容错的大数据处理。GMR和GFS成了搜索引擎数据处理引擎的核心,该引擎抓取、分析并分级web页面,并最终为用户呈现日常搜索结果。
我们再回头看看Apache Hadoop的两大组成部分:Hadoop分布式文件系统和Hadoop,确实就是GFS和GMR的翻版。虽然Hadoop正在发展成为一个无所不包的数据管理和处理生态系统,但是在这个生态系统的核心,依然是MapReduce系统。所有的数据和应用最终都将降解为Map和Reduce的工作。
Google已经进化,Hadoop能否跟上?
有趣的事情是,GMR已经不再占据Google软件堆栈中的显赫位置。当企业被Hadoop解决方案锁定到MapReduce上时,Google却已经准备淘汰MapReduce技术。虽然Apache项目和Hadoop商业发行版本试图通过HBase、Hive和下一代MapReduce(亦即YARN)弥补Hadoop的短板。但笔者认为只有用全新的,非MapReduce架构的技术替代Hadoop内核(HDFS和Zookeeper)才能与谷歌的技术抗衡。(这里有一个更加技术性的阐述:gluecon-miller-horizon)
增量索引过滤器(Percolator for incremental indexing)和频繁变化数据集分析。Hadoop是一台大型“机器”,当启动并全速运转时处理数据的性能惊人,你唯一需要操心的就是硬盘的传输速度跟不上。但是每次你准备启动分析数据时,都需要把所有的数据都过一遍,当数据集越来越庞大时,这个问题将导致分析时间无限延长。
那么Google是如何解决让搜索结果返回速度越来越接近实时的呢?答案是用增量处理引擎Percolator代替GMR。通过只处理新增的、改动过的或删除的文档和使用二级指数来高效率建目录,返回查询结果。Percolator论文的作者写道:“将索引系统转换成增量系统…将文档处理延迟缩短了100倍。”这意味着索引web新内容的速度比用MapReduce快100倍!
类似大型强子对撞机产生的数据将不断变大,Twitter也是如此。这也是为什么HBase中会新增触发流程,而Twitter Storm正在成为实时处理流数据的热门技术。
用于点对点分析的Dremel。Google和Hadoop生态系统都致力于让MapReduce成为可用的点对点分析工具。从Sawzall到Pig和Hive,创建了大量的界面层,但是尽管这让Hadoop看上去更像SQL系统,但是人们忘记了一个基本事实——MapReduce(以及Hadoop)是为组织数据处理任务开发的系统,诞生于工作流内核,而不是点对点分析。
今天有大量的BI/分析查询都是点对点模式,属于互动和低延迟的分析。Hadoop的Map和Reduce工作流让很多分析师望而却步,而且工作启动和完成工作流运行的漫长周期对于很多互动性分析来说意味着糟糕的用户体验。于是,Google发明了Dremel(业界也称之为BigQuery产品)专用工具,可以让分析师数秒钟内就扫描成PB(Petabyte)的数据完成点到点查询,而且还能支持可视化。Google在Dremel的论文中声称:“Dremel能够在数秒内完成数万亿行数据的聚合查询,比MapReduce快上100倍!”
分析图数据的Pregel。Google MapReduce的设计初衷是分析世界上最大的数据图谱——互联网。但是在分析人际网络、电信设备、文档和其他一些图数据时就没有那么灵光了,例如MapReduce在计算单源最短路径(SSSP)时效率非常低下,已有的并行图算法库Parallel BGL或者CGMgraph又没有容错。
于是Google开发了Pregel,一个可以在分布式通用服务器上处理PB级别图数据的大型同步处理应用。与Hadoop经常在处理图数据时产生指数级数据放大相比,Pregel能够自然高效地处理SSSP或PageRank等图算法,所用时间要短得多,代码也简洁得多。
目前唯一能与Pregel媲美的开源选择是Giraph,这是一个早期的Apache孵化项目,调用了HDFS和Zookeeper。Githb上还有一个项目Golden Orb可用。
总结
总而言之,Hadoop是一个可以在普通通用硬件集群上进行大规模数据处理的优秀工具。但是如果你希望处理动态数据集、点对点分析或者图数据结构,那么Google已经为我们展示了大大优于MapReduce范型的技术选择。毫无疑问,Percolator、Dremel和Pregel将成为大数据的新“三巨头”,正如Google的老“三巨头”:GFS、GMR和BigTable所做的那样。
分享到:
相关推荐
标题中的"hadoop/bin/hadoop.dll"指出这是一款与Hadoop框架相关的动态链接库(DLL)文件,它位于Hadoop安装目录的"bin"子目录下。在Windows操作系统中,DLL文件是程序运行所必需的组件,它们包含了可执行文件在运行...
10丨模块答疑:我们能从Hadoop学到什么?.html
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。Storm是一个分布式的、容错的实时计算系统。两者整合,优势互补。
### Hadoop安装教程详解 #### 一、概述 Hadoop是一种能够处理大量数据的大规模分布式存储与计算平台,被广泛应用于大数据处理领域。本篇教程将详细介绍如何在多台服务器上部署Hadoop集群,分为八个步骤进行讲解。...
Hadoop是什么?怎么部署.pdf
《用Hadoop,还是不用Hadoop?》这篇文章探讨了在面对大数据处理时,是否应该采用Hadoop作为解决方案的问题。Hadoop常被视为大数据处理的万能良药,但实际上,它的适用场景是有限的。以下是五个可能不适合使用Hadoop...
在大数据处理领域,HBase和Hadoop是两个关键的组件,它们在分布式存储和处理大量数据方面发挥着重要作用。JMX(Java Management Extensions)是一种Java平台标准,用于管理和监控应用程序。在本实战中,我们将深入...
面试hadoop可能被问到的问题你能回答出几个 ? 1、hadoop运行的原理? 2、mapreduce的原理? 3、HDFS存储的机制? 4、举一个简单的例子说明mapreduce是怎么来运行的 ? 5、面试的人给你出一些问题,让你用mapreduce来...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在大规模集群中高效处理和存储海量数据。这个压缩包文件包含的"hadop实用案例"很可能是为了帮助初学者理解和应用Hadoop技术。以下是关于Hadoop的一些...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。它是由Apache软件基金会开发并维护的,旨在提供可靠、可扩展的数据处理能力。标题中的"hadoop.dll"和"winutils.exe"是Hadoop在...
4. 如何安装 Hadoop? 答:解压缩 Hadoop 软件包,创建必要的目录,如 TMP DIR、NameNode DIR 和 DataNode DIR,然后配置 core-site.xml 文件。 5. Hadoop 的组件有哪些? 答:Hadoop 由多个组件组成,包括 HDFS、...
hadoop 什么是 Apache Hadoop?Hadoop介绍 Apache Hadoop 是一个开源软件框架,由当时就职于雅虎的 Douglas Cutting 开发,该框架使用简单的编程模型提供对大型数据集的高度可靠的分布式处理。
【标题】:Hadoop的辉煌还能延续多久? 【描述】:Hadoop技术已经在大数据领域占据主导地位,但随着技术的不断发展,人们开始思考Hadoop的未来。 【标签】:hadoop 【正文】: Hadoop,这个曾经引领大数据潮流的...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop 2.7.3是这个框架的一个稳定版本,它包含了多个改进和优化,以提高性能和稳定性。在这个版本中,Winutils.exe和hadoop.dll是两...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在普通硬件上高效处理大量数据。在Windows环境下,Hadoop的使用与Linux有所不同,因为它的设计最初是针对Linux操作系统的。"winutils"和"hadoop.dll...
Hadoop是一款开源的大数据处理框架,最初由Apache软件基金会开发,主要用于分布式存储和计算。在Windows环境下运行Hadoop,与在Linux系统中的配置有所不同,因为Hadoop原生是为类Unix系统设计的。然而,通过一些额外...
Hadoop是一个开源的分布式计算框架,由Apache基金会开发,它主要设计用于处理和存储大量数据。在提供的信息中,我们关注的是"Hadoop的dll文件",这是一个动态链接库(DLL)文件,通常在Windows操作系统中使用,用于...
在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式存储和计算的能力。本文将详细探讨与"Hadoop.dll"和"winutils.exe"相关的知识点,以及它们在Hadoop-2.7.1版本中的作用。 Hadoop.dll是Hadoop在...
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop 2.7.3是Hadoop发展中的一个重要版本,它包含了众多的优化和改进,旨在提高性能、稳定性和易用性。在这个版本中,`hadoop.dll`...
Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 Yahoo 的工程师 Doug Cutting 和 Mike Cafarella Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 Yahoo...