《企业级大数据平台构建:架构与实现》——2.1.6 Namenode和Datanode
2.1.6 Namenode和Datanode
HDFS从设计上看是一个Master/Slave架构的服务,如图2-3所示。一个HDFS集群是由一个Namenode和一定数目的Datanode组成。Namenode是一个中心服务器,负责管理文件系统的命名空间以及客户端对文件的访问。集群中的Namenode负责管理它所在节点上的存储。HDFS暴露了文件系统的命名空间,用户能够以类似Linux文件系统的形式在上面存储数据。Namenode执行文件系统的命名空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体Datanode节点的映射。Datanode负责处理文件系统客户端的读写请求。在Namenode的统一调度下进行数据块的创建、删除和复制。
图2-3 HDFS逻辑架构图
客户端发送创建文件请求的时候这个请求其实并没有立即发送给Namenode,HDFS客户端首先会将文件数据缓存到本地的一个临时文件中去。直到这个临时文件的大小累积到了一个数据块的大小时,客户端才会联系Namenode。Namenode会记录这个文件的元数据并分配一个Datanode的数据块给它。之后客户端将本地临时文件传到指定的Datanode上。假设该文件的副本系数是3,则当第一个Datanode接收到一小部分数据之后就将这部分数据写入本地仓库,并同时传输该部分到第二个Datanode。第二个Datanode同样也会将接收到的小部分数据写入本地仓库,同时将该数据传输给第三个Datanode。第三个Datanode收到数据之后将数据写入本地仓库。
- 点赞
- 收藏
- 关注作者
评论(0)