В отличие от rpc-связи между клиентом и namenode или между namenode и datanode, datanodes, похоже, имеют свой собственный способ связи друг с другом.
Так как датододы общаются друг с другом?Есть ли какие-либо материалы по этому вопросу?
Я думаю, что основной связью между датододами является передача данных, репликация блоков из одного датодода в один или несколько других узлов.
Если у вас есть источник под рукой, вы можете посмотреть в DataNode.DataTransfer.run(). Версия 0.20.2 (у меня есть источник), соединяется с целевыми узлами данных (по одному за раз), отправляет заголовок, а затем байты блока.
DataNode.DataTransfer.run()
http://svn.apache.org/viewvc/hadoop/common/tags/release-0.20.2/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java?view=markup