HDFS的两大核心

本文详细介绍了HDFS的两大核心——写数据和读数据的全过程,包括客户端与NameNode的交互、数据块的切分与上传、副本的存储策略等。此外,还阐述了元数据合并的条件与步骤,以及NameNode、DataNode和SecondaryNameNode在HDFS中的角色和职责。

HDFS的两大核心包括写数据读数据,这是HDFS的一个重点,下面笔者就讲解一下两大核心的过程。同时,笔者也会讲解一下元数据的合并过程。

写数据

1.客户端向NameNode发送文件上传请求;
2.NameNode进行一系列的检查:权限、文件的父目录是否已经存在。检查通过之后,允许上传;
3.允许客户端上传;
4.客户端发送真正的文件上传请求,请求包含一个重要的信息:文件的长度、大小;
5.NameNode根据文件的长度计算文件的切块个数。(例,文件大小为200M,按照每块128M的大小进行切分,一共被且分为2份
NameNode获取副本的配置信息。(dfs.replication=3
NameNode返回副本的节点信息的时候,遵循就近原则
6.客户端准备上传文件;
7.客户端对文件进行一个逻辑切块;
8.开始上传第一个数据块;
9.构建第一个数据块的上传通道pipline(构建通道的时候,客户端启动一个阻塞进程,等待DataNode的响应);
10.开始第一个数据块的数据上传,客户端上传第一个数据块,先上传到内存中,再到磁盘中。然后第一个副本向第一个数据块进行数据拷贝,第二个副本向第一个副本进行数据拷贝。(文件上传的过程中,以packet为单位进行传输、64K为单位进行写入。
数据块的真实切分客户端边上传边切分,第一个数据块到128M之后,第一个数据块切分完成;
11.第一个数据块上传完成,关闭当前的pipline;
12.开始上传第二个数据块;
13.重复上面9、10、11的步骤;
14.当所有的数据块上传完成,客户端向NameNode反馈。

读数据

1.客户端向NameNode发送文件下载请求;
2.NameNode会进行一系列的检查:权限、文件是否存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值