大数据开发——Hadoop三大核心之HDFS基本原理与工作机制(二)

「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战」。

3. HDFS 的架构

HDFS是一个 主/从(Mater/Slave)体系结构 。

HDFS由四部分组成,HDFS Client、NameNode、DataNode和Secondary NameNode。

图片.png

1、Client:就是客户端。

文件切分。文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。

与 NameNode 交互,获取文件的位置信息。

与 DataNode 交互,读取或者写入数据。

Client 提供一些命令来管理 和访问HDFS,比如启动或者关闭HDFS。

2、NameNode:就是 master,它是一个主管、管理者。

管理 HDFS 的名称空间

管理数据块(Block)映射信息

配置副本策略

处理客户端读写请求。

3、DataNode:就是Slave。NameNode 下达命令,DataNode 执行实际的操作。

存储实际的数据块。

执行数据块的读/写操作。

4、Secondary NameNode:并非 NameNode 的热备。当NameNode 挂掉的时候,它并不

能马上替换 NameNode 并提供服务。

辅助 NameNode,分担其工作量。

定期合并 fsimage和fsedits,并推送给NameNode。

在紧急情况下,可辅助恢复 NameNode。

4:NameNode和DataNode

图片.png

4.1 NameNode作用

NameNode在内存中保存着整个文件系统的名称 空间和文件数据块的地址映射

整个HDFS可存储的文件数受限于NameNode的内存大小

1、NameNode元数据信息 文件名,文件目录结构,文件属性(生成时间,副本数,权限)每个文件的块列表。 以及列表中的块与块所在的DataNode之间的地址映射关系 在内存中加载文件系统中每个文件和每个数据块的引用关系(文件、block、datanode之间的映射信息) 数据会定期保存到本地磁盘(fsImage文件和edits文件)

2、NameNode文件操作 NameNode负责文件元数据的操作 DataNode负责处理文件内容的读写请求,数据流不经过NameNode,会询问它跟那个DataNode联系

3、NameNode副本 文件数据块到底存放到哪些DataNode上,是由NameNode决定的,NN根据全局情况做出放置副本的决定

4、NameNode心跳机制 全权管理数据块的复制,周期性的接受心跳和块的状态报告信息(包含该DataNode上所有数据块的列表) 若接受到心跳信息,NameNode认为DataNode工作正常,如果在10分钟后还接受到不到DN的心跳,那么NameNode认为DataNode已经宕机 ,这时候NN准备要把DN上的数据块进行重新的复制。 块的状态报告包含了一个DN上所有数据块的列表,blocks report 每个1小时发送一次

4.2 DataNode作用

提供真实文件数据的存储服务。

1、Data Node以数据块的形式存储HDFS文件

2、Data Node 响应HDFS 客户端读写请求

3、Data Node 周期性向NameNode汇报心跳信息

4、Data Node 周期性向NameNode汇报数据块信息

5、Data Node 周期性向NameNode汇报缓存数据块信息

猜你喜欢

转载自juejin.im/post/7033021625188646925