HDFS Hadoop分布式存储系统详解
HDFS是Hadoop分布式文件系统的缩写,也是Hadoop的分布式文件系统。
高容错性。保存数据的多个副本。数据丢失后自动恢复
B.适合批量加工。移动计算而不是数据。暴露给计算框架的数据位置
C.适合大数据处理。1gb、1tb,甚至1pb的数据处理
文件数据超过100万份
. 10000个节点
D.它可以建立在廉价的机器上。通过多副本存储提高可靠性。提供容错和恢复机制
一、HDFS的优缺点
a .低延迟数据访问处理能力较弱访问响应。毫秒级很慢
低延迟和高吞吐量的请求处理能力很弱
B.大量小文件的访问处理能力较弱。会占用大量的命名节点内存。寻道时间超过读取时间
C.并发写入和随机文件修改
一个文件只有一个编写器。仅支持追加写入
1.HDFS优点:
![](https://www.baoge.net/d/file/p/2021/08-22/3df20a3250c45cbb437dfd1e5b22844c.jpg)
如上图所示,HDFS也遵循主从结构。有几个角色:名称节点、辅助名称节点和数据节点。
名称节点:它是一个主节点,也是一个伟大的领导者。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的命名空间;
Secondarynamenode:一个弟弟,分担大哥namenode的部分工作量;是名称节点的冷备份;在将fsimage和fsedits发送到namenode之前将其合并。
数据节点:从节点,从,工作。负责存储数据块;由客户发送;执行数据块的读写操作。
热备份:B是A的热备份,如果A坏了。然后b立即运行作业,而不是a。
冷备份:b是a的冷备份,如果a坏了。那么b不能马上代替a。但是B存储了A的一些信息,减少了A崩溃后的损失。
fsimage:元数据映像文件(文件系统的目录树。)
编辑:元数据操作日志(文件系统的修改操作记录)
namenode内存存储=fsimage编辑。
Secondarynamenode负责将默认时间设置为1小时,从namenode获取fsimage和编辑进行合并,然后发送到namenode。减少namenode的工作量。
2.HDFS缺点
1.文件被切割成实体数据块A.默认的块大小是64MB,并且块大小是可配置的
b .如果数据块的大小小于64MB,则该数据块被分成一个数据块
2.一种文件存储方法
A.根据大小切割成几个块,并存储在不同节点上
B.默认情况下,每个块有三个副本
客户端上传文件时,会设置数据块的大小和副本数量。文件上传成功后,可以更改副本数量,但不能更改块的大小。
二、HDFS的架构
![](https://www.baoge.net/d/file/p/2021/08-22/945dc007b3461df1c820dcd01948901b.jpg)
一个50G的文件被上传到HDFS。首先,文件被切割成几个64MB的块。块1在节点1、节点2和节点3上存储3个副本(可以设置默认的3个副本),块2在节点2、节点3和节点4上存储3个副本.直到所有块存储3个副本。
三、HDFS数据存储单元(block)
四、HDFS设计思想
a .接受客户的读写服务B.保存元数据信息,包括:文件的权限和权限,文件包含哪些数据块,数据块保存在哪些数据节点上(启动时由数据节点报告)
c.NameNode的元数据信息将在启动后加载到内存中
的文件。存储在磁盘上的元数据信息是“fsimage”
的位置信息。块未保存在fsimage中(由数据节点报告)
在中保存元数据的操作日志。实验数字电视系统
五、NameNode(NN)、 SencondryNameNode (SNN)、DataNode(DN)
a .不是NN的备份(但可以做NN的部分备份)。它的主要工作是帮助神经网络合并编辑日志,减少神经网络的启动时间B.SNN合并机会。根据配置文件设置的时间间隔,fs.checkpoint.period默认为3600秒。编辑日志大小根据配置文件fs.checpoint.size设置。默认编辑日志大小为64MB
C.SNN合并过程
1不创建新的编辑日志来替换旧的编辑日志
2NN将fsimage和旧的编辑内容复制到SNN
对3SNN进行合并操作以生成新的fsimage
4将新的fsimage复制到神经网络
使用新的fsimage和新的编辑日志
1.NameNode (NN) 的工作
a .存储几个区块B.当DN线程启动时,DN将自动向NN报告块信息
C.NN向DN发送心跳检测,并与DN保持联系(每3秒一次)。如果NN连续10分钟没有收到DN的心跳,则认为DN已经丢失,从其他DN备份DN上的所有块。
D.d.block的放置策略
。第一个副本放在上传文件的DN上。如果是在集群外提交,则随机选择存储在磁盘、内存和CPU不太忙的节点中。第二个副本放置在与第一个副本不同的机架上的节点上。第三个副本与第二个副本放在同一机架上的相邻节点上
随机放置更多副本
2.SecondryNameNode(SNN) 的工作
3.DataNode (DN)
![](https://www.baoge.net/d/file/p/2021/08-22/c256ef664d3aa0c0d09e6292c3cbae8e.jpg)
示例:
有一个文件大小为100米。客户将文件写入HDFS。
默认情况下会配置HDFS。
HDFS分布在三个机架中:机架1、机架2和机架3。
A.客户端将FileA分成64M块。分为两个区块,区块1和区块2;
B.客户端向nameNode发送数据写请求,如蓝色虚线所示。
C.名称节点,记录块信息。并返回可用的数据节点,如粉色虚线。
Block1:主机2、主机1、主机3
Block2:主机7、主机8、主机4
原则:
名称节点具有机架感知机架感应功能,可以进行配置。
如果客户端是DataNode节点,存储块时,规则是:copy 1,与客户端在同一个节点上;副本2,在不同的机架节点上;副本3,与第二个副本位于同一机架的另一个节点上;其他副本是随机选择的。
如果客户端不是DataNode节点,存储块时,规则是:复制1,随机选择一个节点;副本2,不同副本1,放在架子上;副本3,与副本2在同一节点上;其他副本是随机选择的。
d .客户端发送block1到DataNode发送过程由流编写。
1将64M块1分成64k包;
2然后将第一个包发送到host2
3 host2收到后,将第一个包发送给host1,客户端希望host 2发送第二个包;
4收到第一个数据包后,4host1将其发送到host3,并从host2接收第二个数据包。
5以此类推,如图中的红线和实线所示,直到发送block1。
6主机2、主机1、主机3向名称节点发送通知,主机2向客户端发送通知,表示“消息已发出”。如粉色实线所示。
从主机2收到消息后,7client向namenode发送消息,说我已经写完了。所以真的结束了。如黄色粗实线所示
8发送块1后,将块2发送到主机7、主机8和主机4,如图中蓝色实线所示。
9发送数据块2后,主机7、主机8、主机4向NameNode发送通知,主机7向Client发送通知,如图中浅绿色实线所示。
10client向NameNode发送消息,说我写完了,如黄色粗实线所示。结束了。
分析一下,通过写作过程,我们可以了解到:
(1)写1T的文件,我们需要3T的存储和3T的网络流量贷。
在读写过程中,NameNode和DataNode通过HeartBeat相互通信,确认DataNode是活的。如果发现数据节点失效,将失效数据节点上的数据放入其他节点。读取时,读取其他节点。
3挂掉一个节点,没关系,还有其他节点可以备份;甚至,挂了某个机架也没关系;其他机架上也有备份。
2.阅读流程
示例:
读取操作更简单,如图所示,客户端需要从datanode读取FileA。而FileA由块1和块2组成。
那么,读操作流程是:
A.client向namenode发送读取请求。
名称节点检查元数据信息并返回文件块的位置。
block1:host2、host1、host3
block2:host7主机7、主机8、主机4
C.c块的位置有一个序列,首先读取块1,然后读取块2。block1转到host2读取;然后块2,去主机7读;
六、HDFS的写流程和读流程
1.类似于linux系统文件权限R :读w :写x :执行权限x对于文件被忽略,并指示是否允许访问文件夹
2.如果linux系统的用户张山使用hadoop命令创建一个文件,那么这个文件在HDFS的所有者就是张山。
3.3的目的。HDFS权威:阻止好人做错事,不阻止坏人做坏事;例:只要是张山上传的文件,HDFS就认为这个文件是张山的。下次张山来操作,不用密码验证就可以操作。
1.HDFS写流程
将在NameNode启动后的一段时间内处于安全模式。在安全模式下,只能查看和修复其他操作,因为NN和DN在安全模式下需要做很多工作;1.当1。NN启动时,需要将fsimage加载到内存中,并执行编辑日志中的所有操作。
2.在文件系统中建立新的元数据映射后,创建新的fsimage文件(与SNN合作)和空的edits文件
3.安全模式下的NameNode对客户端是只读的(文件目录、内容等)。并且其他删除、修改和重命名操作将失败)
4.在安全模式下,名称节点将从数据节点报告的块中收集信息。如果DN报告的块的最大副本数大于设置的最小副本数,将被视为“安全”。
如果一个块的副本数没有达到设定的最小副本数,该块将被复制,直到达到设定的最小副本数。
摘要
以上是边肖介绍的Hadoop分布式存储系统HDFS的例子的详细说明。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你的!
版权声明:HDFS Hadoop分布式存储系统详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。