HDFS主要RPC接口
- ClientProtocol:客户端与名字节点间的接口。客户端通过这个接口访问名字节点,操作文件或目录的元数据信息(如,获取数据块位置后,才能继续与数据节点通信读取数据)。另外,还能够管理或查看名字节点的状态(和由名字节点维护的集群统计信息)。
- ClientDatanodeProtocol:客户端与数据节点间的接口。用于客户端和数据节点进行交互。这个接口用得比较少,客户端和数据节点间的主要交互是通过流接口进行读/写文件数据的操 作;主要在错误发生时,客户端需要数据节点配合进行恢复。另外,或者当客户端进行本地文件读优化时,需要通过IPC接口获取一些信息。
- DatanodeProtocol:数据节点与名字节点间的接口。在HDFS的主从(Master/Slave)结构中,数据节点作为RPC Client不停的向名字节点发送心跳。心跳请求中携带了大量数据节点得到的正常、异常信息;心跳响应中携带了名字节点的指令,指示数据节点进行数据块的复制、删除、恢复等。除了心跳,数据节点的注册、管道写过程中的等多项操作也通过该节点完成。
- InterDatanodeProtocol:数据节点与数据节点间的接口。数据节点通过这个接口,和其他数据节点进行通信,主要用于数据块的恢复等。
- NamenodeProtocol:第二名字节点与名字节点间的接口。第二名字节点会不停地获取名字节点上某一个时间点的命名空间镜像(fsimage)和镜像的变化日志(editlog),然后合并得到新的镜像,并将该结果同步回名字节点。