一、HDFS读取文件操作:
客户端发起读文件请求,向NameNode发送请求(当然还有第二个NameNode),由于NameNode存放着DataNode的信息,比如说数据块的存放信息等,所以NameNode会向客户端返回元数据,这些元数据包含了数据块的信息等。客户端得到元数据后直接去读取数据块,实现了文件的读取。
二、HDFS写文件操作:
客户端得到文件后将文件进行分块,这些分块的数据信息会写入NameNode,同时复制到SecondaryNameNode ,然NameNode会告诉客户端DataNode的情况,比如该如何写啊,哪个数据块放在哪等等。客户端得到这些信息后就向DataNode开始写数据(以数据块的格式),然后DataNode会以流水线方式复制,因为要保证数据有3份嘛,这些操作完成之后会把DataNode的最新信息反馈到NameNode。再有数据来的时候按照上述过程流式进行。