韩冀中谈Hadoop【转自图灵网】

引文地址:http://www.cnblogs.com/welbeckxu/archive/2012/01/05/2313778.html

11月16日,图灵社区采访了《Hadoop实战》(Hadoop in Action)一书译者韩冀中博士,韩老师结合自己使用和开发Hadoop的经历,畅谈了他对Hadoop应用的看法,并对如何学习Hadoop提出了宝贵的建议,以下为访谈内容。

人物简介:韩冀中

博士,中国科学院计算技术研究所副研究员,研究生导师,长期从事并行分布式计算领域的科研工作。国内早期的Hadoop使用者之一,有丰富的相关应用开发经验。

研究方向: 大规模数据处理、并行程序调试、计算系统虚拟化。

图灵社区:能不能先介绍一下您目前的工作,和您接触Hadoop的经历。

韩冀中:我现在是中科院计算所的一名科研人员,有一个十几个人的团队,主要研究大数据的处理。我是在2008年接触Hadoop平台的。当时因为项目需要,希望能够在分布式系统上搭建地理信息系统。我们就尝试了在Hadoop平台上做空间算子的并行计算,并用HBase来支持Web地图浏览,后来也使用HBase来管理GPS这样的空间时序数据。在这个过程中,逐渐熟悉了Hadoop。这两年,我和实验室的王伟平、涂碧波老师的团队一起,与腾讯、国家电网等企业进行合作,开展了许多大数据平台的工作,或多或少都使用了Hadoop。

图灵社区:请问目前云计算、数据挖掘等等技术发展到了什么程度? Hadoop在其中又扮演怎样的角色?

韩冀中:要讲云计算、大数据和Hadoop,都很难不说Google,Google把数据当成是一种可以赚钱的资源,它建了许多数据中心来运维基于数据的服务,采用了许多有革命性的技术。实际上,对于任何公司和企业,数据都是非常重要的资源。现在,Google、微软、Amazon都有大数据平台,但是并不是所有的企业和公司都有能力来构建这样的系统。这就是为什么Hadoop会出现并迅猛发展的原因了。

Hadoop参照了Google的设计,但还是有许多不同之处。作为一个开源平台,而不是面向某个公司的业务来定制,Hadoop是非常成功的一个系统。但是,相对于Google等公司的平台,Hadoop在具体设计和实现上并不是最优的。但它拥有一个强大的开源社区,为大家提供了了一个稳定可靠的系统,还有许多成功的应用案例,这就使得它几乎是开源云计算平台的唯一选择。有些人可能没听说过Google的Pregel、Bigtable或者微软的DryadLINQ,但大多知道Hadoop、HBase和Hive。

分布式系统的历史其实很长,Hadoop是第一个能让普通大众完全掌握分布式系统的技术,它降低了分布式系统的门槛。过去,如果企业有处理大量数据处理的需求,要选择搭建分布式环境,就必须投入很高的成本,买昂贵的机器,还要求这方面的专业人才。而现在买差不多的机器,搭建一个Hadoop集群就可以了。当然不是说Hadoop对硬件的要求就非常低,而是因为现在一台简单的刀片能力也很强了。现在用一个几十万的平台,就可以做很多的事情,Hadoop把运维分布式系统的门槛降低了。就像Unix和Linux的关系,Unix并不大众化,而Linux则是一个大众化的东西,大家都可以去修改它,应用也非常广泛,从这一点上看,Hadoop是一个非常了不起的系统。

图灵社区:Hadoop在近些年经历了哪些变化呢?未来又会有哪些规划?

韩冀中:就像《Hadoop实战》这本书里提到的,Hadoop在0.20版本中引入了一个新的MapReduce API,作者预计在0.21中旧的API会被废弃。但实际上因为新API还有许多不完善的地方,所以我们现在看到0.21中依然保留了旧的API。按计划0.23版本会出现MapReduce 2.0,要说清楚这个,需要先说说MapReduce的含义。

Hadoop中的MapReduce其实包含了两个含义,一个是就是刚才讲的——给用户的编程模型API,另一个是指内部MapReduce的运行框架,负责资源调度和数据通信管理。现有的Hadoop中,MapReduce的编程模型和运行框架是绑定死的,而在MapReduce 2.0中,会把JobTracker分为ResourceManager和ApplicationMaster,分离编程模型与运行框架。这相当于把应用和资源分别管理,让系统架构更为灵活高效,就可以在一个平台上支持多个编程模型,适应更多的应用。对于Hadoop而言,这是的一个非常大的修改。

