Hadoop生态圈三大组件:HDFS的读写流程、MapReduce计算流程、Yarn资源调度

1. HDFS的读写流程

1.1 HDFS读流程

  • 客户端首先向Namenode发送读取请求,询问要读取的文件存储在哪些数据节点上。
  • Namenode会根据机架感知原理、网络拓扑关系、副本机制等返回部分或者全部的block所在的Datanode的地址。
  • 客户端根据Namenode返回的地址,选择一个距离最近的Datanode节点来读取第一个数据块。客户端直接与该数据节点建立连接,并发送读取请求。
  • Datanode接收到读取请求后,开始从磁盘上读取相应的数据块,并将数据通过网络传输给客户端。
  • 客户端在接收数据的同时,会对数据进行校验,以确保数据的完整性。如果发现数据损坏,客户端可以向其他包含该数据块副本的数据节点请求重新读取。
  • 当客户端读取完一个Datanode后,会根据Namenode提供的块位置信息,选择下一个数据节点来读取下一个数据块。重复上述步骤,直到客户端读取完整个文件。
    在这里插入图片描述

1.2 HDFS写流程

  • 客户端向Namenode发送写入请求。
  • Namenode接收到写入请求后,首先判断当前这个操作的用户是否具有写入权限,如果不具备写入权限会直接报错;如果有写入权限,再进行判断在写入的目录下是否存在这个文件;如果要写入的目录下已经存在这个文件,会直接报错;如果要写入的目录下不存在这个文件,通知客户端可以写入。
  • 客户端对文件进行切分操作,形成block块。
  • 客户端请求第一个block块存储在哪些地方。
  • Namenode根据机架感知原理、拓扑关系、副本机制等,找到相应的可以上传的Datanode的连接列表,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值