Class DatanodeID

java.lang.Object
org.apache.hadoop.hdfs.protocol.DatanodeID
All Implemented Interfaces:
Comparable<DatanodeID>
Direct Known Subclasses:
DatanodeInfo

@Private @Evolving public class DatanodeID extends Object implements Comparable<DatanodeID>
This class represents the primary identifier for a Datanode. Datanodes are identified by how they can be contacted (hostname and ports) and their storage ID, a unique number that associates the Datanodes blocks with a particular Datanode. DatanodeInfo.getName() should be used to get the network location (for topology) of a datanode, instead of using getXferAddr() here. Helpers are defined below for each context in which a DatanodeID is used.
  • Field Details

    • EMPTY_ARRAY

      public static final DatanodeID[] EMPTY_ARRAY
    • EMPTY_DATANODE_ID

      public static final DatanodeID EMPTY_DATANODE_ID
  • Constructor Details

    • DatanodeID

      public DatanodeID(DatanodeID from)
    • DatanodeID

      @VisibleForTesting public DatanodeID(String datanodeUuid, DatanodeID from)
    • DatanodeID

      public DatanodeID(String ipAddr, String hostName, String datanodeUuid, int xferPort, int infoPort, int infoSecurePort, int ipcPort)
      Create a DatanodeID
      Parameters:
      ipAddr - IP
      hostName - hostname
      datanodeUuid - data node ID, UUID for new Datanodes, may be the storage ID for pre-UUID datanodes. NULL if unknown e.g. if this is a new datanode. A new UUID will be assigned by the namenode.
      xferPort - data transfer port
      infoPort - info server port
      ipcPort - ipc server port
  • Method Details

    • setIpAddr

      public void setIpAddr(String ipAddr)
    • setPeerHostName

      public void setPeerHostName(String peerHostName)
    • getDatanodeUuid

      public String getDatanodeUuid()
      Returns:
      data node ID.
    • getDatanodeUuidBytes

      public org.apache.hadoop.thirdparty.protobuf.ByteString getDatanodeUuidBytes()
    • getIpAddr

      public String getIpAddr()
      Returns:
      ipAddr;
    • getIpAddrBytes

      public org.apache.hadoop.thirdparty.protobuf.ByteString getIpAddrBytes()
    • getHostName

      public String getHostName()
      Returns:
      hostname
    • getHostNameBytes

      public org.apache.hadoop.thirdparty.protobuf.ByteString getHostNameBytes()
    • getPeerHostName

      public String getPeerHostName()
      Returns:
      hostname from the actual connection
    • getXferAddr

      public String getXferAddr()
      Returns:
      IP:xferPort string
    • getInfoAddr

      public String getInfoAddr()
      Returns:
      IP:infoPort string
    • getInfoSecureAddr

      public String getInfoSecureAddr()
      Returns:
      IP:infoPort string
    • getXferAddrWithHostname

      public String getXferAddrWithHostname()
      Returns:
      hostname:xferPort
    • getXferAddr

      public String getXferAddr(boolean useHostname)
      Parameters:
      useHostname - true to use the DN hostname, use the IP otherwise
      Returns:
      name:xferPort
    • getIpcAddr

      public String getIpcAddr(boolean useHostname)
      Parameters:
      useHostname - true to use the DN hostname, use the IP otherwise
      Returns:
      name:ipcPort
    • getXferPort

      public int getXferPort()
      Returns:
      xferPort (the port for data streaming)
    • getInfoPort

      public int getInfoPort()
      Returns:
      infoPort (the port at which the HTTP server bound to)
    • getInfoSecurePort

      public int getInfoSecurePort()
      Returns:
      infoSecurePort (the port at which the HTTPS server bound to)
    • getIpcPort

      public int getIpcPort()
      Returns:
      ipcPort (the port at which the IPC server bound to)
    • equals

      public boolean equals(Object to)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • updateRegInfo

      public void updateRegInfo(DatanodeID nodeReg)
      Update fields when a new registration request comes in. Note that this does not update storageID.
    • compareTo

      public int compareTo(DatanodeID that)
      Compare based on data transfer address.
      Specified by:
      compareTo in interface Comparable<DatanodeID>
      Parameters:
      that - datanode to compare with
      Returns:
      as specified by Comparable
    • getResolvedAddress

      public InetSocketAddress getResolvedAddress()