除了MapReduce外,未来的Hadoop版本还会在HDFS、HBase、Hive等方面做出许多改进,在Hadoop官方网站上可以了解到很多相关的信息。

图灵社区:对于Hadoop是NoSQL应用程序框架这一概念,能否谈谈您的理解?

韩冀中:Hadoop是一个复杂的系统。Hadoop中的HBase是一种NoSQL系统,而Hive又是一种支持SQL查询的工具。前者是基于列存储技术、面向小数据块随机访问的。后者是在架构在MapReduce之上、对数据进行批量处理的技术。如果访问Hadoop的主页,你会发现Hadoop的主项目中是没有HBase的。因为Hadoop的主体是MapReduce和HDFS,而Hbase、Hive、Pig等都是在外围相关子项目中的,它们共同构成了Hadoop的生态环境。再额外说一点,为什么说Hadoop社区做得好呢?就是因为这些新开发的系统会先放在孵化器里面,经过一定阶段,当它能够跟Hadoop的生态环境完美结合的时候,才会迁移进这个生态环境里,成为Hadoop的子项目。

HBase是一种发展得比较早的NoSQL系统,最早源于Google的BigTable架构,它的扩展性非常好。而且HBase可以和Hadoop进行紧密的融合,在运行MapReduce程序的时候,它能够保证良好的数据局部性。在这方面,它的优势很明显。

图灵社区:Hadoop有竞争对手吗?

韩冀中:我认为在大数据的批量处理方面,Hadoop在开源社区中没有敌手。这并非因为Hadoop足够完善,而是因为它有一个足够好的社区支持。

图灵社区:您近年来一直在研究基于key/value与MapReduce的存储计算框架,也是国内最早使用Hadoop的人之一,能否结合您的经历,谈谈Hadoop实际应用的情况?

韩冀中:我用Hadoop经过了大概三个阶段:第一个阶段,写MapReduce程序来解决应用问题,包括并行计算、数据存储和动态扩展等。第二个阶段,是跟企业结合,做一些跟Hadoop不一样的东西。现在是第三个阶段,根据用户需求,把Hadoop作为一个组件来使用,这种情况下会与其他系统进行整合。

现在,这个平台最大的优势是能够处理大量无结构、半结构化的数据,而互联网企业的很多数据是这种类型的,他们的使用也能够证明这个平台的价值。如果在互联网以外的领域,Hadoop的性能不见得就比数据库平台好,衡量它的性能还是跟应用有关系。对于Hadoop的评价,真正更有发言权的是那些互联网公司,他们每天都在运行这些系统,对运维的感受更直接。

我们后来使用Hadoop不是在互联网领域,而是在其他一些领域,比如电网,他们的需求跟互联网公司的需求是不一样的。跟这些公司的业务需求结合的时候,涉及的就不只是Hadoop这一个平台,同时要考虑怎么跟其他平台结合。我们经历过这种情况:企业过去是用数据库的,现在想迁移到这个平台,那么首先要解决的是基于SQL应用的切换。Hadoop本身有Hive这个工具,可以用来进行无缝切换,不过这样做以后,可能会发现性能上有些令人失望。

其实大家一直在讨论Hadoop跟数据库比较,哪个更好一些。实际上SQL数据库目前已有的产品,性能是非常好的。根据我们的实验测试,在单点性能上,Hadoop可能是比数据库要差的。Hadoop更多靠规模来取胜。很多人说Hadoop比数据库性能好多少,有可能是因为数据库没有调好。数据库用得好的,提供的性能也是能支持系统开发的,关键看应用需求。目前在真正的企业环境中,不会只用Hadoop,还会保留数据库。我认为这两者不是谁取代谁的关系,Hadoop并不会一统天下。

图灵社区:您了解国内开源爱好者对Hadoop社区的贡献吗?

韩冀中:具体不太了解,总体上看,国内的人目前还比较少。但我认识计算所查礼老师的团队的何永强,就是一个Hadoop Committer。

