Hadoop:HDFS读写操作图解
记录hadoop学习之旅的问题和笔记,89lovelc,加油
HDFS写操作(文件上传)
- 1.客户端里面的分布式文件系统DistributedFileSystem请求NameNode服务器,将text.txt(大于128M)上传到/user/admin 目录下
- 2.NameNode服务在内存中检查和DataNode服务器传过来的信息,返回可以上传
- 3.客户端继续问NameNode服务,我要上传第一个block,放在那几台机子上啊
- 4.NameNode根据返回datanode地址dn1,dn2,dn3
- 5.客户端通过FSDataOutputStream,连接dn1请求上传数据,dn1收到请求调用dn2,dn2收到请求调用dn3
- 6.dn3,dn2,dn1逐级给答复
- 7.客户端开始往 dn1 上传第一个 block(先从磁盘读取数据放到一个本地内存缓存),以packet 为单位,dn1 收到一个 packet 就会传给 dn2,dn2 传给 dn3;dn1 每传一个 packet 会放入一个应答队列等待应答。
- 8.当完成第一个block的传输的时候,客户端将会告诉namenode请求第二个block的上传的位置(重复3-7),直到完成数据。
HDFS读操作(文件下载)
- 1.客户端DistributedFileSystem请求namenode服务,读取/user/admin/test.txt文件
- 2.namenode查询数据(就近原则),返回元数据信息
- 3.datanode 开始传输数据给客户端(从磁盘里面读取数据输入流,以 packet 为单位来做校验)
- 4.客户端以 packet 为单位接收,先在本地缓存,然后写入目标文件。