core 文件夹下有个versionProtocol 是所有使用Hadoop RPC 的父类。它只具有一个获取版本的方法。
ClientDatanodeProtocol、InterDatanodeProtocol、ClientProtocol、DatanodeProtocol 和 NamenodeProtocol 是他们的子类。关系如下:

他们在Client、Namenode 和 Datanode 三方的关系如下图:

在hdfs protocol 下是一些公用的Protocol,UML 如下(没有包括namenode 内的protocol):

NamenodeProtocol

InterDatanodeProtocol

DatanodeProtocol

ClientProtocol(最复杂重要,实现了客户端操作名字空间的接口)

ClientDatanodeProtocol

最后附上namenode 启动的流程