开源社区其实有赖于稳定的团体来运作,才能把它做好,并保证系统的稳定。Hadoop这样的离线系统对性能的要求不是最高的,更注重稳定性。Hadoop目前有Yahoo、Facebook、Cloudera等公司的参与,这种大公司采用它来管理集群,本身就具有很大的说服力。

图灵社区:《Hadoop实战》一书最后案例分析中有中国移动的案例,其实外文书使用中国案例的并不多见,您怎么看待这一情况?

韩冀中:《Hadoop实战》最后的几个案例是这本书很有特色的地方。的确,国外的书对中国的案例确实引用很少,这也从侧面说明这几年Hadoop在国内的发展很快。目前云计算应用的研究异常火热,一定会影响国内的大型企业和机构。Hadoop的核心技术是参照了Google这个互联网公司,所以目前比较成功的Hadoop应用主要是在互联网领域。而其它行业使用Hadoop,还需要与自身业务特征相结合,因此在应用的过程中还需要付出很大的努力。这也是我们目前和电网等企业合作的主要工作目标。

图灵社区:对于Hadoop的学习者,您有哪些建议呢?《Hadoop实战》这本书有什么样的特点呢?

韩冀中:Hadoop是个生态系统,不同学习者会对这个系统有不同的应用需求。我自己是从编程开始逐渐了解Hadoop的,我觉得这是一种可行也比较快的进阶方法。可能大多数人都是通过看官方文档或参考书,然后结合自己的工作熟悉Hadoop的。目前希望了解和使用Hadoop的人来自各个行业,甚至不同专业。相对于这个庞大的用户群而言,Hadoop的教材显得太少了。Hadoop的官方文档的确是非常全面的,对于高阶用户而言,应该经常查看,了解最新的更新。但对于刚刚了解Hadoop的读者,通过一本系统的书籍来学习是更好的,而且会大大缩短学习的时间。

《Hadoop实战》这本书除了讲解使用Hadoop所需的基础知识,还给出了编写和运行Hadoop数据处理程序所需的实践技能,最后还探讨了Hadoop之外更大的生态环境(Hive、Pig、HBase等)。我很欣赏作者的这个结构,我想这也是读者非常容易理解的一种结构。如果把这本书当成一部小说来看的话,MapReduce就是贯穿本书的主线。它并不是一本包罗万象的系统工具书,更像是一本简明的编程语言手册,有一点How To的意思。它在MapReduce编程方面也讲得比较深入透彻,有些内容来自于作者的宝贵的实践经验,是非常值得一读的。

那些希望实际使用MapReduce编程的读者,一定会很非常喜欢这本书。这本书给了许多数据的下载链接和一些实战练习,建议大家有时间做一做,会对MapReduce这个语言有更多的体会。学计算机不是一门科学,更像是一门艺术,真正有效的学习还是要从动手写代码开始。

如果想了解更多资讯和应用经验,大家可以关注一些会议,比如国外的Hadoop World,国内的Hadoop in China等等,每年都有一些很好的技术讲座,往年的也大多可以在一些视频网站上找到。

图灵社区:今年的Hadoop中国2011云计算大会就要召开了,主题是“海量数据掘宝”,您能否提前给我们透露些大会的看点?

韩冀中:这个会议是计算所查礼老师组织的,具体我不太清楚。不过据说今年请了Doug Cutting,重量级人物,非常值得期待。

图灵社区:据悉斯坦福和卡内基•梅隆等一流大学已经开始将Hadoop引入他们的计算机科学课程,国内院校的情况如何?

韩冀中:近几年我们在招生中,还没有看到本科生有开设过这方面课程的。计算所的詹剑锋老师在中科院研究生院开设了一个相关课程,其他院校不太了解。

图灵社区:《Hadoop实战》一书在寻找译者的过程中,王斌老师力荐我们请您翻译。这是您第一次独立完成一本书的翻译工作,能够谈谈这方面的感受?

韩冀中:非常谢谢王斌老师的推荐,让我有机会能够参与到这本书的翻译中。我很喜欢这本书的内容组织,很荣幸能够通过我的努力,把这本书介绍给国内的读者。

