Check the version file During the startup Datanode sends out a heart beat signal and NN assigns a storageID for it which is unique for every datanode. Using the storage id it identify the ip and port of a datanode Regards, Som Shekhar Sharma +91-8197243810
On Mon, Dec 23, 2013 at 9:41 AM, Dhaivat Pandya <dhaivatpan...@gmail.com> wrote: > Hi, > > I'm currently trying to build a cache layer that should sit "on top" of the > datanode. Essentially, the namenode should know the port number of the > cache layer instead of that of the datanode (since the namenode then relays > this information to the default HDFS client). All of the communication > between the datanode and the namenode currently flows through my cache > layer (including heartbeats, etc.) > > *First question*: is there a way to tell the namenode where a datanode > should be? Any way to trick it into thinking that the datanode is on a port > number where it actually isn't? As far as I can tell, the port number is > obtained from the DatanodeId object; can this be set in the configuration > so that the port number derived is that of the cache layer? > > I spent quite a bit of time on the above question and I could not find any > sort of configuration option that would let me do that. So, I delved into > the HDFS source code and tracked down the DatanodeRegistration class. > However, I can't seem to find out *how* the NameNode figures out the > Datanode's port number or if I could somehow change the packets to reflect > the port number of cache layer? *Second question: *how does the namenode > figure out a newly-registered Datanode's port number? > > Thank you, > > Dhaivat