《Hadoop权威指南》之HDFS文件读写的过程

本文详细介绍了Hadoop HDFS的文件读写过程。在读取时,客户端通过FileSystem打开文件,NameNode返回文件块列表,客户端按顺序从最近的DataNode读取并关闭连接。而在写入时,客户端向NameNode发起请求,DataNode接收数据并异步复制,所有DataNode确认后写操作完成。HDFS的一致性模型确保了文件系统的状态管理。
摘要由CSDN通过智能技术生成

文件读取示意图

1、首先客户端通过FileSystem(就是HDFS的一个实例)的open方法打开要读取的实例

2、通过RPC调用请求NameNode这个文件的起始块的信息,NameNode会向客户端返回一个带有这个文件的起始块的列表

    这个列表是排好序的,即按照存在起始块的DataNode和客户端的距离(根据网络拓扑结构确定)

3、客户端对最近的DataNode节点调用Read方法读取文件,需要时还会再次向NameNode节点发送请求下一批块的位置信息

4、当读完所有的块客户端关闭连接

 

文件写入示意图

 

 

1>客户端向NameNode发起写请求,首先在NameNode的系统文件命名空间中新建一个文件名

2>向DataNode节点写数据,写数据的同时DataNode会做异步的复制工作即把Block复制到别的节点上

3>每写一个节点的数据后该DataNode会向客户端发送一个消息,当所有的DataNode(不包括异步复制的DataNode)都向客户    端发送确认消息后表示文件写操作完成

 

补充:

   A:上传的Block复制到哪些DataNode中

      1>如果客户端运行在HDFS集群内部,那么副本1就放在本机

          如果客户端运行在HDFS集群外部,那么副本1就随机挑选一台存储不繁忙的机器节点

      2>副本2复制到与副本1不在同一个机架上的机器节点上

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值