hadoop中NameNode类实现的三个通信协议接口:DataNodeProtocol、NameNodeProtocol和ClientProtocol,
其中DataNodeProtocol、NameNodeProtocol位于package:org.apache.hadoop.hdfs.server.protocol中,ClientProtocol
位于package:org.apache.hadoop.hdfs.protocol中
1、DataNodeProtocol
此协议DFS中Datanode与NameNode通信,用来加载当前负载信息和块报告。一个NameNode与DataNode通信的
唯一方式是返回其中函数的返回值。其包含的实例域和方法:
a、实例域
public static final long versionID = 26L; //增加一个命名空间的成员
// error code
final static int NOTIFY = 0;
final static int DISK_ERROR = 1; // there are still valid volumes on DN
final static int INVALID_BLOCK = 2;
final static int FATAL_DISK_ERROR = 3; // no valid volumes left on DN
//DN节点接收到一个datanode 命令,从而决定其采取哪种操作
final static int DNA_UNKNOWN = 0; // unknown action
final static int DNA_TRANSFER = 1; // transfer blocks to another datanode
final static int DNA_INVALIDATE = 2; // invalidate blocks
final static int DNA_SHUTDOWN = 3; // shutdown node
final static int DNA_REGISTER = 4; // re-register
final static int DNA_FINALIZE = 5; // finalize previous upgrade
final static int DNA_RECOVERBLOCK = 6; // request a block recovery
final static int DNA_ACCESSKEYUPDATE = 7; // update access key
final static int DNA_BALANCERBANDWIDTHUPDATE =