纱知识体系总结

  

2019/2/18星期一

  

<强>纱知识体系总结

  

<强>纱产生的原因
(1) MapreduceV1中,jobtracker存在瓶颈:
集群上运行的所有先生程序都有jobtracker来调度
SPOF单点故障
职责划分不清晰
(2)将jobtracker的职责划分成两个部分:
?资源调度与管理:由统一的资源调度平台(集群)来实现(纱)
?任务监控与管理:
,每一个应用程序运行时拥有一个自己的任务监控管理进程AppMaster
B, AppMaster的生命周期:应用提交给纱集群之后,纱线负责启动该应用程序的AppMaster,随后任务的执行监控调度等工作都交由AppMaster,待这个应用程序运行完毕后,AppMaster向纱注销自己。
C, AppMaster的具体实现由应用程序所使用的分布式运算框架自己负责,比如Mapreduce类型的应用程序有MrAppMaster实现类.Spark DAG应用则有SparkOnYarn的SparkContext实现

  <人力资源/>   

<强>纱的架构图

  

纱知识体系总结

  

<强>纱的2个主要的类节点(服务进程)
1, resourcemanager主节点大师- - -只需要1个(也可以实现公顷)
2, nodemanager从节点——根据集群规模可以有多个
具体小结如下:
(1) resourcemanager——比;主节点,可配多个RM实现HA机制,
ResourceManager由两个核心组件构成:
调度器和ApplicationsManager;
调度器:负责资源调度,调度策略可插拔(内置实现CapacityScheduler/FairScheduler)不提供对应用程序运行的监控;
ApplicationsManager:负责响应任务提交请求,协商applicationMaster运行的容器,重启失败的applicationMaster
(2) NodeManager——比;从节点,每台机器上一个
职责:加载容器、监控各容器的资源使用情况,并向Resourcemanager/调度器汇报
(3) ApplicationMaster——比;特定运算框架自己实现,接口为统一的AppMaster
职责:向调度程序请求适当的资源,跟踪任务的执行,监控任务执行进度,状态等

  

<强>纱的基本概念-程序提交的流程
纱:hadoop的资源管理调度平台(集群)- - -为用户程序提供运算资源的管理和调度
用户程序:如用户开发先生的程序

  

<>强先生程序提交的详细流程

  

纱知识体系总结

  

1, runjar启动起来之后,就会找resourcemanager,发出一个远程过程调用RPC//申请提交一个工作(奥程序)
2, resourcemanager会返回一个jobid以及一个提交工作相关文件的hdfs路径给runjar程序比如:hdfs://. ./stagingDIR
3, runjar就会上传的工作相关的文件到hdfs路径下比如:hdfs://?stagingDIR/jobid/worcount.jar
jbo。xml
工作分割的切片信息
4,通知RM,文件上传成功
5,在RM内部会对本次客户端提交的任务,构造出一个任务出来,放在他的内部的任务队列中。别的客户端提交上来的任务也会在这个队列中,当资源不够的时候,会等待。
6, nodemanager和resourcemanager之间时刻都保持着一个心跳的通信,任务出来之后,nodemanager会去自动去领取任务,比如:nodemanager在领取任务的时候被其中一个节点领取到了任务,nodemanager会到hdfs上拉取工作的相关的文件。
7, nodemanager在自己的内部隔离出一部分资源出来,形成一个容器(容器)cpu + mem这个任务要做的第一件事情是:他会在容器里面去启动一个程序,(那他怎么知道去启动这个程序的呢?资源管理器会在这个工作任务中描述的会嵌入一个启动程序的壳命令)nodemanager负责把这个壳命令在他的机器上执行一下就好了,执行以下就会在容器中启动一个MapReduce jar包中的一个程序,这个程序就叫做(MRappmaster进程)接下来所有的处理流程就由这个MRappmaster进程来主导了。
MRappmaster会做什么事?他本身又是个什么东西呢?
MRappmaster:其实就是一个MapReduce的应用程序的主管。这个主管进程是MapReduce框架来实现的,这个就是用来管理这个MapReduce程序的执行
在纱线中其实就只负责到把MRappmaster进程启动起来。其他的MapReduce程序具体是怎么运行的,纱线就不管了.yarn只负责给你相应需要的资源就好了
8日MRappmaster启动起来之后,会向resourcemanager注册并申请程序运行的资源.mrappmaster会启动地图任务和减少进程,所以需要资源包括监控和管理任务所需要的资源。
9日resourcemanager就会把MRappmaster申请的响应的资源分配给他,那么在任务队列中就又会产生新的任务,这些任务是交给nodemanager去处理的(其实就是分配资源的任务)nodemanager领取到新的分配资源的任务的时候就会在自己的这台机器上创建新的容器(一台机器上可以创建多个容器)每台nodemanager创建好的容器资源列表会返回给RM

纱知识体系总结