Hadoop-DataNode的相关分析(1)

本文详细介绍了Hadoop系统中Datanode的身份验证机制,包括DatanodeID类的作用及其组成要素,如主机名、端口等,并解释了DatanodeRegistration类在注册过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.1  DatanodeID

这个类就是定义一下Datanode的身份证。

一个DatanodeID是由以下四部分组成的。

  protected String name;    /// 主机名:端口号

  protected String storageID; /// unique per cluster storageID

  protected int infoPort;     /// the port where the infoserver is running

  protected int ipcPort;     /// the port where the ipc server is running

   infoPortServer的一个端口号。

   ipcPortNameNodeDataNode进行连接时,或者是DataNode之间通讯的时候所使用的一个端口号。

   public DatanodeID(DatanodeID from) 这个构造函数用于拷贝另外的一个节点

   这个类主要定义了这个DataNodeHostNamePortinfoPortipcPort这些东西同时有些函数来setget他们。

   它的hashcodename.hashCode()^ storageID.hashCode(); 做了一个异或处理。

updateRegInfo(DatanodeID nodeReg) 从这句我们可以看出DatanodeID对象的域的更新可以更新它的Name和它的infoPort两项内容,而storageID是不可更新的。

如果进行两个DatanodeID的比较的话主要是比较他们的name,可以从下面的代码中得出。

  public int compareTo(DatanodeID that) {

    return name.compareTo(that.getName());

  }

DatanodeID的类图

3.1  DatanodeID的类图

问题6:这个更新的请求是谁发出的?是由NameNode发出的吗?

3.2  DatanodeRegistration

这个类主要用于,当DatanodeNamenode发送注册信息时,它要向Namenode提供一些自己的注册信息。也就是Datanode想在派出所(Namenode)办户口的时候,首先要填一张表给派出所。

同时这个类中还可以设置它的父类就是DatanodeIDNameinfoPortstorageInfo这些内容。

当进行注册的时候要提供的东西,public DatanodeRegistration(String nodeName)

3.2.1  WritableFactories

 定义一个类工厂,能够创建一个非公有的类的实例。可以看出这个类使用了单态模式。它在类中定义了一个HashMap<Class, WritableFactory> CLASS_TO_FACTORY =

new HashMap<Class, WritableFactory>();它的KeyClass,ValueWritableFactory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值