In DataNode: public DatanodeProtocol namenode It's not a reference to an actual namenode, it's a wrapper for a network protocol created by that RPC.waitForProxy call -- so when it calls namenode.blockReport, it's sending that information over RPC to the namenode instance over the network
On Thu, Apr 1, 2010 at 5:50 AM, Alberich de megres <alberich...@gmail.com>wrote: > Hi everyone! > > sailing throught the hdfs source code that comes with hadoop 0.20.2, i > could not understand how hdfs sends blockreport to nameNode. > > As i can see, in > src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java we > create this.namenode interface with RPC.waitForProxy call (wich i > could not understand which class it instantiates, and how it works). > > After that, datanode generates block list report (blockListAsLongs) > with data.getBlockReport, and call this.namenode.blockReport(..), > inside namenode.blockReport it calls again namesystem.processReport. > This leads to an update of block lists inside nameserver. > > But how it sends over the network this blockreport? > > Anyone can point me some light? > > thanks for all! > (and sorry for the newbie question) > > Alberich >