hadoop因其在大数据处理领域具有广泛的实用性以及良好的易用性,自2007年推出后,很快在工业界得到普及应用,同时得到了学术界的广泛关注和研究。在短短的几年中,Hadoop很快成为到目前为止最为成功、最广泛接受使用的大数据处理主流技术和系统平台,并且成为一种大数据处理事实上的工业标准,得到了工业界大量的进一步开发和改进,并在业界和应用行业尤其是互联网行业得到了广泛的应用。由于在系统性能和功能方面存在不足,Hadoop在发展过程中进行了不断的改进,自2007年推出首个版本以来,目前已经先后推出数十个版本。
但是,由于其最初面向高吞吐率线下批处理的设计目标,以及起初系统构架设计上的诸多先天性的不足,尽管Hadoop开源社区一直致力于不断改进和完善系统,但是Hadoop1.X以前版本一直存在不少广为诟病的缺陷,包括主控节点单点瓶颈易造成系统拥堵和失效,作业执行响应性能较低难以满足高实时低延迟数据查询分析处理需求,固定的Map和Reduce两阶段模型框架难以提供灵活的编程能力、难以支持高效的迭代计算、流式计算、图数据计算等不同的计算和编程模式。
为此,在Hadoop0.20版本推出之后,Hadoop开源社区开始设计全新构架的新一代Hadoop系统,并于2011年10月推出了基于新一代构架的Hadoop0.23.0测试版,该版本后演化为Hadoop2.0版本,即新一代的Hadoop系统YARN。YARN构架将主控节点的资源管理和作业管理功能分离设置,引入了全局资源管理器(Resource Manager)和针对每个作业的应用主控管理器(Application Master),以此减轻原主控节点的负担,并可基于Zookeeper实现资源管理器的失效恢复,以此提高了Hadoop系统的高可用性(High Availability,HA)。YARN还引入了资源容器(Resource Container)的概念,将系统计算资源统一划分和封装为很多资源单元,不再像此前版本那样区分Map和Reduce计算资源,以此提高计算资源的利用率。此外,YARN还能容纳MapReduce以外的其他多种并行计算模型和框架,提高了Hadoop框架并行化编程的灵活性。
与此同时,由于Hadoop系统和框架对于不同大数据计算模式支持能力上的不足,在Hadoop开源社区之外,人们在不断研究推出可支持不同的大数据计算模式的系统。其中,目前最广为关注的当数加州大学伯克利分校AMP实验室(Algorithms,Machines,and People Lab)研究开发的Spark系统,该系统可广泛支持批处理、内存计算、流式计算、迭代计算、图数据计算等众多计算模式。然而,由于Hadoop系统在大规模数据分布存储和批处理能力,以及在系统的可扩展性和易用性上仍然具有不少其他系统所难以具备的优点,并且由于近几年来业界和应用行业在Hadoop开发和应用上已有大量的前期投入和上线应用系统,以及Hadoop所形成的包含各种丰富的工具软件的完整生态环境,同时也随着Hadoop自身向新一代系统的演进和不断改进,在今后相当长一段时间内,Hadoop系统将继续保持其在大数据处理领域的主流技术和平台的地位,同时其他各种新的系统也将逐步与 Hadoop系统相互融合和共存。
在开源Hadoop系统发展的同时,工业界也有不少公司基于开源的Hadoop系统进行一系列的商业化版本开发,他们针对开源系统在系统性能优化、系统可用性和可靠性以及系统功能增强方面进行大量的研究和产品开发工作,形成商业化的发行版。最广为大家熟知的是Hadoop系统的创始者组织成立的 Cloudera公司,研究开发了Hadoop商业发行版CDH,并在美国诸多的行业得到很好的推广应用。Intel公司自2009年以来也研究开发了 Intel发行版Hadoop系统IDH,在中国诸多大型应用行业得到了良好的推广应用,本书第7章将详细介绍Intel Hadoop系统在性能优化和功能增强方面的主要技术内容和使用方法。