Hadoop的介绍:

  Hadoop是一个适用于大数据的并行存储和计算的平台,是 Apache的一个用java 语言实现开源软件框架,实现了在大量计算机组成的集群中对海量数据进行分布式计算。Hadoop框架的核心组成是HDFS和MapReduce,HDFS 实现存储,而 MapReduce实现数据分析与处理。

  Hadoop开源系统实现了MapReduce编程模型,采用了分布式存储方式提高了读写速度,并扩大了存储容量。采用 MapReduce来整合分布式文件系统上的数据,可保证分析和处理数据的高效。与此同时, Hadoop还采用存储冗余数据的方式保证了数据的安全性, Hadoop中的HDFS 的高容错性,以及它是基于 Java语言开发的,这使得Hadoop可以部署在低廉的计算机集群中,同时不限于某个操作系统。 Hadoop中的HDFS 的数据管理能力,MapReduce处理任务时的高效率,以及它的开源特性,使其在同类的分布式系统中大放异彩。 MapReduce编程模型之所以受到欢迎和迅速得到应用,在技术方面有三方面的原因:  
  1.MapReduce 所采用的是无共享大规模集群系统,集群系统具有良好的性价比和可伸缩性。  
  2.MapReduce 编程模型简单,易于理解,易于使用。  
  3.虽然基本的 MapReduce 模型只提供一个过程性的编程接口,但是在海量的数据环境,需要保证可伸缩性的前提下,通过使用合适的查询优化和索引技术, MapReduce仍然能够提供相当好的数据处理性能。

Hadoop的优缺点: 
(一) 优点:                                                                                                                                 
     1)高可靠性。Hadoop 按位存储和处理数据的能力值得人们信赖;                                     
     2)高扩展性。Hadoop 是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中; 
     3)高效性。Hadoop 能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快; 
     4)高容错性。Hadoop 能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配;                                           
     5)成本低(Economical ):可以通过普通机器组成的服务器群来分布以及处理数据。这些服务器群总计可达数千个节点。

(二) 缺点: 
  1)不适合低延迟数据访问。

  2)无法高效存储大量小文件。

  3)不支持多用户写入及任意修改文件。

Hadoop的角色组成:

Hadoop核心项目

  •  HDFS: Hadoop Distributed File System  分布式文件系统

  •  MapReduce:并行计算框架

HDFS的架构

•  主从结构

•  主节点,只有一个:namenode

•  从节点,有很多个:datanode

•  namenode负责:

•  接收用户操作请求

•  维护文件系统的目录结构

•  管理文件与block 之间关系, block与datanode 之间关系

•  datanode负责:

•  存储文件

•  文件被分成block 存储在磁盘上

•  为保证数据安全,文件会有多个副本

MapReduce的架构

•  主从结构

•  主节点,只有一个:JobTracker

•  从节点,有很多个:TaskTracker

•  JobTracker负责:

•  接收客户提交的计算任务

•  把计算任务分给TaskTracker执行

•  监控TaskTracker 的执行情况

•  TaskTracker负责:

•  执行JobTracker 分配的任务

Hadoop发展简史:

Hadoop是由 Apache Lucence的创始人Doug Cutting 创建的。 Hadoop这个名字不是一个缩写,而是一个虚构的名字。是创建者 Cutting的孩子给一头吃饱了的棕黄色大象取的。

Apache Nutch 项目始于 2002年,一个开源的网络搜索引擎,它本身是 Lucene项目的一部分,Lucence是一个广泛使用的文本搜索系统库。这个可以运行的网页爬取工具和搜索引擎系统很快投入使用。但后来,开发者认为这一架构可扩展不够,不能解决数十亿网页的搜索问题。

2003年, Google发表的一篇描述Google分布式文件系统 (简称GFS) 的论文为他们提供了及时的帮助,文中称Google正在使用此文件系统。 GFS或类似的东西,可以解决他们在网络抓取和索引过程中产生的大量的文件的存储需求。具体而言, GFS会省掉管理所花的时间,如管理存储节点。

2004年,他们着手实现一个开源的应用,即 Nutch的分布式文件系统(NDFS)。也在同一年, Google发表了论文,向全世界介绍了 MapReduce。

2005年初, Nutch的开发者在Nutch 上实现了一个 MapReduce系统,到年中,所有主要的 Nutch算法被移植到使用MapReduce和 NDFS来运行。

2006年 2月,开发人员将NDFS和 MapReduce移出Nutch 形成Lucene的一个子项目,称为 Hadoop。Apache Hadoop 项目正式启动以支持 MapReduce和HDFS 的独立发展。大约在同一时间, Doug Cutting加入Yahoo !,雅虎为此组织了一个专门的团队和资源,将 Hadoop发展成一个能够处理Web数据的系统。

2008年 1月,Hadoop 已成为Apache的顶级项目,证明了它的成功、多样化、活跃性。

Hadoop大事记

2004年 -- 最初的版本( 现在称为 HDFS和MapReduce) 由Doug Cutting和 Mike Cafarella开始实施。

2005年 12月 -- Nutch 移植到新的框架, Hadoop在20 个节点上稳定运行。

2006年 01月 -- Doug Cutting 加入雅虎。

2006年 02月 -- Apache Hadoop 项目正式启动以支持 MapReduce和HDFS 的独立发展。

2006年 02月 -- 雅虎的网格计算团队采用 Hadoop。

2006年 04月 -- 标准排序 (10 GB每个节点) 在188个节点上运行 47.9个小时。

2006年 05月 -- 雅虎建立了一个 300个节点的Hadoop 研究集群。

2006年 05月 -- 标准排序在 500个节点上运行42 个小时(硬件配置比 4月的更好) 。

2006年 11月 -- 研究集群增加到 600个节点。

2006年 12月 -- 标准排序在 20个节点上运行1.8 个小时, 100个节点3.3 小时,500个节点 5.2小时,900 个节点7.8个小时。

2007年 01月 -- 研究集群到达 900个节点。

2007年 04月 -- 研究集群达到两个 1000个节点的集群。

2008年 04月 -- 赢得世界最快 1TB数据排序在900 个节点上用时 209秒。

2008年 10月 -- 研究集群每天装载 10 TB的数据。

2009年 03月 -- 17 个集群总共 24 000台机器。

2009年 04月 -- 赢得每分钟排序, 59秒内排序500 GB( 在1400个节点上 )和173 分钟内排序 100 TB数据(在3400个节点上 )。

05-04 05:52