I am trying to figure out all the points in hdfs code where hdfs traffic is read/written. As far as I can tell, it seems most of the traffic goes through BlockSender/BlockReceiver, right ?
However, when a client do a copyFromLocal, or read a file, or for a map task whose input is not local, it seems the DFSClient is invoked. I understand that with DFSClient, it gets the dananodes locations from namenode and then directly open a socket and read/writes. Anyway, I am not very sure where that happens. Can someone point me out where in the code I can find the exact calls to read/write from other datanodes with DFSClient ?
Thanks in advance,