hdfs文件写入与读取过程

文件的写入过程:

  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进行合并成为一个完整的文件。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值