我是做科研的,科研工作者总是想把东西做得更完美一点,所以开始的时候特别细,每一个和原文字句不太一致的地方都会纠结半天,但后来慢慢学习翻译这件事,可能对于科技书来说,更追求准确表达技术本身,后面翻译的时候就调整了思路,更注重这方面。我现在再看一些文学方面的翻译书,会从翻译角度去体会,确实很不一样。翻译还是挺有意思的,自己做的东西一直在累进,之前没有这种长时间阅读和写作的经历,如果再有合适的书,我还是愿意来做的。这次翻译的过程对我帮助也比较大,起码写东西更快了(笑),我也想建议别人来做一次这样的工作。

因为这本书都是我在业余时间完成的,加之工作繁忙,经常打断进度,所以翻译得非常慢。在翻译的过程中,得到了图灵多位编辑的帮助,没有他们的支持和激励,我想我是无法完成这个工作的。在翻译的后期,经常是每翻译完一部分后,就发给编辑部。对我而言,这样做很有效。我想如果编辑部能够鼓励译者更多地进行有效沟通,特别是对翻译新手,不仅可以及时改正翻译中的错误,也可以推动翻译工作的进度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
冀中能源股份有限公司 JIZHONG ENERGY RESOURCES CO., LTD. 业务综合管控项目全面预算系统 技术方案介绍 2012-02 普联架构设计技术方案全文共28页,当前为第1页。 二、软件开发平台方案 普联软件开发平台概念 数据存储原理 业务模型及业务搭建原理 指标模型及指标搭建原理 分析模型及分析方法 业务流程管理 BIS平台及开发平台外延 普联架构设计技术方案全文共28页,当前为第2页。 1、开发平台概念—技术路线 UNIX、LINUX、WINDOWS 采取B/S结构实现 体系结构 采用JAVA开发遵循J2EE标准 技术标准 ORACLE 10g 数据库 服务器操作系统 J2EE Application Server 中间件 数据库服务器 应用服务器 http http http 各级单位 Internet/ Intranet/ VPN/ Wireless ….. Windows+IE6.0以上 客户端 普联架构设计技术方案全文共28页,当前为第3页。 1、开发平台概念—平台设计原则 基于模型驱动 业务模型、数据模型、软件模型 基于接口实现 业务接口、软件接口 基于灵活开放框架 技术框架、应用框架 清晰的层次结构 数据层次、软件层次 普联架构设计技术方案全文共28页,当前为第4页。 企业应用模型 元数据管理 字典 事实表 关系 表单 报表 流程 配置 视图 过程 权限 安全 主数据管理 编码维护 数据关系 编码申请 编码发布 缓存管理 编码同步 编码权限 业务模型管理    指标模型管理 分析模型管理 模型管理 转换设置 指标管理 口径管理 维度度量 企业应用服务 主数据服务 表单服务 流程服务 分析服务 文档服务 门户服务 Windows/Linux/AIX/Solaris/… Websphere/Tomcat… Oracle/*Sybase/*DB2 应用集成环境 定时任务 消息服务 缓存服务 转换服务 定制服务 服务组件 服务插件 外部服务 WebService RMI BIS/ESB 功 能 菜 单 流程任务 系统消息 工作日历 应用门户 定制工具 设计工具 Menu Designer Form Designer Service Designer Flow Designer Report Designer Query Designer Print Designer Analyze Designer Document Designer Portal Designer Rich Client – Swing *Thin Client – GWT/HTML System Monitor Object Manager Dictionary Manager Fact Manager Model Manager Cached Manager Security Manager Offline Manager Convert Manager 安全服务 脚本服务 查询服务 监控服务 Swing Framework Swing Component Bean Shell Scripts GWT/HTML Framework JS Components AJAX 待办事项 *Rich Client – Flex Flex Framework Flex Component Action Scripts 交易数据管理 事实表管理 分区管理 立方体 ESP Framework 1、开发平台概念—平台体系结构图 普联架构设计技术方案全文共28页,当前为第5页。 Class Loader Registry Update J2EE Adapter Active Object Framework Lookup Plug-in DB Express Node Action View Window Package Node Node Builder Explorer View Prepare Node Action/Action Object Action Provider Action Toolbar/Comp Action Menu/Popup Client Class Loader Server Class Loader Signature Package(n).xml Registry.xml webComponent(n).xml JSON Security Application Update Applet Update Server Update JEnterprise.xml/Start.xml EAIServlet Flex Service Convert GWT Service WebService DOF DAL

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值