c语言sscanf函数的用法是什么
272
2022-11-18
Hadoop 资源管理框架 YARN : ResourceManager
ResourceManager 核心功能
集群资源统一管理和调度
NodeManager(管理):接受资源汇报信息ApplicationMaster(管理):分配资源客户端(响应):处理请求
通信 (三个角色通信)
1. 与NodeManager通信(ResourceTracker )
注册、心跳(汇报节点健康状况)、Container运行状态领取执行指令(启动/清理/删除Container)
2. 与ApplicationMaster通信(ApplicationMasterProtocol)
注册、心跳申请/释放资源
3. 与客户端通信(ApplicationClientProtocol)
提交/查询/控制应用程序
模块简介
七个模块
1. 用户交互模块
ClientRMService:处理普通用户的请求(提交、终止程序以及查询程序状态等)AdminService:处理管理员的请求(更新节点/ACL列表、更新队列信息等)防止大量的普通用户请求导致管理命令饿死。WebApp:通过Web页面展示集群资源使用情况和程序使用情况
2. NM管理模块
NMLivelinessMonitor:监控NM状态若没有定期(默认10min)汇报心跳,则从集群中移除。NodesListManager:维护正常节点和异常节点列表两个列表都是在配置文件中设置的,可动态加载。ResourceTrackerService:处理NM的请求
3. AM管理模块
AMLivelinessMonitor:监控AM状态若没有定期(默认10min)汇报心跳,则认为它死掉了,它上面运行的Container都被置为失败状态。AM会被重新分配到另一个节点上执行(用户指定重试次数,默认为2)ApplicationMasterLauncher:与NM进行通信,下发命令启动ApplicationMasterApplicationMasterService(AMS):处理来自AM的请求注册:ApplicationMaster启动节点对外RPC端口号和tackingURL等信息心跳:汇报所需资源描述、待释放的Container列表、黑名单列表等返回值是新分配的Container、失败的Container、待抢占的Container列表等信息
4. Application管理模块
ApplicationACLsManager:管理应用程序访问权限查看权限:查看应用程序基本信息修改权限:修改程序优先级、杀死应用进程等RMAppManager:管理应用程序的启停ContainerAllocationExpirer:决定Container是否被回收以及执行当AM收到RM新分配的Container后,必须在一定时间内(默认10min)在对应的NM启动该Container,否则RM将强制回收该Container
5. 状态机模块 将设计架构变得更清晰
RMApp:维护一个应用程序的生命周期RMAppAttempt:维护MRApp产生的小任务生命周期RMContainer:维护Container的生命周期目前的Container不支持重用,看看后期是否可重用RMNode:维护NodeManager的生命周期
6. 安全模块 由以下子模块组成
ClientToAMSecretManagerContainerTokenSecretManagerApplicationTokenSecretManager
7. 资源分配模块 ResourceScheduler:负责将资源分配给应用程序
批处理资源调度器:FIFO多用户调度器:Fair Scheduler和Capacity Scheduler
模块详解七个模块
1. 用户交互模块
ClientRMService和AdminService两个服务分别处理普通用户和管理员的请求
ClientRMService 本质是RPC Server(实现ApplicationClientProtocol),给客户端提供RPC服务
ClientRMService中保留了RM上下文对象RMContext,中央异步调度器通过RMContext来获取节点列表、队列组织和应用列表等信息来响应客户端请求
AdminService 本质也是RPC Server,不过服务对象是管理员 yarn.admin.acl设置的,默认是*,表示所有用户都是管理员
2. NM管理模块
由以下三个组件共同组成NMLivelinessMonitor 周期性遍历所有NM,它上面所有的Container都认为是失败的 心跳周期 (默认十分钟):yarn.nm.liveness-monitor.expiry-interval-ms
NodesListManager 管理RM的节点
指定白名单文件:yarn.resourcemanager.nodes.include-path 指定黑名单文件:yarn.resourcemanager.nodes.exclude-path 在执行以下命令让配置生效 bin/yarn rmadmin -refreshNodes
ResourceTrackerService 本质是RPC Server,处理NM请求(通过ApplicationMasterProtocol协议)
注册(单次)NM启动时发送该请求,携带节点ID、可用资源的上限和对外开放的HTTP端口心跳(周期)包含运行的Application列表、节点健康状况和Container运行状态等返回待释放的Container列表、Application列表
3. AM管理模块
由以下三个组件共同组成 ApplicationMasterLauncher:负责启动AM ApplicationMasterService:负责跟AM通信 AMLivelinessMonitor:负责监控AM的生命周期
ApplicationMasterLauncher 即是服务也是事件处理器,响应AMLauncherEvent事件(启动/清理AM)
启动AM通过ContainerManagementProtocol跟NM通信,将启动AM所需的信息如启动命令、JAR包、环境变量等信息封装成StartContainerRequest对象发送给NM清理AM通过ContainerManagementProtocol跟NM通信,要求其杀死AM
ApplicationMasterService 处理AM的请求(通过ApplicationMasterProtocol协议)
注册(单次)AM启动时发送该请求,携带所在节点、RPC端口和trackingURL等信息心跳(周期)包含请求资源的类型、待释放的Container列表等AMS返回新分配的Container、失败的Container等信息清理(单次)AM向RM发送清理请求,来回收/清理各种资源回收AM所占的Container和将AM从AMLivelinessMonitor中删除
AMLivelinessMonitor 周期性遍历所有AM,如果有AM没有定期发送心跳则认为它挂了,它所持有的Container全部设置为失败
RM会重新为它分配资源并在另一个节点上启动
心跳时间 (默认十分钟):yarn.am.liveness-monitor.expiry-interval-ms AM失败重试次数 (默认两次):yarn.resourcemanager.am.max-attempts
4. Application管理模块
管理Application的生命周期、权限等
ApplicationACLsManager 管理应用程序查看/修改权限 通过该参数配置权限 yarn.admin.acl
RMAppManager 负责应用程序的启停
将应用程序放到应用程序列表中将应用程序从RMStateStore中移除
通过该参数设置最大应用数:yarn.resourcemanager.max-completed-applications
ContainerAllocationExpirer 管理Container的使用 如果某个AM拿到Container后一段时间内都没使用,则会强制回收(提高利用率)
等待时间 :yarn.resourcemanager.rm.container-allocation.expiry-interval-ms
特点
1. 事件驱动 中央异步调度器将组件/服务组织在一起,各个组件/服务的输出都是事件,组件/服务之间的交互都是通过事件,从而实现了异步并行的高效系统
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~