目录
简介
我们先看DataNode的doc文档的介绍,DataNode是一个类,用于存储一组块,用于DFS部署。 单个部署可以有一个或多个DataNode。 每个DataNode通信定期与单个NameNode进行通信。 它还可以与客户端和其他的DataNodes通信。
DataNode存储一系列命名的块。 DataNode允许客户端代码读取这些块,或者写新的块数据。 DataNode也可以响应于以下指令从其NameNode中删除区块或将区块复制到/从其他的DataNodes。
DataNodes的一生都在无休止的循环中度过,询问NameNode需要做哪些事情。 NameNode不能直接连接到DataNode;NameNode只是从DataNode调用的函数中返回值。
DataNodes维护一个开放的 server socket,以便客户端代码 或其他数据节点可以读/写数据。 读取/写入数据的主机/端口为汇报给NameNode,然后将该服务器的向客户或其他可能感兴趣的数据节点提供信息。
概括如下:
1):一个集群里面可以有好很多个datanode ,这些datanode就是用来存储数据的。
2):datanode启动了以后会周期性的与namenode进行通信(心跳 、 回报块)。
3):namenode不能直接操作datanode , 而是通信心跳返回指令的方式去操作datanode。
4):datanode启动了以后会开放一个socket发服务(RPC),等待调用。
源码解析
启动dat