首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Hadoop YARN架构设计要点(2)

Hadoop YARN架构设计要点(2)

YARN协议
YARN是一个分布式资源管理系统,它包含了分布的多个组件,我们可以通过这些组件之间设计的交互协议来说明,如图所示:



下面我们来详细看看各个协议实现的功能:
  • ApplicationClientProtocol(Client -> RM)
协议方法功能描述
getNewApplication获取一个新的ApplicationId,例如返回的ApplicationId为application_1418024756741
submitApplication提交一个Application到RM
forceKillApplication终止一个已经提交的Application
getApplicationReport获取一个Application的状态报告信息ApplicationReport,包括用户、队列、名称、AM所在节点、AM的RPC端口、跟踪URL、AM状态、诊断信息(如果出错的话)、启动时间、提交Application的Client(如果启用安全策略)
getClusterMetrics获取YARN集群信息,如节点数量
getApplications获取Application状态报告信息,和getApplicationReport类似,只不过增加了过滤器功能
getClusterNodes获取集群内所有节点的状态报告信息
getQueueInfo获取队列信息
getQueueUserAcls获取当前用户的队列ACL信息
getDelegationToken获取访问令牌信息,用于Container与RM端服务交互
renewDelegationToken更新已存在的访问令牌信息
cancelDelegationToken取消访问令牌
moveApplicationAcrossQueues将Application移动到另一个队列中
getApplicationAttemptReport获取Application Attempt状态报告信息ApplicationAttemptReport
getApplicationAttemptReport获取Application Attempt状态报告信息,和getApplicationAttemptReport类似,只不过增加了过滤器功能
getContainerReport根据ContainerId获取Container状态报告信息ContainerReport,例如Container名称为container_e17_1410901177871_0001_01_000005,各个段的含义:container_e<epoch>_<clusterTimestamp>_<appId>_<attemptId>_<containerId>
getContainers根据ApplicationAttemptId获取一个Application Attempt所使用的Container的状态报告信息,例如Container名称为container_1410901177871_0001_01_000005
submitReservation预定资源,以备在特殊情况下能够从集群获取到资源来运行程序,例如预留出资源供AM启动
updateReservation更新预定资源
deleteReservation删除预定
getNodeToLabels获取节点对应的Label集合
getClusterNodeLabels获取集群中所有节点的Label
  • ResourceTracker(NM -> RM)
协议方法功能描述
registerNodeManagerNM向RM注册
nodeHeartbeatNM向RM发送心跳状态报告
  • ApplicationMasterProtocol(AM -> RM)
协议方法功能描述
registerApplicationMasterAM向RM注册
finishApplicationMasterAM通知RM已经完成(成功/失败)
allocateAM向RM申请资源
  • ContainerManagementProtocol(AM -> NM)
协议方法功能描述
startContainersAM向NM请求启动Container
stopContainersAM向NM请求停止Container
getContainerStatusesAM向NM请求查询当前Container的状态
  • ResourceManagerAdministrationProtocol(RM Admin -> RM)
协议方法功能描述
getGroupsForUser获取用户所在用户组,该协议继承自GetUserMappingsProtocol
refreshQueues刷新队列配置
refreshNodes刷新节点配置
refreshSuperUserGroupsConfiguration刷新超级用户组配置
refreshUserToGroupsMappings刷新用户->用户组映射信息
refreshAdminAcls刷新Admin的ACL信息
refreshServiceAcls刷新服务级别信息(SLA)
updateNodeResource更新在RM端维护的RMNode资源信息
addToClusterNodeLabels向集群中节点添加Label
removeFromClusterNodeLabels移除集群中节点Label
replaceLabelsOnNode替换集群中节点Label
  • HAServiceProtocol(Active RM HA Framework Standby RM)
协议方法功能描述
monitorHealthHA Framework监控服务的健康状态
transitionToActive使RM转移到Active状态
transitionToStandby使RM转移到Standby状态
getServiceStatus获取服务状态信息
返回列表