--===============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的情况
--衍变
谷歌(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的情况