1.1 任务一:Hadoop简介
【任务描述】
经过前期的调研,我们知道大数据涉及Linux、Java和数据分析3方面的内容,为了方便学习大数据技术,我们决定在公司的服务器上部署Hadoop集群,并为每个人搭建一个Hadoop伪分布式环境,方便进行本地测试。
为了方便大家了解大数据,所以在第一个任务中,我们不会涉及非常复杂的内容,仅对大数据的整体进行介绍。
1.1.1 Hadoop介绍
谈到大数据,就不得不提与它关系紧密的分布式系统基础架构——Hadoop,它的Logo是一头大象,那么Hadoop究竟是怎么产生的呢?它又为什么会被命名为Hadoop呢?下面为大家娓娓道来。
Hadoop的创作者是Doug Cutting,他受Google三篇论文(GFS、MapReduce、BigTable)的启发而开创了Hadoop项目,Hadoop最初是Doug的女儿给玩具起的名字,后来,Doug Cutting将其用作自己项目的名称,目前Hadoop项目属于Apache基金会的一个顶级开源项目。
Hadoop主要用于解决两个问题:海量数据存储和海量数据分析。
Hadoop就是为处理海量数据而生,它本质上是一个能够对大量数据进行分布式处理的软件框架,并且以一种可靠、高效、可伸缩的方式进行数据处理。因此它具有以下几个方面的特性。
① 高可扩展性。Hadoop可以使用大量的普通计算机来完成专业服务器才能完成的计算工作,我们可以很方便地根据实际业务需求,横向扩展集群机器数量。
② 高容错性。Hadoop可以将数据按照Block进行存储,而且每一个Block都自动保存多个副本,保证数据不会丢失。对于执行失败的任务能够进行重新分配执行。
③ 扩容能力强:Hadoop能够可靠地存储和处理十亿兆字节(PB)的数据。
④ 成本低:可以通过总计数千个节点的普通机器组成的服务器群来分发以及处理数据。
⑤ 高效率:Hadoop通过分发数据,可以在数据所在的节点上并行地进行处理,处理速度非常快。
⑥ 高可靠性:Hadoop能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署计算任务。
1.1.2 Hadoop的发展历史及现状
1.Hadoop的发展历史
Hadoop源自2002年的一个开源项目Apache Nutch。其最初的雏形是由Apache Lucene项目的创始人Doug Cutting开发的文本搜索库。2004年,Nutch项目模仿Google文件系统(Google File System,GFS)开发了自己的分布式文件系统(Nutch Distributed File System,NDFS),也就是HDFS的前身。同年,谷歌公司发表了另一篇具有深远影响的论文,阐述了MapReduce分布式编程思想。
2005年,Nutch项目团队参考MapReduce分布式编程思想开发了MapReduce分布式处理框架。
2006年2月,NDFS和MapReduce从Nutch项目独立出来,成为Lucene项目的一个子项目,被命名为Hadoop。
2008年1月,Hadoop正式成为Apache顶级项目,并逐渐被雅虎、FaceBook等大公司采用。
2008年4月,Hadoop打破世界纪录,成为排序1TB数据最快的系统,它采用一个由910个节点构成的集群进行运算,排序时间只用了209 s。到2009年,这个排序时间缩短到了62 s。由此,Hadoop迅速跃升为最具影响力的开源分布式开发平台,在大数据时代获得大量拥趸。
2.Hadoop的发展现状
Hadoop凭借其实用性、易用性,自推出以来在几年间就满足了大部分工业界的应用需求,还引起了学术界对其的广泛关注和研究。Hadoop已然成为目前大数据处理主流技术和系统平台。不夸张地说,Hadoop现在已经成为大数据处理的潜在标准,并在工业界,尤其是互联网行业中得到大量频繁的进一步开发和改进。
Yahoo作为Hadoop曾经的最大支持者,截至2012年,其Hadoop机器总节点数目超过420000个,有超过10万的核心CPU在运行Hadoop。最大的一个单Master节点集群有4500个节点,总的集群存储容量大于350PB,每月提交的作业数目超过1000万个。Facebook也使用Hadoop存储内部日志与多维数据,并以此作为报告、分析和机器学习的数据源。Facebook不仅是Hadoop的忠实用户,同时它还在Hadoop基础上建立了一个名为Hive的高级数据仓库框架,用来进行数据清洗、处理等工作,目前Hive已经正式成为基于Hadoop的Apache一级项目。
在国内,很多大型互联网企业都逐渐开始使用Hadoop来处理离线数据,例如阿里巴巴、百度、淘宝、网易等。阿里巴巴的Hadoop集群数据覆盖了它的诸多业务线,非常庞大,它需要为淘宝、支付宝、聚划算等提供底层的存储和基础计算服务。仅看2012年的数据,其集群已经有超过3200台服务器,总的存储容量超过60PB,每天的作业数目超过1500000个,到今天,这些数字只会越来越大。腾讯也是使用Hadoop最早的中国互联网公司之一,由于腾讯的用户量庞大,因此其集群数量也是非常庞大的。腾讯的社交广告平台、腾讯微博、QQ、财付通、微信、QQ音乐等平台都要依靠Hadoop进行存储和计算。除此之外,腾讯还利用Hadoop-Hive构建了一套自己的数据仓库系统,取名为“TDW”。
随着互联网行业的发展,Hadoop也在不断地被应用和升级,相信在未来,它的应用领域和范围还会逐渐增大。
3.Hadoop版本说明
Hadoop发展至今,主要的版本有两代,我们习惯将第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0,其版本演变如图1-2所示。
第一代Hadoop包含3个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版,而0.21.x和0.22.x则增加了NameNode HA等新的重大特性。
第二代Hadoop包含两个版本,分别是0.23.x和2.x,它们完全不同于Hadoop 1.0,是一套全新的架构,包含HDFS Federation和YARN两个系统。0.23.x和2.x两个版本在结构上也有重大的区别,相比于0.23.x,2.x增加了NameNode HA和Wire-compatibility两个重大特性。
图1-2 Hadoop版本演变
1.1.3 任务回顾
知识点总结
1.Hadoop起源及其作用。
2.Hadoop的优势。
3.Hadoop的发展历史及版本说明。
4.Hadoop的发展现状。
学习足迹
项目1任务一的学习足迹如图1-3所示。
图1-3 项目1任务一学习足迹
思考与练习
1.Hadoop主要解决什么问题?
2.简述Hadoop的几大优势。
3.Hadoop有几个版本,主要区别是什么?