HDFS数据的读写流程

简介: HDFS数据的读写流程

数据写入流程

image.png

1.客户端向NameNode发起请求

2.NameNode审核权限,剩余空间后,满足条件允许写入,并告知客户端写入的DataNode地址

3.客户端指向指定的DataNade发送数据包

4.被写入数据的DataNode同时完成数据副本的复制工作,将其接受的数据分发给其他DataNode

5.如上,DataNode1复制给DataNode2,然后基于DataNode2复制给DataNode3DataNode4

6.写入完成客户端通知NameNodeNameNode做元数据记录工作

 

 

关键信息点:

NameNode不负责数据写入,只负责元数据记录和权限审批

客户端直接向一台DataNode写数据,这个DataNode一般是离客户端最近(网络距离)的那一个(网络速度快)

数据块副本的复制工作,由DataNode之间自行完成(构造一个PipLine,按顺序复制分发,如图12234

 

 

数据读取流程

image.png

1.客户端向NameNode申请读取某文件

2.NameNode判断服务端权限等细节后,允许读取,并返回此文件的block列表

3.客户端拿到block列表后自行寻找DataNode读取即可

 

关键点:
1.数据同样不通过NameNode提供,NameNode只负责审查

2.NameNode提供的block列表,会基于网络距离计算尽量提供客户端最近的

因为1block3份,会尽量找离客户端最近的那一份让其读取

 

 

1.对于客户端读取DHFS数据的流程中,一定要知道

不论读,还是写,NameNode都不经手数据,均是客户端和DataNode直接通讯不然对NameNode压力大

2.写入和读取的流程,简单来说就是:

NameNode做授权判断(是否能写,是否能读)

客户端直连DataNode进行写入(由DataNode自己完成副本复制),客户端直连DataNode进行block读取

写入,客户端会被分配找自己最近的DataNode写数据

读取,客户端拿到block列表,会是网络距离最近的一份

3.网络距离

最近的距离就是在同一台机器

其次就是同一个局域网(交换机)

再其次就是跨越交换机

再其次就是跨越数据中心

HDFS内置网络距离计算算法,可以通过IP地址,路由表来推断网络距离

 

 

目录
相关文章
|
3月前
|
存储 安全
HDFS读写流程详解
HDFS读写流程详解
HDFS读写流程详解
|
1月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
35 4
|
1月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
33 2
|
1月前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
28 1
|
1月前
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
40 1
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
80 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
36 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
46 0
|
3月前
|
SQL 存储 分布式计算
HDFS数据(跨集群)迁移
HDFS数据(跨集群)迁移
|
1月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
142 6