# Hadoop简介


<!--more-->


## 1. 简介

Hadoop 是一个适合大数据的分布式存储和计算平台。

如前所述，狭义上说Hadoop就是一个框架平台，广义上讲Hadoop代表大数据的一个技术生态圈，包括很多其他软件框架

![示意图](https://img.zhaojq.top/20260727091726054.png "示意图")

## 2. hadoop起源

- Hadoop最早起源于Nutch，Nutch的创始人是DougCutting 

  Nutch是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫，但随着抓取网页数量的增加，遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题

- 2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。GFS，可用于处理海量网页的存储；MapReduce，可用于处理海量网页的索引计算问题。

  Google的三篇论文（三驾马车）

  - GFS：Google的分布式文件系统（GoogleFileSystem）
  - MapReduce：Google的分布式计算框架
  - BigTable：大型分布式数据库

  发展演变关系：

  - GFS—>HDFS 
  - GoogleMapReduce—>HadoopMapReduce 
  - BigTable—>HBase 

- 随后，Google公布了部分GFS和MapReduce思想的细节，DougCutting等人用2年的业余时间实现了DFS和MapReduce机制，使Nutch性能飙升。

- 2005年，Hadoop作为Lucene的子项目Nutch的一部分引入Apache 

- 2006年，Hadoop从Nutch剥离出来独立

- 2008年，Hadoop成为Apache的顶级项目

## 3. hadoop的特点

![示意图](https://img.zhaojq.top/20260727091726235.png "示意图")

## 4. 发行版本

目前Hadoop发行版非常多，有Cloudera发行版（CDH）、Hortonworks发行版、华为发行版、Intel发行版等，所有这些发行版均是基于ApacheHadoop衍生出来的，之所以有这么多的版本，是由Apache Hadoop的开源协议决定的（任何人可以对其进行修改，并作为开源或商业产品发布/销售）。

企业中主要用到的三个版本分别是：Apache Hadoop版本（最原始的，所有发行版均基于这个版本进行改进）、Cloudera版本（Cloudera’s Distribution Including Apache Hadoop，简称“CDH”）、Hortonworks版本（HortonworksDataPlatform，简称“HDP”）。

- ApacheHadoop原始版本

  官网地址：http://hadoop.apache.org/

  优点：拥有全世界的开源贡献，代码更新版本比较快

  缺点：版本的升级，版本的维护，以及版本之间的兼容性，学习非常方便

  Apache所有软件的下载地址（包括各种历史版本）：http://archive.apache.org/dist/

- 软件收费版本ClouderaManagerCDH版本--生产环境使用

  官网地址：https://www.cloudera.com/

  Cloudera主要是美国一家大数据公司在Apache开源Hadoop的版本上，通过自己公司内部的各种补丁，实现版本之间的稳定运行，大数据生态圈的各个版本的软件都提供了对应的版本，解决了版本的升级困难，版本兼容性等各种问题，生产环境强烈推荐使用

- 免费开源版本HortonWorksHDP版本--生产环境使用

  官网地址：https://hortonworks.com/

  hortonworks主要是雅虎主导Hadoop开发的副总裁，带领二十几个核心成员成立Hortonworks，核心产品软件HDP（ambari），HDF免费开源，并且提供一整套的web管理界面，供我们可以通过web界面管理我们的集群状态，web管理界面软件HDF网址（http://ambari.apache.org/）

## 5. 版本更迭

- 0.x系列版本：Hadoop当中最早的一个开源版本，在此基础上演变而来的1.x以及2.x的版本
- 1.x版本系列：Hadoop版本当中的第二代开源版本，主要修复0.x版本的一些bug等
- 2.x版本系列：架构产生重大变化，引入了yarn平台等许多新特性
- 3.x版本系列：EC技术、YARN的时间轴服务等新特性

## 6. 优缺点

优点:

- Hadoop具有存储和处理数据能力的高可靠性。
- Hadoop通过可用的计算机集群分配数据，完成存储和计算任务，这些集群可以方便地扩展到数以千计的节点中，具有高扩展性。
- Hadoop能够在节点之间进行动态地移动数据，并保证各个节点的动态平衡，处理速度非常快，具有高效性。
- Hadoop能够自动保存数据的多个副本，并且能够自动将失败的任务重新分配，具有高容错性。

缺点:

- Hadoop不适用于低延迟数据访问。
- Hadoop不能高效存储大量小文件。
- Hadoop不支持多用户写入并任意修改文件。






































