HDFS体系架构&文件写入/下载流程

HDFS体系架构

HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是Hadoop项目中的一个核心组件,旨在以高容错、高吞吐量来处理大规模数据集。它的体系架构由以下几个主要部分组成:Client,NameNode,DataNode,SecondaryNameNode

1.Client:客户端

1.文件切分
2.与NameNode交互,获取文件元数据信息
3.与DataNode交互,读取或写入数据
4.与HDFS进行交互

2.NameNode:Master(管理者)

1.管理HDFS的元数据空间
2.管理block块的映射信息
3.接受DataNode心跳,管理DataNode信息
4.处理客户端的读写请求

3.DataNode:Slave(NN下达命令执行实际的操作)

1. 存储实际的数据块
2.执行数据块的读写操作
3.向NameNode发送心跳,以及block块汇报

4.Secondary NameNode

1.并非NameNode的热备份,当NameNode停止服务的时候不能马上代替NameNode
2.辅助NameNode,分担工作量
3.定期合并fsimage和editslog,推送给NameNode
4.紧急情况下可以辅助恢复namenode

HDFS写入/下载流程

客户端 请求 NameNode 创建一个新文件。

NameNode 检查文件是否已存在,并验证客户端权限。

NameNode 创建一个新文件条目,返回给客户端数据块的位置信息(即哪些 DataNode 将存储数据块的副本)。

客户端 按顺序将数据块写入到指定的 DataNode。

DataNode 将数据块复制到其他 DataNode 以确保副本数量。

DataNode 向 NameNode 报告已存储的数据块信息。

客户端 请求 NameNode 读取文件。

NameNode 返回文件的元数据和数据块位置信息。

客户端 按顺序从相应的 DataNode 读取数据块。

客户端 汇总数据块,呈现完整文件。

相关推荐
BD_Marathon2 天前
java.io.FileNotFoundException: File does not exist: hdfs://master:9000/sparklog
大数据·hadoop·hdfs
T***16073 天前
ConfigMap:解耦应用配置的利器
hdfs·ruby·express
阿杜杜不是阿木木9 天前
在 Hadoop 生态使用 JuiceFS,并为Hive提供HDFS存储安装指南
hive·hadoop·hdfs
q***318910 天前
深入解析HDFS:定义、架构、原理、应用场景及常用命令
hadoop·hdfs·架构
q***656913 天前
深入解析HDFS:定义、架构、原理、应用场景及常用命令
hadoop·hdfs·架构
yumgpkpm20 天前
CMP7(类Cloudera CMP 7 404版华为Kunpeng)用开源软件Label Studio做数据标注
hdfs·flink
橙-极纪元21 天前
文件存储服务有哪些?他们优缺点分别是什么?FastDFS、MinIO、Ceph、HDFS、MooseFS、TFS、七牛云、阿里云 OSS
hdfs·minio·七牛云·tfs·fastdfs·阿里云 oss·文件存储服务
easy_coder22 天前
从HDFS NN报错看Flink+K8s+HDFS:基础、架构与问题关联
hdfs·flink·kubernetes
笨蛋少年派1 个月前
使用hdfs命令报错:Unknown command:dfs(环境变量正确)
大数据·hadoop·hdfs
vivo互联网技术1 个月前
vivo HDFS EC 大规模落地实践
大数据·hdfs