HDFS架构

HDFS主从架构

贴上一张官网的图:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
在这里插入图片描述

1.Namenode

Namenode称为名称节点 里边存放的是:
1.文件的名称
2.文件的目录结构
3.文件的属性(文件的权限、文件的副本数、文件的创建时间)如下图:
在这里插入图片描述

4.一个文件被对应切割成那些数据块(包括副本的块),以及这些块被分布到哪些datanode上,这个映射关系叫blockmap(块映射),这个映射关系是维护在nn的内存中,nn是不会持久化保存这种映射关系,是通过集群的启动和运行时dn定期汇报blockreport(块的位置信息和心跳,HA会同时报告给active NN和standby NN)给nn,nn在内存中动态维护这种blockmap关系。

作用:管理文件系统的命名空间,其实就是维护文件系统树的文件和文件夹。

读和写的操作会通过fsimage和edit_logs两个文件来进行保存:如下图
在这里插入图片描述

2.Secondary Namenode

作用:将Namanode的fsimage和edit_log文件拿过来合并,备份最后再推送给Namenode,可对照上下两幅图:通过checkpoint将Namenode的edits_0000000000000000132-0000000000000000133和fsimage_0000000000000000131合并成fsimage_0000000000000000133再推送给Namenode,如上图可看到最新的读写记录则在edits_inprogress_0000000000000000134这个文件上。
在这里插入图片描述
额外补充:控制Secondary Namenode工作的参数:

dfs.namenode.checkpoint.period  3600       #按时间触发,3600s
dfs.namenode.checkpoint.txns    1000000  #按每小时的事务触发:100万个事务

在这里插入图片描述
snn是早期为了解决nn是单点的,单点故障,增加一个snn,1小时的checkpoint虽然能够减轻单点故障的带来的数据丢失风险,但是生产上不允许使用snn,因为比如11:00的时候做了checkpoint,11:30的时候nn突然的硬盘挂了无法恢复,此时用snn节点的最新的fsimage到nn上,那么只能恢复到11点的数据,生产上是使用HA 高可靠,是通过配置另外一个实时的备份nn节点,随时等待老大active nn 挂掉,然后成为active nn。

3.Datanode

具体的信息如下:
在这里插入图片描述
作用:
1.存储数据块和数据块的校验和
2.每隔一定的时间去发送blockreport,在dn上可能有些块挂了 有些块恢复了 dn都是需要报告给nn的,而这个时间是:如下图:
dfs.blockreport.intervalMsec 21600000=6h #块报告
dfs.datanode.directoryscan.interval 21600=6h #目录扫描
dn报告给nn之前先扫描一下再报告给nn,一般两个配置的时间间隔一致
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值