博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdfs文件写入与读取过程
阅读量:3967 次
发布时间:2019-05-24

本文共 723 字,大约阅读时间需要 2 分钟。

文件的写入过程:

  1. client向namenode请求上传a.txt
  2. namenode检测client的上传权限
  3. namenode回答client是否可以上传
  4. client将文件按照block_size大小将文件分为几份,并向namenode请求上传一个block
  5. namenode根据datanode上的block信息和机架感知选择三个主机放置三个副本(hadoop默认三个),并生成可以上传的datanode的列表。
  6. 将生成的可以上传的datanode的列表,这时client就可以直接通过pipeline与datanode通信或者传递信息。
  7. client与一个datanode建立pipeline,datanode之间也会建立pipeline
  8. client将block以packet(64k)为单位传递给datanode
  9. 三个datanode分别将packet信息缓存,此即将block分别复制三个副本。
  10. 缓存之后datanode会向client发送应答,这样一直进行文件的上传完成副本的缓存与文件的上传。
    在这里插入图片描述

文件的读取过程

  1. RPC:向namenode发出请求下载a.txt
  2. namenode对client进行权限检查,同时对block的文件存在dn进行检查并选出每一个block对应的主机列表
  3. 向client返回每一个block对应的主机列表。
  4. client按照返回的主机列表和每一个block所在的主机建立pipeline进行数据读取,且每一个block都需要建立一个pipeline,并行读取
  5. 开始读取数据,按照packet(64k)的单位进行读取
  6. block全部读取到client中,client将block进行合并成为一个完整的文件。

在这里插入图片描述

转载地址:http://rncki.baihongyu.com/

你可能感兴趣的文章
输入子系统设备模型分析
查看>>
输入子系统设备模型分析
查看>>
USB驱动程序之描述符
查看>>
USB驱动程序之描述符
查看>>
一般的,在s3c2440中,要想进行dma…
查看>>
一般的,在s3c2440中,要想进行dma…
查看>>
2011年05月29日
查看>>
2011年05月29日
查看>>
2011年05月29日
查看>>
2011年05月29日
查看>>
ARM Linux中断机制之中断的初始化
查看>>
ARM Linux中断机制之中断的初始化
查看>>
USB驱动之描述符
查看>>
USB系统设备模型建立流程
查看>>
DMA原理
查看>>
USB系统设备模型建立流程
查看>>
杂项设备实现原理
查看>>
DMA原理
查看>>
stat.h头文件,轻松获取文件属性(2…
查看>>
杂项设备实现原理
查看>>