读写机制与安全模式
读写机制
写操作
在向NameNode写文件时,首先由客户端向NameNode发起文件上传请求,NameNode检查文件要上传的目录,并鉴权。
如果上传用户对此目录有权限,则允许客户端进行上传操作。客户端接收到允许指令后,将要上传的文件切分为Block,之后按照顺序依次上传block1、block2 … block N,这也是为什么说HDFS无法进行并发写的原因。
首先上传block1,向NameNode发起请求,NameNode会按照block副本放置策略,为block1选择合适的DataNode节点,并按照与客户端的路由由近到远的顺序进行排序,之后将DataNode列表返回给客户端。
客户端接收到DataNode列表后,便按照列表顺序(由近到远),依次与DataNode建立管道连接,首先将block1发送到最近的DataNode中,当数据写入到DataNode内存时,当前DataNode会将数据通过管道分发到第二个DataNode节点,以此类推。
当最后一个DataNode接收到数据之后,便通过管道依次向上返回成功信息。客户端接收到成功信息后,便向NameNode报告block1写入成功,然后按照此步骤,依次存储剩余的block。
所有的block存储完成后,NameNode会在内存中生成文件所对应的元数据,提供数据查询功能。
<