Hadoop框架中Yarn基本结构和运行原理是什么
Yarn的基本结构
Yarn(Yet Another Resource Negotiator)是Hadoop中的一个集群资源管理系统,用于替代MapReduce中的资源管理和作业调度。Yarn的基本结构由ResourceManager(资源管理器)、NodeManager(节点管理器)、ApplicationMaster(应用程序管理器)和Container(任务容器)组成。
1. ResourceManager(资源管理器):负责整个集群的资源管理和作业调度。ResourceManager维护整个集群的资源状态,并接收客户端的作业提交请求,将作业分配给合适的NodeManager执行。
2. NodeManager(节点管理器):负责单个节点的资源管理。NodeManager管理本地节点上的资源使用情况,并向ResourceManager汇报节点的资源状态。同时,NodeManager还负责启动和监控运行在该节点上的任务,以及在任务失败时进行容错处理。
3. ApplicationMaster(应用程序管理器):负责单个作业的执行和管理。每个作业都有一个对应的ApplicationMaster,用于向ResourceManager请求资源,并协调和监控作业的执行过程。ApplicationMaster运行在一个容器内,它会与NodeManager通信来启动、监控和管理作业执行过程中的任务。
4. Container(任务容器):是Yarn中的基本执行单位。Container是在NodeManager上创建和管理的,用于运行作业的不同任务。NodeManager为每个Container分配一定的内存和CPU资源,以及其他必要的资源,然后将Container分配给ApplicationMaster,再由ApplicationMaster分配给具体的任务执行。
Yarn的运行原理
Yarn的运行原理主要分为作业提交阶段、资源调度阶段和任务执行阶段。
1. 作业提交阶段
在作业提交阶段,客户端向ResourceManager发送作业的提交请求。ResourceManager接收到请求后,会为该作业分配一个ApplicationMaster,并为ApplicationMaster分配相应的资源。ApplicationMaster会在容器中启动,并向ResourceManager注册自己,表示已准备好接收任务的分配。
2. 资源调度阶段
在资源调度阶段,ApplicationMaster向ResourceManager申请执行任务所需的资源。ResourceManager通过集群中的节点资源情况和任务的需求来进行资源调度决策,然后将资源的分配情况发送给ApplicationMaster。ApplicationMaster收到资源分配后,即可将任务分配给空闲的容器进行执行。
3. 任务执行阶段
在任务执行阶段,容器内的任务启动并运行。任务会向ApplicationMaster发送心跳消息,以汇报任务的执行状态和进度。同时,ApplicationMaster会监控任务的执行情况,并根据任务的执行结果来做相应的处理,例如重新分配任务、重新申请资源或标记任务失败等。
猜您想看
-
ceph如何实现指定OSD创建pool之class
1、Ceph ...
2023年05月25日 -
Python解析式有哪些
1. 正则表达...
2023年07月04日 -
怎么用Python实现朋友圈中的九宫格图片
一、了解九宫格...
2023年07月21日 -
python中怎么删除一个文件或文件夹
删除文件和文件...
2023年07月22日 -
如何在Steam上购买游戏充值?
如何在Stea...
2023年05月03日 -
如何分析python在键值对的数据集合Dict
一、Pytho...
2023年05月26日