2023.12.12 HDFS的机制,数仓关系,维度建模
一.HDFS的架构
1.Client
发请求就是客户端.
文件切分,文件上传HDFS的时候,Client 将文件文件切分成一个一个的Block,然后进行存储,
与NameNode交互,获取文件的位置信息.
与DataNode交互,读取或者写入数据.
Client提供一些命令来管理和访问HDFS,比如启动或者关闭HDFS.
2.NameNode
就是master,他是一个主管,管理者.
处理客户端写入请求.
管理HDFS元数据(文件路径,文件的大小,文件的名字,文件权限,文件切割后的快BLOCK信息)
配置3副本备份策略.
3.DataNode
就是Slave 奴隶. NameNode 下达命令,DataNode执行实际的操作.
存储实际的数据块(block).
执行数据块的读/写操作
定时向namenode汇报block信息.
4.Secondary Namenode
并非NameNode的备份节点.当NameNode挂掉的时候,他并不能马上替换NameNode并提供服务.
只是辅助NameNode,对HDFS元数据进行合并,合并后再交给NameNode.
在紧急情况下,可辅助NameNode部分数据.
二.块和副本
block块:HDFS被设计成能够在一个大集群中跨机器可靠地存储超大文件,他将文件拆分成一系列的数据块进行存储,这个数据块被称为block,除了最后一个,所有的数据块都是同样大小的.
block块的大小默认为128M(为了容错,文件的所有block都会有副本,每个文件的数据块大小和副本系数都是可配置的)
副本系数默认3个
三.块副本机制
因为分布式存储会存在文件大小不一,不利于统一管理.
所以设定统一的管理单位,block块,块的统一大小128M,是为了方便统一管理
副本默认3个的原因:为了保证数据的安全性,通过多个副本备份解决,每个block块都有2个备份,每个副本都复制到其他服务器一份,每个块都有两个备份在其他服务器上,保证了数据的安全性.
四.三大机制
副本机制:为了保证数据安全和效率,block块信息存储多个副本,第一副本保存在客户端所在服务器,第二副本保存在和第一副本不同机架服务器上,第三副本保存在和第二副本相同机架不同服务器.
负载均衡机制:namenode为了保证不同的datanode中block块信息大体一致,分配存储任务的时候会优先保存在距离较近并且余量较大的datanode上.
心跳机制:datanode每隔三秒向namenode汇报自己的状态信息,如果某个时刻,datanode连续10次不汇报了,namenode会认为datanode有可能宕机了,namenode每5分钟发送一次确认消息,连续两次都没有收到恢复,就可以确认datanode宕机了.
机架感知机制:如何选择写入副本的datanode?
1.第一个副本选择本地机架,距离近,上传速度快.
2.第二个副本选择远程机架的随机节点,保证数据的可靠性.
3.第三个副本第二个副本所在机架的随机节点,而不是其他机架,是可以同时兼顾可靠性和效率的.
五.元数据存储的原理
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!