datanode-namenode通信使用org.apache.hadoop.ipc包;而dat-datanode间通信基于简单的套接字通信。
这种设计背后的动机是什么?
答案 0 :(得分:6)
根据他们的要求有两个不同的任务,因此可以通过希望更好地满足要求来解释两种不同的实现。
DataNode - > NameNode通信比DataNode-DataNode通信更复杂,从而证明了RPC的合理性。
DataNode-DataNode通信一方面非常简单,需要高效传输大量数据。可以说套接字是这种情况下最有效的解决方案。
答案 1 :(得分:0)
根据JavaDoc,DatanodeProtocol和InterDatanodeProtocol都来自org.apache.hadoop.ipc.VersionedProtocol。
话虽如此,基于文档,它看起来像DataNode(实现DatanodeProtocol)做得更多(与Namenode,其他数据节点和客户端的连接)。其中DataNodes之间的通信(通过InterDataNodeProtocol)表示简单的通信。