HDFS写数据宏观流程
客户端使用rpc通信框架向NameNode发送请求,NameNode接收并处理用户请求,同时检测用户是否拥有上传文件操作的权限。磁盘空间是否可用,路径是否存在,
NameNode会针对这个文件创建一个空的Entry对象,并返回成功的状态给DFS,
如果DFS接收到成功的状态,会创建FSDataOutPutStream的对象给客户端使用,
客户端会向NameNode获取文件存储在HDFS中所需要的所有DataNode节点,
NameNode针对这个文件产生的block块进行分配DataNode节点,DatatNode节点之间会形成Pipline通道,
NameNode会将这些划分好block块的所有DataNode节点的信息给到客户端
客户端通过机架感知,与最近的DataNode建立联系
客户端会将每个block块默认划分成2048个packet进行发送,每次发送一个packet,
每传送完成一个packet节点到最后一个节点且最后一个节点收到了会返回确认值ack,客户端收到后会继续发送下一个packet,直到所有的block的所有packet发送完毕,
当最后一个block块中的最后一个packet发送完毕之后,释放FSDataOutPutStream对象,关闭DataNode之间的pipline通道
标签:HDFS,流程,宏观,packet,DataNode,NameNode,节点,block,客户端 From: https://www.cnblogs.com/peculiar/p/18194170