YARN resourceManager解析

在YARN中,ResourceManager负责集群中所有资源的统一管理和分配,它接收来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序(实际上是ApplicationManager)。

ResourceManager主要有四种功能:1.处理来自client的请求

2.启动和监控ApplicationMaster

3.监控NodeManager

4.集群中资源的分配和调度

ResourceManager主要由以下几个部分组成:

用户交互

YARN分别针对普通用户,管理员和Web提供了三种对外服务,分别对应ClientRMService、AdminService和WebApp:

ClientRMService

ClientRMService是为普通用户提供的服务,它会处理来自客户端各种RPC请求,比如提交应用程序、终止应用程序,获取应用程序运行状态等。

AdminService

YARN为管理员提供了一套独立的服务接口,以防止大量的普通用户请求使管理员发送的管理命令饿死,管理员可通过这些接口管理集群,比如动态更新节点列表,更新ACL列表,更新队列信息等。

WebApp

为了更加友好地展示集群资源使用情况和应用程序运行状态等信息,YARN对外提供了一个Web 界面,这一部分是YARN仿照haml(http://haml.info/)开发的一个轻量级嵌入式Web框架。具体讨论见:https://issues.apache.org/jira/browse/MAPREDUCE-2399

NM管理

NMLivelinessMonitor

监控NM是否活着,如果一个NodeManager在一定时间(默认为10min)内未汇报心跳信息,则认为它死掉了,会将其从集群中移除。

NodesListManager

维护正常节点和异常节点列表,管理exlude(类似于黑名单)和inlude(类似于白名单)节点列表,这两个列表均是在配置文件中设置的,可以动态加载。

ResourceTrackerService

处理来自NodeManager的请求,主要包括两种请求:注册和心跳,其中,注册是NodeManager启动时发生的行为,请求包中包含节点ID,可用的资源上限等信息,而心跳是周期性 行为,包含各个Container运行状态,运行的Application列表、节点健康状况(可通过一个脚本设置),而ResourceTrackerService则为NM返回待释放的Container列表、Application列表等。

AM管理

AMLivelinessMonitor

监控AM是否活着,如果一个ApplicationMaster在一定时间(默认为10min)内未汇报心跳信息,则认为它死掉了,它上面所有正在运行的Container将被认为死亡,AM本身会被重新分配到另外一个节点上(用户可指定每个ApplicationMaster的尝试次数,默认是1次)执行。

ApplicationMasterLauncher

与NodeManager通信,要求它为某个应用程序启动ApplicationMaster。

ApplicationMasterService

处理来自ApplicationMaster的请求,主要包括两种请求:注册和心跳,其中,注册是ApplicationMaster启动时发生的行为,包括请求包中包含所在节点,RPC端口号和tracking URL等信息,而心跳是周期性 行为,包含请求资源的类型描述、待释放的Container列表等,而AMS则为之返回新分配的Container、失败的Container等信息。

Application管理

ApplicationACLsManager

管理应用程序访问权限,包含两部分权限:查看和修改,查看主要指查看应用程序基本信息,而修改则主要是修改应用程序优先级、杀死应用程序等。

RMAppManager

管理应用程序的启动和关闭。

ContainerAllocationExpirer

YARN不允许AM获得Container后长时间不对其使用,因为这会降低整个集群的利用率。当AM收到RM新分配的一个Container后,必须在一定的时间(默认为10min)内在对应的NM上启动该Container, 否则,RM会回收该Container。

安全管理

ResourceManage自带了非常全面的权限管理机制,主要由ClientToAMSecretManager、ContainerTokenSecretManager、ApplicationTokenSecretManager等模块完成。

资源分配

ResourceScheduler

ResourceScheduler是资源调度器,它按照一定的约束条件(比如队列容量限制等)将集群中的资源分配给各个应用程序,当前主要考虑内存资源,在3.0版本中将会考虑CPU(https://issues.apache.org/jira/browse/YARN-2)。ResourceScheduler是一个插拔式模块,默认是FIFO实现,YARN还提供了Fair Scheduler和Capacity Scheduler两个多租户调度器。

参考资料:

http://hortonworks.com/blog/apache-hadoop-yarn-resourcemanager/

原创文章,转载请注明: 转载自董的博客

本文链接地址: http://dongxicheng.org/mapreduce-nextgen/yarnmrv2-resource-manager-infrastructure/

作者:Dong,作者介绍:http://dongxicheng.org/about/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用和引用的内容,可以得出结论,8088端口是YARN管理页面的默认端口,但默认情况下只能被本机访问,无法被外网访问。要实现外网访问,需要将8088端口映射到外部可访问的虚拟机IP地址上。为了修改访问权限,需要修改yarn-site.xml文件。具体的修改过程可以参考相关文档或教程。 如果你在Windows下无法通过访问地址http://192.168.175.123:8088来访问YARN管理页面,可能有以下几个原因:首先,确保你的虚拟机地址和端口号正确。其次,检查网络连接是否正常。最后,需要确保三台服务器上的hosts文件也进行了相应的配置,以便正确解析虚拟机地址。对于这些服务器的hosts文件配置,可以根据具体情况进行修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [使用不同地域云服务器搭建集群,进程启动OK,50070 可以访问~yarn 8088端口显示拒绝访问](https://blog.csdn.net/yidianyidei/article/details/107288506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Yarn Web页面 8088 端口在Windows浏览器无法访问](https://blog.csdn.net/qq_22310551/article/details/82864966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值