前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NameNode客户端协议详解

NameNode客户端协议详解

作者头像
zeekling
修改2024-05-27 07:46:36
1260
修改2024-05-27 07:46:36
举报

NameNode客户端协议详解

协议的定义主要在类NamenodeProtocols中。如下:

代码语言:java
复制
public interface NamenodeProtocols
  extends ClientProtocol,
          DatanodeProtocol,
          DatanodeLifelineProtocol,
          NamenodeProtocol,
          RefreshAuthorizationPolicyProtocol,
          ReconfigurationProtocol,
          RefreshUserMappingsProtocol,
          RefreshCallQueueProtocol,
          GenericRefreshProtocol,
          GetUserMappingsProtocol,
          HAServiceProtocol {
}

根据交互对象的不同,将协议进行了不同的归类。要想了解协议内容,需要将其单独分开分析。

NamenodeProtocol 详解

代码语言:java
复制
BlocksWithLocations getBlocks(DatanodeInfo datanode, long size, long
      minBlockSize) throws IOException;

当前协议主要是备NameNode和主NameNode之间的通信协议。

获取指定DataNode中的块信息。

  • size: 请求的块数量。
  • minBlockSize: 查询的block块需要小于当前值。
代码语言:java
复制
public ExportedBlockKeys getBlockKeys() throws IOException;

获取NameNode产生的所有的blockkey信息。blockKey是由BlockTokenSecretManager产生的,BlockTokenSecretManager有两种模式:master模式和worker模式。

master主要产生token,并且将token导入给workers。master和worker都可以校验token。一般情况下,NN是master模式,DN是worker模式。主要用于加密。

代码语言:java
复制
public long getTransactionID() throws IOException;

获取最新的事务ID。

DatanodeProtocol

DataNode和NameNode之间的协议。

DatanodeLifelineProtocol

DN和NN之间心跳协议。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024.04.25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NameNode客户端协议详解
    • NamenodeProtocol 详解
      • DatanodeProtocol
        • DatanodeLifelineProtocol
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档