论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
云原生
›
HDFS架构
HDFS架构
羊蹓狼
金牌会员
|
2024-10-29 01:06:51
|
显示全部楼层
|
阅读模式
楼主
主题
828
|
帖子
828
|
积分
2484
HDFS架构
HDFS的全称为 Hadoop Distributed File System,是解决分布式存储的分布式文件体系
HDFS采用 Master/Slave 架构存储数据,且支持NameNode的HA
HDFS的优缺点
长处:
(1)高容错性
(2)得当大数据处置惩罚
(3)流式数据访问
(4)可构建在便宜的呆板
缺点:
(1)不得当低延时数据访问场景
(2)不得当小文件存取场景
(3)不得当并发写入,文件随机修改场
HDFS架构重要包含客户端(Client),NameNode(NN),DataNode(DN) 和SecondaryNameNode(SNN)四个紧张组成部分。
NameNode:
管理文件体系的Namespace元数据
一个HDFS集群只有一个Active的NN
DataNode:
数据存储节点,保存和检索Block
一个集群可以有多个数据节点
SecondaryNameNode:
合并NameNode的edit.log到fsimage文件中
辅助NN将内存中元数据信息长期化
HDFS的重要流程
(图片侵权可删)
(1)客户端向NameNode发起哀求,获取元数据信息,这些元数据信息包括定名空间、块映射信息及 DataNode 的位置信息等。
(2)NameNode 将元数据信息返回给客户端
(3)客户端获取到元数据信息后,到相应的 DataNode 上读/写数据
(4)相干联的 DataNode 之间会相互复制数据,以达到 DataNode 副本数的要求
(5)DataNode 会定期向 NameNode 发送心跳信息,将自身节点的状态信息报告给 NameNode
(6)SecondaryNameNode 并不是 NameNode 的备份,SecondaryNameNode 会定期获取NameNode 上的 fsimage和 edits log 日记,并将二者进行合并,产生 fsimage.ckpt推送给 NameNode
NameNode 【元数据节点】
NameNode 是整个 Hadooop 集群中至关紧张的组件,它维护着整个 HDFS 树,以及文件体系树中所有的文件和文件路径的元数据信息,这些元数据信息包括文件名,命令空间,文件属性(文件天生的时间、文件的副本数、文件的权限)、文件数据块、文件数据块与所在 DataNode 之间的映射关系等。
NameNode的重要功能
(图片侵权可删)
一旦 NameNode 宕机或 NameNode 上的元数据信息破坏或丢失,根本上就会丢失 Hadoop 集群中存储的所有数据,整个 Hadoop 集群也会随之瘫痪。
DataNode 【数据节点】
DataNode 是真正存储数据的节点,这些数据以数据块的形式存储在 DataNode 上。
一个数据块包含两个文件:
一个是存储数据自己的文件,
一个是存储元数据的文件(这些元数据重要包括数据块的长度、数据块的查验和时间戳)
DataNode运行的工作机制
(图片侵权可删)
(1)DataNode启动之后,向 NameNode 注册。
(2)NameNode 返回注册乐成的消息给 DataNode。
(3)DataNode 收到 NameNode 返回的注册乐成的信息之后,会周期性地向 NameNode 上报当前 DataNode 的所有块信息。
DataNode 向 NameNode 发送所有数据块的默认时间周期是 1h。
(4)DataNode 周期性地向NameNode 发送心跳信息,NameNode 收到 DataNode 发来的心跳信息后,会将DataNode 需要执行的命令放入到心跳信息的返回数据中,返回给 DataNode。
DataNode 向 NameNode 发送心跳信息的默认时间周期是 3s。
(5)NameNode 凌驾一定的时间没有收到 DataNode 发来的心跳信息,则 NameNode 会以为对应的 DataNode 不可用。
默认的超时时间是10min。
(6)在存储上相互关联的 DataNode 会同步数据块,以达到数据副本数的要求。
SecondaryNameNode 【Hadoop的检查点(checkpoint)】
SecondaryNmaeNode并不是NameNode的备份,在NameNode发生故障时也不能立刻接管NameNode的工作
SecondaryNameNode在Hadoop运行的过程中具有两个作用:
一个是备份数据镜像
另一个是定期合并日记和镜像
SecondaryNameNode 定期合并 NameNode 中的 fsimage 和 edits log,可以或许防止 NameNode 重启时把整个 fsimage 镜像文件加载到内存,淹灭过长的启动时间。
SecondaryNameNode的重要工作流程:
(图片侵权可删)
(1)SecondaryNameNode 会通知 NameNode 天生新的edits.log 日记文件。
(2)NameNode 天生新的 edits.log 日记文件,然后将新的日记信息写到新天生的 edits.log 日记文件中。
(3)SecondaryNameNode 复制 NameNode 上的 fsimage 镜像和 edits.log 日记文件,此时使用的是 http get 方式。
(4)SecondaryNameNode 将fsimage将镜像文件加载到内存中,然后执行 edits.log 日记文件中的操作,天生新的镜像文件 fsimage.ckpt。
(5)SecondaryNameNode 将 fsimage.ckpt 文件发送给 NameNode,此时使用的是 http post 方式。
(6)NameNode 将 edits.log 日记文件替换成新天生的 edits.log 日记文件,同样将 fsimage文件替换成 SecondaryNameNode 发送过来的新的 fsimage 文件。
(7)NameNode 更新 fsimage 文件,将此次执行 checkpoint 的时间写入 fstime 文件中。
补充: hadoop 中 fsimage 文件和 edits.log 文件的作用
它们共同构成了Hadoop分布式文件体系(HDFS)的元数据存储机制,共同用于长期化存储Hadoop分布式文件体系(HDFS)的定名空间信息和文件体系操作日记。
Hadoop 分布式文件体系(HDFS)旨在可靠地存储非常大的数据集,并以高带宽将这些数据集流式传输给用户应用步伐。为了实现这一目标,HDFS需要一种机制来管理文件体系的结构和内容,这正是 fsimage 文件和 edits.log 文件所承担的使命。
fsimage 文件现实上是一个快照,它展示了文件体系在某一时间点的状态,这个快照包括了所有数据块的位置、文件的属性以及目录树的结构等信息。
当 HDFS 启动或某个数据节点失败需要重启时,fsimage 文件提供了恢复文件体系状态所需的信息。
fsimage 文件对于确保数据的可靠性和体系的可用性至关紧张。
edits.log 文件则记录了对文件体系状态所做的所有修改操作。
每当有文件被创建、删除或修改时,相应的修改都会写入 edits.log 文件,这些修改操作随后会应用到 fsimage 文件上,以更新文件体系的快照状态。
edits.log 文件使得HDFS可以或许高效地处置惩罚大量的数据操作,同时保持对文件体系状态的实时反映。
这两个文件共同作用于Hadoop分布式文件体系的长期化。当HDFS启动时,它会使用 fsimage 文件来恢复文件体系的初始状态,然后通过回放 edits.log 文件中的操作日记来将文件体系恢复到最新状态。如许,即使体系瓦解大概需要重新启动,也可以或许确保文件体系的数据不会丢失,从而包管了体系的可靠性和稳定性。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
羊蹓狼
金牌会员
这个人很懒什么都没写!
楼主热帖
让你成为网络世界中有破坏力的人-HTTP ...
dolphinscheduler单机化改造
一文带你走进【内存泄漏】
一文搞懂static
day01-Tomcat框架分析
读高性能MySQL(第4版)笔记04_操作系 ...
保举开源项目:LuCI App AdGuardHome - ...
邮件管理数据库设计--MySQL
【C#】【System.Linq】一些便捷的数据 ...
MySQL 8.0.29 instant DDL 数据腐化问 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表