雅虎架构师谈MapReduce和Hadoop的未来
作者 Scott Delap译者 Terry 发布于 2008年3月18日 下午10时42分
Hadoop是一个开源的分布式计算平台,它主要由MapReduce的算法执行和一个分布式的文件系统等两部分组成。InfoQ曾经
刊登过一篇Jeremy Zawodny写的有关Hadoop速度提升的综述性文章。这次InfoQ的资深Java编辑Scott Delap和Hadoop项目负责人Doug Cutting进行了一次专访。在这次InfoQ的专访中,Cutting论述了Hadoop是如何在Yahoo中被使用的,以及Hadoop发展中遇到的挑战和Hadoop项目未来的发展方向。
相关厂商内容
开源框架OperaMasks 2.0系列开发教程
SOA中国关键任务论坛(5.22北京)Free电子票下载
Scott Delap(SD):Hadoop已经作为正式产品服务于Yahoo的某些功能了吗?如果还没有,有什么计划让Hadoop从一个实验性的产品向核心基础组件迁移?
Doug Cutting(DC):Yahoo定期在搜索业务上使用Hadoop来提高其产品和服务,如排名功能和目标广告等。除此之外,也有一些直接使用Hadoop进行数据生成的案例。Hadoop的长期目标是提供世界级的分布式计算工具,也是对下一代业务(如搜索结果分析等)提供支持的Web扩展(web-scale)服务。
SD:Yahoo负责Hadoop项目的团队的规模有多大?除了Yahoo内部人员,其余还有多少活跃的代码贡献者?
DC:Yahoo有一个专项小组直接负责Hadoop的开发工作,而Apache开源项目的活跃贡献者一般都有自己的第一职业。即使如此,仍然有一些非Yahoo工作人员每月、每周甚至每天为Hadoop做出自己的贡献。
SD:相比Google,Yahoo坚持在可扩展的基础架构上采用不同途径。虽然Google已经发布了众多技术方面的论文,但其对普通大众意义并不十分明显。而为什么你觉得开源是正确的一个方向?
DC:开源项目得到最好的运行需要满足两个条件:第一,每个人对项目所能做的事有共同的认识。第二,有一套易理解的文档解决方案。由于基础架构软件在众多领域有广泛应用,所以此类开源软件发展的格外好。而Yahoo就在使用并支撑FreeBsd、Linux、 Apache、PHP和MySQL等此类基础架构软件。让任何人都可以利用Hadoop来帮助Yahoo改善现状并提高目前建立大型分布式系统的水平。源代码仅仅只是难题的一小部分,除此之外,一个组织还需要有个非常强大的工程师团队来解决重大难题并使其付诸实践。有正确的发布和管理基础架构的能力也显得非常的重要。目前几乎没有哪家公司能拥有所有这些必需的资源。所以,软件工程师们都愿意为开源项目工作,他们能在巨大的社区中遇到许多志同道合的朋友,学到一些被共享的技巧并应用于今后的其他项目中。这样优秀的社区环境很容易培养出许多新的杰出工程师。Yahoo和Hadoop社区都受益于这种合作的机制,更加懂得大规模的分布式计算所需要的东西,并且把我们专家的意见和技术都共享出来建立一个人人都能使用和修改的解决方案.
SD:回到技术的本身,近年随着Hadoop的不断发展,你觉得影响其速度和稳定性的要素是什么?我发现现在500条记录的排序基准比去年快上了20倍,这是由于某个部分巨大的提升所至还是由多个部分的共同优化所带来的结果?
DC:在处理Web扩展服类软件过程中,随着使用此解决方案的其它公司和组织的不断增加,Yahoo发现它们都获得相似的性能。Yahoo决定将其开源,而非以私有软件的形式继续发展。所以Yahoo雇佣了我来带领这个项目。至今,Yahoo已经贡献了绝大部分代码。
至于速度的提升,是过去几年努力成果的一个总和,并且已经经过了反复的试验。在给定规模的服务器集群中,我们能让系统非常平稳地运行,然后试验在两倍于这样规模的服务器集群中运行会发生什么情况。我们的目标是让性能随集群规模增长成线性增加。我们从这个过程中不断学习,并且再次增大集群的规模。每增大一次集群的规模,更多数量和更多种类的错误也将相应增加,因此稳定性将是个重大问题。
每一次这样做,我们都能明白哪些东西是可以达到的,哪些经验可以贡献给开源的网格计算公共知识库的。随着服务器集群规模的增大,各种新的故障不断产生,罕见的错误变为常见的错误,这些情况都是需要我们解决的。而这个过程所学到的又将影响到我们下一次这样反复的试验。
SD:去年起Hadoop就已经可以在Amazon EC2上运行了。这将使开发者可以快速搭建起他们自己的服务器集群。那么管理这样一个集群、HDFS以及MapReduce的处理还有什么额外的工作需要做吗?
DC:Yahoo有一个名为HOD(Hadoop on Demand)的项目,它可以让Mapreduce运行在很普通的机器上。这还是一个正处于建设过程中的开源项目。由于运行一个大型的集群是非常复杂和受资源限制的事,所以Amazon EC2对于普通民众来说,是一个非常不错的接触Hadoop的平台。
SD:在Hadoop功能上你如何客观地和Google已发布的产品进行比较?在从程序单元到数据单元的优化解决过程中,有什么新特性吗?
DC:近十年来,很多大型公司(包括Yahoo)和一些理论研究机构都在对大规模分布式计算软件进行开发和研究。而最近随着经济计算在消费市场的显现,这种开发和研究的兴趣更加高涨。与Google不同,Yahoo采取了开发完全开源的Hadoop,让任何人都可以免费使用和修改这个软件。Hadoop的目标已经延伸到超越目前现存的任何技术复制品的地步。我们将致力于把Hadoop建立成一个对任何人都有用的系统。我们已经实现了大多数Google已经发布的东西,而且还加上很多其它没有提及到的。Yahoo在这个项目中将扮演领导者的角色,因为它的目标和我们的需求是非常吻合的,并且我们明白共享这个技术给世界的意义。
SD:最新的官方版本是0.13.1。在未来会有什么重大的新特性吗?1.0版将完成什么样的一些工作。
DC:0.14.0版就将有多达218处的变化。其中对系统最大的改变是我们直接改良了数据的完整性。这是一个对用户来说看不见的变化,但是它对于整个系统的未来发展来说是很有效的。由于数据和集群的规模,无论是内存还是磁盘都很频繁地出现问题,这将是个危机。我们还添加了改变文件时间的功能,还有一些MapReduce的C++ API函数,还增加了主机的一些其它特性,以及bug的定位和修复。
Hadoop 0.15.0也正在成型,计划会有88处修改。这个版本会增加对文件系统的认证和授权,让同一服务器集群之间的信息访问变得更加安全。我们还计划修订大量的Mapreduce的API。0.15.0将是一个很有难度的版本,因为它需要用户对他们的应用做出修改,我们希望能一步到位。我们还希望0.15将是1.0以前的最后一个版本。在1.0以后我们就将会非常保守了,不会再突然做出巨大的改变。我们同样也会非常关注向后兼容的问题,对于1.0版本来说,这将显得更加的重要。任何为1.0版编写的代码也将继续可运行在1.X以后的版本。所以我们需要保证我们现有的API能轻松地扩展到以后的版本。我们将试着在0.15版本就将这些落实。
查看英文原文:Yahoo's Doug Cutting on MapReduce and the Future of Hadoop
引用:http://www.infoq.com/cn/articles/hadoop-interview;jsessionid=5A55A8F63E84C08E12E8D492A9F420F6
分享到:
相关推荐
在Hadoop 2.x版本中,相较于早期版本,其架构和依赖库有了明显的变化。在早期版本如1.x中,所有的依赖都集中在`hadoop-core*.jar`这一个文件里。但在Hadoop 2.x中,这种集中式的依赖管理方式被分成了多个单独的JAR...
基于MapReduce+Hadoop实现的朴素贝叶斯分类项目源码(优秀课设).zip基于MapReduce+Hadoop实现的朴素贝叶斯分类项目源码(优秀课设).zip基于MapReduce+Hadoop实现的朴素贝叶斯分类项目源码(优秀课设).zip基于...
在这个场景中,我们将讨论如何使用Hadoop的MapReduce来实现词统计和列式统计。 **一、MapReduce原理** MapReduce的工作流程主要包括三个主要阶段:Map、Shuffle(排序)和Reduce。在Map阶段,输入数据被分割成多个...
【标题】Hadoop MapReduce 实现 WordCount ...通过理解和实践 Hadoop MapReduce 的 WordCount 示例,开发者可以快速掌握 MapReduce 的基本工作原理,为进一步学习和应用大数据处理技术打下坚实基础。
Hadoop是由Apache基金会开发的一个开源项目,主要由HDFS(Hadoop Distributed File System)和MapReduce两部分组成。HDFS是一个分布式文件系统,它允许多台廉价服务器节点联合存储和处理大规模数据;而MapReduce是一...
Big Data, MapReduce, Hadoop, and Spark with Python: Master Big Data Analytics and Data Wrangling with MapReduce Fundamentals using Hadoop, Spark, and Python by LazyProgrammer English | 15 Aug 2016 | ...
Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,这两个组件共同为大数据处理提供了强大的支持。 MapReduce是一种分布式计算模型,由Google提出,Hadoop对其进行了实现。在MapReduce中,...
《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》这本书深入探讨了Hadoop MapReduce的核心概念和技术细节,对于想要深入了解Hadoop MapReduce的开发人员、运维工程师以及研究人员来说,是一本非常有价值的...
hadoop-mapreduce-examples-2.6.5.jar 官方案例源码
(1)输入start-all.sh启动hadoop相应进程和相关的端口号 (2)打开网站localhost:8088和localhost:50070,查看MapReduce任务启动情况 (3)写wordcount代码并把代码生成jar包 (4)运行命令 (1):把linus下的文件...
hadoop-mapreduce-examples-2.7.1.jar
1. **Hadoop环境搭建**:讲解如何安装配置Hadoop分布式文件系统(HDFS)和MapReduce框架,包括集群部署和单机模拟。 2. **MapReduce编程模型**:介绍Map和Reduce函数的编写,以及Combiner和Partitioner的使用,它们...
“Hadoop技术内幕”共两册,分别从源代码的角度对“Common+HDFS”和“MapReduce的架构设计和实现原理”进行了极为详细的分析。《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》由Hadoop领域资深的实践者...
hadoop-mapreduce Hadoop MapReduce示例。 使用HDFS中存储的access.log文件,实现MapReduce以查找每个IP访问该网站的次数。先决条件: 已安装Hadoop。 将access.log文件复制到hdfs中。 假设它在hdfs:/// logs下用法...
本书《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》主要关注MapReduce这一部分。 ### MapReduce架构设计 #### 1. MapReduce的基本思想 MapReduce是一种编程模型,用于大规模数据集(通常大于1TB)的...
MapReduce设计理念与基本架构2.1 Hadoop发展史2.1.1 Hadoop产生背景2.1.2 Apache Hadoop新版本的特性2.1.3 Hadoop版本变迁2.2 ...Hadoop MapReduce架构2.5 Hadoop MapReduce作业的生命周期2.6 小结第二部分...
包org.apache.hadoop.mapreduce的Hadoop源代码分析
### Hadoop技术内幕:深入解析MapReduce架构设计与实现原理 #### 一、Hadoop概述 Hadoop是一种能够处理大规模数据集的开源软件框架。它最初由Apache开发,旨在为海量数据提供分布式存储和计算能力。Hadoop的核心...
Hadoop介绍,HDFS和MapReduce工作原理