Hadoop的三大发行版本

Hadoop的三大发行版本包括:Apache、Cloudera、Hortonworks。

其中:

Apache版本是最原始(最基础)的版本

对于入门学习的新手比较推荐。

  • 官网地址:http://hadoop.apache.org/releases.html
  • 下载地址:https://archive.apache.org/dist/hadoop/common/
Cloudera在市场常见的互联网企业中用的较多

安装及组件最为方便。(但是出现bug时,需要解决就要收费,一般是工程师按修复时长收费)

  • 官网地址:https://www.cloudera.com/downloads/cdh/5-10-0.html
  • 下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/
Hortonworks文档较好,

但是由于2011成立,时间较晚,所以市场上用的并不常见。

  • 官网地址:https://hortonworks.com/products/data-center/hdp/
  • 下载地址:https://hortonworks.com/downloads/#data-platform

Hadoop的优势

高可靠性:

Hadoop底层维护了多个数据副本,默认副本数为3个。
所以设备出问题时也可以在其他服务器上找到备份。

高扩展性:

在集群间分配任务数据,可拓展至数上千的节点。(相当于增加多台服务器)

高效性:

在MapReduce下,Hadoop可以多台服务器并行工作,任务处理速度非常快。

高容错性:

当一个节点上的任务出错时,可以自动将失败的任务重新分配给其他节点。

Hadoop的组成

Hadoop1.x与Hadoop2.x的区别

Hadoop1.x的组成

common(辅助工具)+HDFS(数据存储)+MapReduce(计算+资源调度)

Hadoop2.x的组成

common(辅助工具)+HDFS(数据存储)+MapReduce(计算)+Yarn(资源调度)

可以看出,Hadoop1.x中,MapReduce同时处理业务逻辑运算和资源调度,耦合性比较大。
在Hadoop2.x中,他将MapReduce中的资源调度抽取出来,变成了Yarn,单独负责资源调度,而MapReduce则只负责计算。

HDFS架构

  • NameNode(nn):存储元数据。如文件名、目录、属性等。(等价于一本书的目录)
  • DataNode(dn):存储文件的块信息,及文件的校验和。(等价于书里面内容)
  • Secondary NameNode(2nn):监控HDFS状态的后台程序。

YARN 框架

ResourceManager负责监控所有的NodeManager,是整个集群的老大。NodeManager是单个节点资源的老大。ApplicationMaster是集群上运行的任务。

ResourceManager:(整个集群的老大)
  1. 处理客户端请求(资源调度,管理所有资源、磁盘等)
  2. 监控NodeManager
  3. 启动或监控ApplicationMaster
  4. 资源的分配和调度
NodeManager:(单节点资源的老大)
  1. 管理单个节点的资源
  2. 处理来自ResourceMaster的命令
  3. 处理来自ApplicationMaster的命令
ApplicationMaster:
  1. 对数据进行切分
  2. 申请资源、分配任务
  3. 任务监控与容错
Container:

是YARN中资源的抽象,相当于CPU、磁盘、网络等。(虚拟化的)

MapReduce架构

MapReduce将计算过程分为两个阶段:Map和Reduce

  • Map阶段并行处理输入数据(分)
  • Reduce阶段对Map结果进行汇总(合)