Hadoop 教程

2019-10-14 11:02:05 | 编辑

Hadoop是以谷歌在2003年、2004年发表的著名论文GFS论文和MapReduce的论文为基础开发的分布式存储和分布式计算框架。

1.Hadoop的发展历史

  • 2002年,道格.卡丁(Doug Cutting)开始Nutch项目,一个网页爬取工具和搜索引擎系统,这便是hadoop的前生。
  • 2003年,google谷歌发布三大论文之一的Google File System(GFS)论文,正好解决了Nutch不足以解决十亿网页搜索的问题。GFS或类似的架构可以解决他们在网页  爬取和索引过程中产生的超大文件的存储需求。特别关键的是,GFS能够节省系统管理(如管理存储节点)所花的大量时间。
  • 2004年,Nutch的开发者开始着手做GFS开源版本的实现,即Nutch分布式文件系统(NDFS)。这一年又发布了一大论文向全世界介绍他们的MapReduce系统。
  • 2005年,Nutch的开发人员在Nutch上实现了一个MapReduce系统,到年中,Nutch的所有主要算法均完成移植,用MapReduce和NDFS来运行。
  • 2006年,2月,开发人员将NDFS和MapReduce 移出Nutch 形成Lucene 的一个子项目,命名为Hadoop(名称来源于孩子的毛绒象玩具)。大约在同一时间,Doug Cutting 加入雅虎,雅虎为此组织了专门的团队和资源,将Hadoop发展成能够以Web网络规模运行的系统。
  • 2008年,1月Hadoop已成为Apache的顶级项目,证明了他的成功。2月,雅虎宣布,雅虎搜索引擎使用的索引是在-一个拥有1万个内核的Hadoop集群上构建的。4月,Hadoop打破世界纪录,成为最快的TB级数据排序系统。也是在这一年,由于hadoop只是在雅虎使用,虽然开源但要移植非常困难,Google的工程师成立了商业化hadoop的公司: Cloudera,cloudera基于开源的Hadoop版本提供了另外一个叫CDH的Hadoop商业版本。
  • 2011年,yahoo将hadoop团队专门成立了一个子公司Hortonworks专门提供hadoop相关的服务,这便有了和CDH同等的产品HDP。而且是完全开源。
  • 2018年10月,均为Hadoop开源平台的Cloudera与Hortonworks公司宣布他们以52亿美元的价格合并。


2.Hadoop的四大核心组件

2.1 common(工具类)

包括Hadoop常用的工具类,由原来的Hadoopcore部分更名而来。主要包括系统配置工具Configuration、远程过程调用RPC、序列化机制和Hadoop抽象文件系统FileSystem等。它们为在通用硬件上搭建云计算环境提供基本的服务,并为运行在该平台上的软件开发提供了所需的API。

 

2.2 HDFS

Hadoop实现了一个分布式的文件系统Hadoop Distributed File System(HDFS),HDFS为海量的数据提供了存储。HDFS是基于节点的形式进行构建的,里面有一个父节点NameNode,他在机器内部提供了服务,NameNode本身不干活,NameNode将数据分成块,只是把数据分发给子节点,交由子节点datanode来进行存储.

 

2.3MapReduce

Hadoop的MapReduce实现,和Common、HDFS一起,构成了Hadoop发展初期的三个组件。MapReduce将应用划分为Map和Reduce两个步骤,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。

 

2.4 YARN

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
 

3.关于Hadoop本教程

本教程是笔者hadoop学习笔记整理成册,笔者想达到的方向是想由浅入深,真正学会Hadoop的使用,学懂原理,围绕这个目标,来慢慢呈现后面的章节。