1 FileSystem经过RPC与NN通讯,NN返回该文件的部分或所有block列表(含有block拷贝的DN地址)。spa
2 选取举栗客户端最近的DN创建链接,读取block,返回FSDataInputStream。blog
1 当读到block结尾时,FSDataInputStream关闭与当前DN的链接,并未读取下一个block寻找最近DN。it
2 读取完一个block都会进行checksum验证,若是读取DN时出现错误,客户端会通知NN,而后再从下一个拥有该block拷贝的DN继续读。权限
3 若是block列表读完后,文件还未结束,FileSystem会继续从NN获取下一批block列表。请求
1 FileSystem向NN发出请求,在NN的namespace里面建立一个新的文件,可是并不关联任何块。方法
2 NN检查文件是否已经存在、操做权限。若是检查经过,NN记录新文件信息,并在某一个DN上建立数据块。im
3 返回FSDataOutputStream,将Client引导至该数据块执行写入操做。通信
HDFS默认将每一个数据块放置3份。FSDataOutputStream将数据首先写到第一节点,第一节点将数据包传送并写入第二节点,第二节点 --> 第三节点。数据
flush缓冲区的数据包,block完成复制份数后,NN返回成功消息。客户端