-
1 知识要点
-
2 知识测试
-
3 主题讨论
1.3 hadoop概述
1.3.1 hadoop的前世今生
随着数据的快速增长,数据的存储和分析都变得越来越困难。例如存储容量、读写速度、计算效率等都无法满足用户的需求。为了解决这些问题,Google提出了如下3种处理大数据的技术手段。
·MapReduce:Google的MapReduce开源分布式并行计算框架;
·Big Table:一个大型的分布式数据库;
·GFS:Google的分布式文件系统。
上述三大技术可以说是革命性的技术,具体表现在:
(1)成本降低,能用PC机,就不用大型机和高端存储。
(2)软件容错硬件故障视为常态,通过软件保证可靠性。
(3)简化并行分布式计算,无须控制节点同步和数据交换。
在2003一2004年,Google陆续公布了部分GFS和Map Reduce思想的细节,Nutch的创始人Doug Cutting受到启发,用了若干年时间实现了DFS和Map Reduce机制,使Nutch性能飙升。
2005年,Hadoop作为Lucene子项目Nutch的一部分正式被引人Apache基金会,随后又从Nutch中剥离,成为一套完整独立的软件,起名为Hadoop。据说,Hadoop这个名字来源于创始人Doug Cutting儿子的毛绒玩具大象,
目前,Hadoop已经正式成为Apache顶级开源项目,俨然已经处于大数据处理技术的核心地位。下面回顾一下近10年来Hadoop的主要发展历程。
2008年1月,Hadoop成为Apache顶级项目。
2008年6月,Hadoop的第一个SQL框架——Hive成为Hadoop的子项目。
2009年7月,Map Reduce和Hadoop Distributed FileSystem(HDFS) 成为Hadoop项目的独立子项目。
2009年7月,Avro和Chuk wa成为Hadoop新的子项目。
2010年5月,Avro脱离Hadoop项目,成为Apache顶级项目。
2010年5月,H Base脱离Hadoop项目,成为Apache顶级项目。
2010年9月,Hive脱离Hadoop,成为Apache顶级项目。
2010年9月,Pig脱离Hadoop,成为Apache顶级项目。
2010一2011年,扩大的Hadoop社区忙于建立大量的新组件(Crunch,Sqoop,Flume,Oozie等) 来扩展Hadoop的使用场景和可用性。
2011年1月,ZooKeeper脱离Hadoop,成为Apache顶级项目。
2011年12月,Hadoop1.0.0版本发布,标志着Hadoop已经初具生产规模。
2012年5月,Hadoop2.0.0-alpha版本发布,这是Hadoop-2.x系列中第一个(alpha) 版本。与之前的Hadoop-1.x系列相比,Hadoop-2.x版本中加入了YARN,YARN成为了Hadoop的子项目。
2012年10月,Impala加入Hadoop生态圈。
2013年10月,Hadoop2.0.0版本发布,标志着Hadoop正式进人MapReduce v 2.0时代。
2014年2月,Spark开始代替Map Reduce成为Hadoop的默认执行引擎,并成为Apache顶级项目。
2017年12月,继Hadoop3.0.0的4个Alpha版本和1个Beta版本后,第一个可用的Hadoop3.0.0版本发布。
1.3.2 hadoop的优势
扩容能力强。Hadoop是一个高度可扩展的存储平台, 它可以存储和分发跨越数百个并行操作的廉价的服务器数据集群。不同于传统的关系数据库不能扩展到处理大量的数据,Hadoop是能给企业提供涉及成百上千TB的数据节点上运行的应用程序。
成本低。Hadoop为企业用户提供了极具缩减成本的存储解决方案。通过普通廉价的机器组成服务器集群来分发处理数据,成本比较低,普通用户也很容易在自己的PC机上搭建Hadoop运行环境。
高效率。Hadoop能够并发处理数据, 并且能够在节点之间动态地移动数据, 并保证各个节点的动态平衡,因此处理数据的速度是非常快的。
可靠性。Hadoop自动维护多份数据副本, 假设计算任务失败, Hadoop能够针对失败的节点重新分布处理。
高容错性。Hadoop的一个关键优势就是容错能力强, 当数据被发送到一个单独的节点,该数据也被复制到集群的其他节点上,这意味着故障发生时,存在另一个副本可供使用。
1.3.2 hadoop的生态体系

1.3.4 hadoop的版本
Hadoop发行版分为开源社区版和商业版
Hadoop自诞生以来,主要分为Hadoop1、Hadoop2、Hadoop3三个系列的多个版本,目前市场上最主流的是Hadoop2.x版本。
Hadoop2.x版本指的是第2代Hadoop,它是从Hadoop1.x发展而来的,并且相对于Hadoop1.x来说,有很多改进。

