VersionedProtocol协议是Hadoop的最顶层协议接口的抽象;5--3--3共11个协议,嘿嘿
1)HDFS相关
- ClientDatanodeProtocol:client与datanode交互的接口,操作不多,只有一个block恢复的方法。那么,其它数据请求的方法呢?client与datanode主要交互是通过流式的socket实现,源码在DataXceiver,在这里先不说了;
- ClientProtocol:client与Namenode交互的接口,所有控制流的请求均在这里,如:创建文件、删除文件等;
- DatanodeProtocol:Datanode与Namenode交互的接口,如心跳、blockreport等;
- NamenodeProtocol:SecondaryNode与Namenode交互的接口。
- InterDatanodeProtocol:Datanode内部交互的接口,用来更新block的元数据;
2)Mapreduce相关
- InnerTrackerProtocol:TaskTracker与JobTracker交互的接口,功能与DatanodeProtocol相似;
- JobSubmissionProtocol:JobClient与JobTracker交互的接口,用来提交Job、获得Job等与Job相关的操作;
- TaskUmbilicalProtocol:Task中子进程与母进程交互的接口,子进程即map、reduce等操作,母进程即TaskTracker,该接口可以回报子进程的运行状态(词汇扫盲: umbilical 脐带的, 关系亲密的) 。
3)其它
- AdminOperationProtocol:不用用户操作的接口,提供一些管理操作,如刷新JobTracker的node列表;
- RefreshAuthorizationPolicyProtocol,RefreshUserMappingsProtocol:暂不明白。