大数据:Hadoop(HDFS 的设计思路、设计目标、架构、副本机制、副本存放策略)
原文:https://www.cnblogs.com/volcao/p/11444679.html
一、HDFS 的设计思路
1)思路
- 切分数据,并进行多副本存储;
2)如果文件只以多副本进行存储,而不进行切分,会有什么问题
-
缺点
- 不管文件多大,都存储在一个节点上,在进行数据处理的时候很难进行并行处理,节点可能成为网络瓶颈,很难进行大数据的处理;
- 存储负载很难均衡,每个节点的利用率很低;
二、HDFS 的设计目标
- Hadoop Distributed File System(HDFS):源于Google 的 GFS 论文;
-
设计目标
- 分布式存储:根据需要,水平横向增加节点;
- 运行在普通廉价的硬件上
- 易扩展、为用户提供性能不错的(如果廉价的硬件损坏,不会给用户带来严重损失)文件存储服务;
三、HDFS架构
- 一般一个 HDFS 的集群,由一个 NameNode(NN) 和 多个 DataNodes(DN) 组成;一般 NameNode 和 DataNodes 部署在不同的节点上;
-
NameNode:
- 管理文件系统的 namespace,以及客户端对文件的访问;
-
功能:
- 负责客户端请求的响应;
- 负责元数据(文件的名称、副本系数、Block存放的DataNode)的管理;
-
DataNodes
- 操作bolck的;一般每个节点有一个 DataNodes(集群上有几个节点,就对应有几个DataNodes,也一个节点也可以运行多DataNodes,不过一般不采用,使用一对一),管理文件应该存储到哪个节点上;
-
功能:
- 存储用户的文件对应的数据块(Block);
- 定期向NameNode发送本身及其所有的block信息,健康状况;
- Blocks 是根据blocksize进行切分的;(blocksize=128M,130M==>128M + 2M)
- namespaces:操作文件的;打开、关闭、重命名文件,或者重命名目录;
-
四、HDFS 的副本机制
- HDFS 支持多层级文件存储(文件夹里有其它文件夹),
- 对文件系统命名空间做的任何操作,都会被记录到 NameNode 中;
- 一个文件的所有 Block,除了最后一个Bolck,其它所有Block的大小都是一样的(与 Blocksize 相同);
-
五、HDFS 的副本存放策略
- 一般默认存放 3 份副本:也是容错安全考虑
- 第一个副本默认存放在当前操作的节点上;
- 第二个副本存放在不同与当前节点所在机架的某一个节点上;
- 第三个副本存放在与第二个副本相同机架的不同节点上;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
2017-07-30 项目梳理3
2017-07-30 项目梳理2
2017-07-30 项目结构梳理——依赖注入