从 HDFS 分布式存储器 的视角:
HDFS采用主从(Master/Slave)结构模型
HDFS有两种节点:一个(或多个)NameNode和多个DataNode。
HDFS有两种节点:一个(或多个)NameNode和多个DataNode。
NameNode作为主服务器,管理文件系统命名空间和客户端对文件的访问操作。记录文件的每个块所在的DataNode
DataNode管理存储的数据。
DataNode管理存储的数据。
我们用读写文件的流程来看Namenode和Datanode是怎么协作完成工作的
读文件
- 1.客户端通过分布式文件系统的一个实例来打开文件
- 2.分布式文件系统通过使用RPC调用名称节点,名称节点返回该文件的部分或全部块列表
- 3.分布式文件系统返回一个FS数据输入流给客户端读取数据
- 4.和离文件开头块最近的数据节点连接。数据从数据节点返回客户端。关闭连接。
- 5.为下一个块找到最近的数据节点
- 6.客户端完成读取,关闭输入流。
写文件
- 在写入数据时,DFS输出流将数据分包,写入数据队列。
- 数据节点的列表称为管线,数据流要求管线里的节点为数据的副本分配新的块。数据流将包分给管线中的第一个数据节点,第一个数据节点存储包并发送给下一个节点……
- DFS输出流也有一个确认队列,在一个包被所有节点确认后路才会把他移除确认队列
- 处理数据队列的下一个包……
- 最后让名称节点知道文件是由哪些块组成的