一个高可靠,高吞吐量的分布式文件系统,对海量数据的存储
2.Hadoop MapReduce:
一个分布式的资源调度和离线并行计算框架
3.Hadoop Yarn:
基于HDFS,用于作业调度和集群资源管理的框架
4.Hadoop Common:
Hadoop工具包,支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)
Hadoop1.0到2.0的演变
Jobrtacker指的是MapReduce中的管理者
Taskrtacker指的是MapReduce中的工作者
1.0到2.0最大的区别就是将Jobrtacker两个任务拆分开来
资源管理使用Yarn
作业控制使用AppM(ApplicationMaster)
Yarn的Master和Slave
ResourceManager:一个集群只有一个ResourceManager对外提供服务(可能有多个RM)
NodeManager:一个集群有多个NodeManager,通常每个DataNode(数据存储)也是NodeManager(资源调度)角色
关于Yarn的两个问题
问题一:集群提交任务,是什么决定任务分配到那个节点上?
答:Yarn 集群资源调度系统
问题二:集群提交任务、偶尔成功、偶尔失败(尤其是使用外部配置文件的时候)?
答:程序所需要的数据(配置文件)缺失。有的节点缺失,有的节点不缺失。
解决方法:在所有的节点上存一分程序所需要的数据(配置文件)
是谁来分配呢?
答:Yarn
Apache Hadoop Yarn(Yet Another Resource ,另一种资源协调者)是一种新的 Hadoop 资源管理器,是一个通用资源管理系统和调度平台
,可以为上层应用提供统一的资源管理和调度
它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大的好处。
可以把Yarn理解成相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序,Yarn为这些程序提供运算所需的资源(内存、CPU)
调度平台如何理解?
在线下购买的前提下
例如:用户购买电脑(下图购买羽绒服和小说均类似)
方式一:实体专卖店
在实体专卖店购买电脑,只能买到一种品牌
如果需要其他品牌价位符合自身需求的电脑
那么选择实体专卖店就会造成很大的不方便,只能一家一家的去看
方式二:电脑商城
在电脑商城购买电脑,可以买到多种品牌、价位、以及电脑配件等
相对于方式一在实体专卖店购买,更加方便,也能更好地去比较电脑的配置等
两种方式中取电脑商城购买电脑明显是更加符合自身需求的,那么就可以把电脑商城理解为一种平台
电脑商城中有两个资源
1) 电脑厂商把产品、配件等提供给商城,让其销售
2) 用户认可电脑商城
有了这么两个资源,就可以把电脑商城做起来。我们就可以理解电脑商城是一种平台
1.有用户
2.有供货商
商城作为中间的平台就可以提供产品来满足用户的需求
如何理解Yarn的意义,通过以下示例演示
还是之前的示例(换成在网上购买)
商家将用户所需的产品统统放到一个容纳多种商品的大型平台上,用户再从一个平台上购买所需的电脑,羽绒服,图书等商品。相对于之前线下,去不同的商城购买所需的不同商品更加便捷,高效。
在企业应用上如何理解(以前集群的现状)
绿色:离线业务
红色:实时业务
黄色:准实时业务
离线业务系统
对于时效性不高的叫做离线数据,
业务需求需要离线数据,那么就构建一个离线业务集群来满足业务需求,
离线业务集群只负责处理离线业务需求
实时业务系统
对于时效性高的叫做实时数据,
业务需求需要该数据立刻马上得出结果,每一秒都要有数据生成,
那么就构建一个实时业务集群来满足业务需求,
实时业务集群只负责处理实时业务需求
准实时业务系统
介于离线和实时之间的叫做准实时,
业务需求需要就构建一个准实时业务集群来满足业务需求,
准实时业务集群只负责准实时业务需求
三个集群
例如三个集群每个都需要用50台服务器,那就意味着三个集群要有三批硬件设备,
在以前的集群现状来看,各个集群只能做各自所能做的需求,无法融合
三份数据
例如这一批数据(三份)提交到三个不同的集群,
在以前的集群现状来看,这批数据只能重复提交到不同集群,每一个集群都需要全量数据
这样就会导致原本的一批数据存储到了三个集群里面,
而三个集群里面,每个集群假如它的数据副本都是3份,
一个集群3份,那么在这个业务系统下有三个集群,其数据副本就占用了原有数据的9倍,
和集群比较多了6份数据副本
和原始数据比较多了9份数据副本
三个集群来支撑业务系统,在最初大数据的平台上,这样满足不同需求,占用了大量的资源
在生活方面:
之前的示例(线下的情况)
电脑商城只能卖电脑
服装城只能卖服装
图书馆只能卖图书
电脑商城,服装城,图书馆只能算是相对的一个小的平台
之前的示例(线上的情况)
将电脑商城,服装城,图书馆等多个小平台的商品集中放到一个互联网电商平台上面销售,
则大大减少了资源的浪费
在技术方面(当前技术现状):
将多个集群业务整合起来就降低了运行成本资源等开销
将原有的三个集群放在所需要完成的不同业务需求,同时使用Yarn资源调度技术进行整合,原始数据也只需要使用一份,大大降低了企业资源的浪费,降低了企业硬件的开销(原先每个集群都独立需要多态服务器来满足不同业务需求)。
示例:
用户将写完的代码提交到集群,需要先找到Yarn,Yarn接收用户的代码,根据用户的需求,把相应的代码提交到不同的计算框架中
小结
ResourceManager(RM)
集群资源的管理者,负责所有资源的监控、分配和管理,一个集群只有一个
NodeManager(NM)
一个节点资源的管理者,负责每一个节点的维护,一个集群有多个
ApplicationMaster(AppM)
一个计算任务的管理者,负责每一个具体应用程序的调度和协调,一个集群有多个
对于所有的Applications,RM拥有绝对的控制权和对资源的分配权。而每个AppM则会和RM协商资源,同时NodeManager通信来执行和监控Task。
2.NodeManager:每一个节点的资源管理者
3.ApplicationMaster:一个计算任务的管理者
4.Container:容器,包含内存与CPU
功能如下: