1、读文件流程
- 第一步:Client 向NameNode 发送数据请求后,寻找数据对应的数据块的位置信息。
- 第二步:NameNode 返回文件对应的数据块元数据信息,如所属机器、数据块的block_id、数据块的先后顺序等。
- 第三步:由Client 与DataNode 直接通信,读取各个block 数据块的信息。过程为并行读取,由客户端合并数据。
2、写文件流程
- 第一步:
- Client 向NameNode 发送写数据请求后,寻找可以写入的数据块block 信息的机器位置。
- 若文件过大,写入可能会分成很多block 数据块,实际上是通过一个block 一个block的申请。
- 若副本为3,则每次请求后返回一个block 的对应的3 个副本的block 的存放位置。
- 第二步:
- Client 获取到对应的block 数据块所处的DataNode 节点位置后,Client 开始写操作。
- Client 先写入第一个DataNode,以数据包package 的方