1.namenode:
- 接收客户端的读写请求
- 存储元数据信息
- 接收datanode的心跳报告
- 负载均衡
- 分配数据块的存储节点
2.datanode:
- 真正处理客户端的读写请求
- 向namenode发送心跳
- 向namenode发送块报告
- 真正的数据存储
- 副本之间的相互复制
3.secondarynamenode:
- 备份元数据信息
- 帮助namenode进行元数据合并 减轻namenode的压力
4.客户端
- 进行数据块的物理切分
- 向namenode发送读写请求
- 向namenode发送读写响应
1.namenode:
2.datanode:
3.secondarynamenode:
4.客户端