Hadoop中HDFS的读写流程

Hadoop中HDFS的读写流程
1、客户端通过DistrubutedFileSystem向NameNode发出上传ss.avi文件的申请
2、NameNode检查HDFS是否存在ss.avi如果没有就同意请求
3、客户端会问NameNode有哪些DataNode可以上传我的第一个block块呢
4、NameNode告诉客户端能上传到哪些DataNode
5、客户端这时通过FSDataOutputStream向DataNode1申请传输通道,DataNode1继续把申请传给DataNode2,DataNode2又把申请传到DataNode3
6、三个存储节点收到请求会依次响应,这样客户端与这三个存储节点就建立联系
7、既然有了通信管道,客户端正式上传第一个block到DataNode1节点,block以packet(64kb)为单位放在内存缓冲区,依次传到DataNode2、3,以应答队列形式等待应答

Hadoop中HDFS的读写流程
1、客户端通过DistributedFileSystem向NameNode请求下载ss.avi文件
2、NameNode告诉客户端ss.avi的元数据信息(数据的存储位置)
3、客户端知道ss.avi文件在哪里后就通过FSDataInputStream去请求所在DataNode节点的数据
4、DataNode相应请求,以read()函数并行读取block块文件块,读完后关闭流,最终把所有的block合并成一个完整的文件。