概述
ClientProtocol协议是JobClient和JobTracker之间进行交流的枢纽。JobClient 可以使
用该协议中的函数来提交-一个作业(Job) 并执行,以了解当前系统的状态
- 提交作业
协议中JobClient通过Hadoop RPC的submitjob()函数提交作业(Job),函数所包含的参数有作业ID (JobID),然后JobClient通过getNewJoblD0函数为作业(Job) 获得一个唯一的ID。 - 操作作业
当用户提交作业(Job) 后,可以通过调用函数来控制该作业的执行流程,如设置提交作业的优先级(setlobPriority()函数) 、停止一个作业(killJob()函数) 、停止一个任务(illTask()函数)。 - 查看状态
从实现源代码来看,该通信协议还提供了一系列函数来 查看状态,如查看集群当前状态(getClusterMetrics()函数)、查看当前任务状态(getJobTrackerStatus()函数) 、获取所有任务(getllobs()函数)等。
RefreshUserMappingProtocol
RefreshU serMappingsProtocol 协议用于更新 HDFS 和 MapReduce 级别的用户到用户组
映射关系及超级用户代理组列表
refreshUserToGroupsMappings() 函数和refreshSuperUserGroupsConfiguration()函数来实现,这两个函数均是通过调用Hadoop RPC来完成具体的逻辑。
RefreshAuthorizationPolicyProtocol
RefreshAuthorizationPol icyProtocol 协议用于刷新当前使用的授权策略
通过调用 Hadoop RPC 远程调用 refreshServiceAcl()函数,实现基于 HDFS 和
MapReduce 级别的授权策略
ResourceManagerAdministrationProtocol
ResourceManagerAdministrationProtocol 协议用于更新队列列表、节点 列表 、节点资源等
该协议继承于 GetUserMappingsProtocol 基类 ,通过 Hadoop RPC 远程调用来实现节点
更新、资源更新 、添加标签等操作
说明:在IDE中导入hadoop源码加载进去后,按Ctrl+鼠标左键进入即可查看源码