HDFS读写图解
这是读写全流程,大家感应一下。
HDF文件读流程
这是我觉得比较浅显易懂的图片,下面我对该图片的步骤进行详解:
1. 利用FileSystem的open()方法打开文件
2. 通过访问NN获取部分或全部块的信息
3. 利用FSDataInputStream的read()方法发出读取请求
4. 选择DN读取数据,先进行信息文件校验,然后再读取信息
5. 如果只读取部分块,则继续访问NN,获取剩余块信息
6. 继续重复步骤4
7. 关闭文件
HDFS文件写流程
1. 利用FileSystem的creat()方法,提出创建文件请求
2. 访问NN,并在NN中创建一个没有块信息只有文件名的空文件
3. 利用FSDataInputStream的write()方法,发出写数据请求
4. 写入数据包,写入第一个DN,写完一个块立即复制到第二个块,以此类推,用流水线的方式写入
5. 返回一个接受确认包(ack packet)
6. 关闭文件并刷新(flush)
7. 利用FileSystem的compelet()函数将映射关系写入NN