Apache Hadoop入门教程第一章

  

Apache Hadoop是一个由Apache基金会所开发的分布式系统基础架构。可以让用户在不了解分布式底层细节的情况下,开发出可靠,可扩展的分布式计算应用。

  

Apache Hadoop框架,允许用户使用简单的编程模型来实现计算机集群的大型数据集的分布式处理。它的目的是支持从单一服务器到上千台机器的扩展,充分利用了每台机器所提供本地计算和存储,而不是依靠硬件来提供高可用性。其本身被设计成在应用层检测和处理故障的库,对于计算机集群来说,其中每台机器的顶层都被设计成可以容错的,以便提供一个高度可用的服务。

  

Apache Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

  

Apache Hadoop简介

  

正如上一节MapReduce所提到的那样,Apache Hadoop受到了谷歌的GFS和MapReduce的启发,而前者产生了Apache Hadoop的分布式文件系统ndf (Nutch分布式文件系统),而后者也被纳入到Apache Hadoop作为核心组件之一。

  

Apache Hadoop的雏形开始于2002年的Apache的Nutch.Nutch是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬虫。

  

随后在2003年谷歌发表了一篇技术学术论文关于谷歌文件系统(GFS) .GFS也就是Google文件系统,是谷歌公司为了存储海量搜索数据而设计的专用文件系统。

  

2004年Nutch创始人Doug Cutting(同时也是Apache Lucene的创始人)基于谷歌的GFS论文实现了分布式文件存储系统名为ndf。

  

2004年谷歌又发表了一篇技术学术论文,向全世界介绍了MapReduce.2005年Doug Cutting又基于MapReduce,在Nutch搜索引擎实现了该功能。

  

2006年,雅虎雇用了Doug Cutting, Doug削减将ndf和MapReduce升级命名为Hadoop.Yahoo !开建了一个独立的团队给Goug切割专门研究发展Hadoop。

  

2008年1月,Hadoop成为了Apache顶级项目,之后Hadoop被成功的应用在了其他公司,其中包括last . fm, Facebook,《纽约时报》等。

  

2008年2月,雅虎宣布其搜索引擎产品部署在一个拥万有1个内核的Hadoop集群上。

  

2008年4月,Hadoop打破世界记录,称为最快排序1 tb数据的系统。有关该报道的记录,可以参阅《Apache Hadoop赢得tb排序基准》(见https://developer.yahoo.com/blogs/hadoop/apache - Hadoop -胜- tb -排序-基准- 408. - html)。

  

截止目前,Apache Hadoop的最新版本为2.7.3。

  

Apache Hadoop它主要有以下几个优点:

  

高可靠性.Hadoop按位存储和处理数据的能力值得人们信赖。
高扩展性.Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
高效性.Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
高容错性.Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
低成本.Hadoop是开源的,项目的软件成本因此会大大降低。
Apache Hadoop核心组件

  

Apache Hadoop包含以下模块:

  

Hadoop常见:常见实用工具,用来支持其他Hadoop模块。
Hadoop分布式文件系统(HDFS):分布式文件系统,它提供对应用程序数据的高吞吐量访问。
Hadoop纱:一个作业调度和集群资源管理框架。
Hadoop MapReduce:基于纱线的大型数据集的并行处理系统。
其他与Apache Hadoop的相关项目包括:

  

洋麻:一个基于Web的工具,用于配置,管理和监控的Apache Hadoop集群,其中包括支持Hadoop的HDFS, Hadoop MapReduce,蜂巢,HCatalog, HBase,动物园管理员,Oozie,猪和Sqoop.Ambari还提供了仪表盘查看集群的健康,如热图,并能够以用户友好的方式来查看的MapReduce, Pig和Hive应用,方便诊断其性能。
Avro:数据序列化系统。
卡桑德拉:可扩展的,无单点故障的多主数据库。
<强> Chukwa:数据采集系统,用于管理大型分布式系统。
HBase:一个可扩展的分布式数据库,支持结构化数据的大表存储。(有关HBase的内容,会在后面章节讲述)
蜂巢:数据仓库基础设施,提供数据汇总以及特定的查询。
Mahout:一种可扩展的机器学习和数据挖掘库。
猪:一个高层次的数据流并行计算语言和执行框架。
火花:Hadoop数据的快速和通用计算引擎.Spark提供了简单和强大的编程模型用以支持广泛的应用,其中包括ETL、机器学习,流处理和图形计算。(有关火花的内容,会在后面章节讲述)
特斯:通用的数据流编程框架,建立在Hadoop纱之上。它提供了一个强大而灵活的引擎来执行任意DAG任务,以实现批量和交互式数据的处理.TEZ正在被蜂巢,猪和Hadoop生态系统中其他

Apache Hadoop入门教程第一章