hadoop初识之二:三大组件(HDFS,MapReduce,Yarn)以及mapreduce运行在yarn上的过程

--===============hadoop发展及三大组件=========================
--衍变
谷歌(C++)       Hadoop(JAVA)
GFS         ->   HDFS
MapReduce   ->   MapReduce
BigTable    ->   HBase
--Hadoop Common
   工具,基础,输助性的东西,底层内部使用
--MapReduce
  处理海量数据
  分布式
  思想:分而治之,大数据集分为小的数据集
        每个数据集进行逻辑业务处量map
合并统计数据结果reduce
--HDFS
   存储海量数据
   分布式
   安全性:副本
   数据以Block块的方式进行存储的
--YARN
   分布式资源管理框架
   管理整个集群的资源(内存,CPU核数)
   分配高度集群资源
 --===============分布式文件系统HDFS架构和分布式资源管理器=========================
 --NameNode 主节点
    存储文件的元数据:文件名,文件目录,文件属性(生成时间,副本数,权限等),及块列表,及块所在的DataNode
         =》存在内存中,放在进程中,读取快
=》存在本地磁盘上:fsimage(镜像文件)/ edites:编辑日志文件
--DataNode
    在本地文件系统上存储文件块数据,以及块数据的校验和
--Secondary NameNode 
     监控HDFS状态的辅助后台程序 ,每隔一段时间获取HDFS元数据的快照(合并镜像文件和编辑日 志文件) 
--===============YARN=======================================
--ResourceManager
    处理客户端请求,管理整个集群
    启动监控ApplicationMaster
    监控NodeManager
    资源分配与调度
--NodeManager
    单个节点上的资源管理
    处理来自ResourceManager的命令
    处理来自ApplicationMaster的命令
--ApplicationMaster
    数据切分,为应用申请资源,并分配给内部任务
    任务监控与容错
--Container
    对任务运行环境的抽象,封装了CPU,内存等多维资源,以及环境变量,任务启动命令等任务运行相关的参数

--===============离线计算框架MapReduce======================================
--计算结果分为两个阶段
    Map阶段并行处理输入数据
Reduce阶段对Map结果进行汇总
--Shuffle连接map和reduce 两个阶段
    Map Task将数据写到本地磁盘
Reduce Task从每个MapTask上读取一份数据
--仅适合离线批处理
    具有很好的容错性和扩展性
适合简单的批处理任务
--缺点明显
    启动开销大,过多使用磁盘导致效率低下等
--===============MapReduce运行在YARN上======================================
--1.客户端提交应用到ResourceManager
--2.ResourceManager 找到nodeManager节点,并让NodeManager启动MR ApplicationManager
--3.MR ApplicationManager 划分任务,并向Resource 申请资源
--4.MR ApplicationManager 找到各个NodeManager,并为其Container 分配资源
--5.各NodeManager接收MR ApplicationManager 的命令
--6.各NodeManager在Container中启动Map、reduce任务
--7.MR ApplicationManager 监控所有Node节点的任务、
--8.MR ApplicationManager通知ResourceManager任务结束
--9.客户端也可以通过页面监控MR ApplicationManager的情况
 

你可能感兴趣的:(大数据-hadoop)