【HDFS】Hadoop的分布式文件系统知识点总结

news/2024/5/20 1:56:28 标签: hadoop, hdfs, 分布式

>_<

首先,我们需要从整体上了解什么是分布式文件系统 >_<。
 
分布式文件系统把文件存储到多个计算机节点上,成千上万的计算机节点构成计算机集群
计算机集群听着高大上,其实是由普通廉价硬件组成,硬件开销是极低的!
 
在这里插入图片描述
好了,我们已经知道分布式文件系统是由计算机集群上的多个节点组成的——这些节点分为两类:

  1. 名称节点(NameNode),也称为主节点(MasterNode)
  2. 数据节点(DataNode),也称为从节点(SlaveNode)
     在这里插入图片描述

 
 
 

一·HDFS简介

HDFS是一种分布式文件系统:Hadoop Distributed File System(即“Hadoop的分布式文件系统”)
 
HDFS的目标

  1. 兼容廉价的硬件设备
  2. 流数据读写
  3. 大数据集
  4. 简单的文件模型
  5. 强大的跨平台兼容性

HDFS的局限性

  1. 不适合低延迟数据访问
  2. 无法高效存储大量小文件
  3. 不支持多用户写入及任意修改文件

 
 

二·HDFS相关概念

 
块(Block)

一个大规模文件被分为多个块,以块作为存储单位。HDFS默认一个块64MB

比起其他文件系统,这个块其实真的已经非常非常大了。

下面介绍块的好处(一定要多理解 >_< !):

  1. 支持大规模文件存储。因为一个大规模文件可以被拆分为多个文件块,这些文件块可以被分到不同的节点。这样文件大小就脱离了单个节点大小的限制
  2. 简化系统设计。每个块足够大,而且大小固定,因此索引开销很小;其次,文件块和元数据是脱离的,管理更加方便
  3. 适合数据备份。每个文件块可以冗余到多个节点上,进行备份
     

名称节点和数据节点

名称节点 NameNode数据节点 DataNode
维护文件数据节点的映射维护块id本地文件的映射
存储元数据存储文件内容
元数据位于内存文件内容位于磁盘

一些相关细节:

  1. 名称节点由两个核心的数据结构组成:
    在这里插入图片描述

  2. 由上图不难看出,EditLog的作用是日志备份
    它通常可以达到GB级,并且会不断膨胀。为了解决名称节点运行期间EditLog不断膨胀的问题,采用了SecondaryNameNode——第二名称节点
     
    第二名称节点通常单独运行在一台机器上。

 

 

三·HDFS体系结构

主从结构模型(Master/Slave)

在这里插入图片描述

通信协议

基于网络传输,因此采用TCP/IP协议
 
客户端

打开、读取、写入这些文件操作,都是在客户端进行

但是客户端仅仅知道文件名,要想真正操作文件的内容,需要先向名称节点提出请求,名称节点存有根目录→目录→文件→数据节点的映射,因而名称节点可以给客户端一个数据节点的列表,从而让他得以找到真正的数据节点。

 
体系结构局限性

HDFS体系结构的局限性都来源于:只设置 唯一 名称节点(NameNode)

  1. 命名空间的限制:名称节点毕竟是在内存中,实在是受限
  2. 性能的瓶颈:名称节点的性能瓶颈,就是整个系统的性能瓶颈
  3. 隔离问题:只有一个名称节点,自然无法隔离
  4. 集群的可用性:名称节点出问题,整个集群直接玩完

 
 

四·HDFS存储原理

冗余数据保存

增加数据容错性可靠性的惯用伎俩——冗余备份
 
数据存取

存放:副本不仅要随机放到不同节点,还要让这些节点属于不同机架

读取:客户端请求读取时,从名称节点那里要来一个数据节点列表,上面有所有的副本
 
错误与恢复

  1. 名称节点出错:名称节点(FsImage+EditLog)出错整个集群就全完了——幸好有第二名称节点(SecondaryNameNode)做了备份
  2. 数据节点出错:数据节点会定期向名称节点发送心跳,心跳停止则说明该数据节点出错——这没什么,数据节点的冗余备份多的是
  3. 数据出错:通过读取数据信息后进行校验,得知是否出错——出错了也没什么,原因还是有备份

 

 

 

 

 

 

 


http://www.niftyadmin.cn/n/1330366.html

相关文章

键盘有毒(STL() || 数组模拟双向链表)

ACM汇总学习:https://blog.csdn.net/weixin_39778570/article/details/83187443 Broken Keyboard 题目&#xff1a;https://vjudge.net/problem/UVA-11988 Sample Input This_is_a_[Beiju]_text [[]][][]Happy_Birthday_to_Tsinghua_University Sample Output BeijuThis_is_a__…

【计组3.5】双端口RAM和多模块存储器

第三章——存储系统 3.1 半导体存储器RAM 3.2 半导体存储器ROM 3.3 存储器基本概念 3.4 主存与CPU的连接 3.5 双端口RAM和多模块存储器 3.6 高速缓冲存储器Cache 3.7虚拟存储器

UVA - 12657(双向链表,左插入,右插入,交换,翻转)

Boxes in a Line ACM汇总学习:https://blog.csdn.net/weixin_39778570/article/details/83187443 题目&#xff1a;https://vjudge.net/problem/UVA-12657 题目&#xff1a;模拟链表4中操作&#xff0c;x左插入y&#xff0c;x右插入y&#xff0c;x交换y&#xff0c;翻转链表&am…

【计组4.1】指令格式

第四章——指令系统 4.1 指令格式 4.2 指令的寻址方式 4.3 CISC和RISC的基本概念

Princess Principal(多括号匹配,区间合法查询)

ACM题集&#xff1a;https://blog.csdn.net/weixin_39778570/article/details/83187443 Princess Principal 题目&#xff1a;https://ac.nowcoder.com/acm/contest/201/J 题意&#xff1a;使用数组代表括号&#xff0c;0,1为一对左右括号&#xff0c;1,2为另一对&#xff0c;3…

【计组4.2】指令的寻址方式

第四章——指令系统 4.1 指令格式 4.2 指令的寻址方式 4.3 CISC和RISC的基本概念

【计组4.3】CISC和RISC的基本概念

第四章——指令系统 4.1 指令格式 4.2 指令的寻址方式 4.3 CISC和RISC的基本概念

深度优先搜索DFS(洛谷)

ACM题集&#xff1a;https://blog.csdn.net/weixin_39778570/article/details/83187443 P1219 八皇后 题目&#xff1a;https://www.luogu.org/problemnew/show/P1219 题意&#xff1a;N皇后问题求解个数,部分输出 解法&#xff1a;回溯搜索每一行放置在哪一列就行 #include&l…