【Hadoop】NameNode客戶(hù)端協(xié)議詳解
NameNode客戶(hù)端協(xié)議詳解
協(xié)議的定義主要在類(lèi)NamenodeProtocols中。如下:
public interface NamenodeProtocols
extends ClientProtocol,
DatanodeProtocol,
DatanodeLifelineProtocol,
NamenodeProtocol,
RefreshAuthorizationPolicyProtocol,
ReconfigurationProtocol,
RefreshUserMappingsProtocol,
RefreshCallQueueProtocol,
GenericRefreshProtocol,
GetUserMappingsProtocol,
HAServiceProtocol {
}
根據交互對象的不同,將協(xié)議進(jìn)行了不同的歸類(lèi)。要想了解協(xié)議內容,需要將其單獨分開(kāi)分析。
NamenodeProtocol 詳解
BlocksWithLocations getBlocks(DatanodeInfo datanode, long size, long
minBlockSize) throws IOException;
當前協(xié)議主要是備N(xiāo)ameNode和主NameNode之間的通信協(xié)議。
獲取指定DataNode中的塊信息。
- size: 請求的塊數量。
- minBlockSize: 查詢(xún)的block塊需要小于當前值。
public ExportedBlockKeys getBlockKeys() throws IOException;
獲取NameNode產(chǎn)生的所有的blockkey信息。blockKey是由BlockTokenSecretManager產(chǎn)生的,BlockTokenSecretManager有兩種模式:master模式和worker模式。
master主要產(chǎn)生token,并且將token導入給workers。master和worker都可以校驗token。一般情況下,NN是master模式,DN是worker模式。主要用于加密。
public long getTransactionID() throws IOException;
獲取最新的事務(wù)ID。
DatanodeProtocol
DataNode和NameNode之間的協(xié)議。
DatanodeLifelineProtocol
DN和NN之間心跳協(xié)議。

0 評論