HDFS写数据流程
①首先,HDFS客户端利用分布式文件系统向名称节点发出写文件请求。②名称节点通过多种验证(检查是否已存在文件,检查权限等),如果验证不通过,则会拒绝客户的上传;如果验证通过,响应客户可以上传数据。③客户端收到可以上传的响应后,会把待上传的文件切块(图中第二次)(默认块大小为128M);然后再次给namenode发送请求,上传第一个block块。④名称节点收到数据块之后会先确定将块存在哪个数据节点上,确定后会返回给客户端一组可上传的节点信息。⑤客户端收到数据节点的节点信息后会就近数据节点建立连接,然后这个数据节点会与其他数据节点建立联系,确定可以上传数据后返回信息给客户端,表明数据可以进行传输。⑥客户端首先会就近向第一个节点写入块的数据,这个块收到数据后会存到本地一份,然后给其他数据节点发一份做备份。(如图数据节点-数据节点1;数据节点1-数据节点2)⑦第一个块写完后,客户端会重复继续切块的步骤,直至传输完毕。⑧最后一步:写完数据,关闭输出流,并将信号发给名称节点。