core 文件夹下有个versionProtocol 是所有使用Hadoop RPC 的父类。它只具有一个获取版本的方法。
ClientDatanodeProtocol、InterDatanodeProtocol、ClientProtocol、DatanodeProtocol 和 NamenodeProtocol 是他们的子类。关系如下:
他们在Client、Namenode 和 Datanode 三方的关系如下图:
在hdfs protocol 下是一些公用的Protocol,UML 如下(没有包括namenode 内的protocol):
NamenodeProtocol
InterDatanodeProtocol
DatanodeProtocol
ClientProtocol(最复杂重要,实现了客户端操作名字空间的接口)
ClientDatanodeProtocol
最后附上namenode 启动的流程