在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大

在Hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算。

增加yarn的主要目的是解耦!

将计算和资源调度区分开


NameNode、DataNode、Secondary NameNode:

NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。--------------相当于目录

DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。---------相当于文章

Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。


Yarn组成:

ResourceManager、NodeManager、

ApplicationMaster、Container

ResourceManager:

  1. 处理客户端请求
  2. 监控NodeManager
  3. 启动或监控ApplicationMaster
  4. 资源的分配与调度

NodeManager:

  1. 管理单个节点上的资源
  2. 处理来自ResourceManager的命令
  3. 处理来自ApplicationMaster的命令

ApplicationMaster:

  1.  负责数据的切分
  2. 为应用程序申请资源并分配给内部的任务
  3. 任务的监控与容错

Container:

  1. Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等


MapReduce

分Map 和 Reduce两个阶段

Map阶段并行处理输入数据、(分数据)

Reduce阶段对Map结果进行汇总(合数据)

 


生态环境 

  1. 数据来源
          结构化数据
          非结构化数据
  2. 数据传输
          Sqoop数据传递、Flume日记收集
  3. 数据存储
          HBase非关系型数据库
          HDFS文件存储
  4. 资源管理
          YARN资源管理
  5. 数据计算
          离线计算:Hive、Mahout、Spark Mlib、Spark R、Spark Sql
          实时计算:Spark Streaming、Storm(需要另外配置一套集群,基本被淘汰)、Flink(最近崛起的一个框架、注意关注!)
  6. 任务调度
          Oozie任务调度、Azkaban任务调度、Linux自带定时调度Crontab
  7. 业务模型

如果想同意管理集群,可以将共用的配置放到Zookeeper

Logo

大数据从业者之家,一起探索大数据的无限可能!

更多推荐