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 读取数据块。

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

相关推荐
JavaShooter1 天前
argodb自定义函数读取hdfs文件的注意点,避免FileSystem已关闭异常
大数据·hadoop·hdfs
无休居士2 天前
分布式存储系统中HDFS和OSS有什么区别?如何选择?
大数据·hadoop·hdfs·oss对象云存储·oss迁移
Mephisto.java4 天前
【Hadoop|HDFS篇】NameNode和SecondaryNameNode
大数据·hadoop·hdfs
Mephisto.java7 天前
【Hadoop|HDFS篇】HDFS的读写流程
大数据·hadoop·hdfs
Mephisto.java7 天前
【Hadoop|HDFS篇】DataNode
大数据·hadoop·hdfs
Mephisto.java9 天前
【Hadoop|HDFS篇】HDFS的Shell操作
大数据·hadoop·hdfs
知其_所以然11 天前
Hadoop之HDFS的原理和常用命令及API(java)
大数据·hadoop·hdfs
呆呆不呆~18 天前
flink--会话模式与应用模式
大数据·hdfs·zookeeper·flink·kafka
呆呆不呆~20 天前
数据采集-->kafka-->hdfs
大数据·分布式·hdfs·kafka·flume
呆呆不呆~24 天前
flume--数据从kafka到hdfs发生错误
大数据·分布式·hdfs·kafka·flume