Hadoop之HDFS03【NameNode工作原理】

| 序号 | 方式 | 说明 |

| — | :-- | :-- |

| 1 | 内存元数据(NameSystem) | 读写效率高 |

| 2 | 磁盘元数据镜像文件 | 持久化 |

| 3 | 数据操作日志文件(可通过日志运算出元数据) | 内存和磁盘数据同步的桥梁 |

在这里插入图片描述

数据存储的机制

=====================================================================

在这里插入图片描述

  1. 内存中有一份完整的元数据(内存meta data)

  2. 磁盘有一个“准完整”的元数据镜像(fsimage)文件(在namenode的工作目录中)

在这里插入图片描述

  1. 用于衔接内存metadata和持久化元数据镜像fsimage之间的操作日志(edits文件)

在这里插入图片描述

checkpoint

========================================================================

每隔一段时间,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge(这个过程称为checkpoint)

在这里插入图片描述

edits_inprogress_xxx:表示正在写入操作日志的文件,当发起checkpoint的时候会把该文件更新为edits-000xxxx表示停止写入,并生成一个新的edits_inprogress_xxx文件来记录在checkpoint中同步产生的操作日志数据。

注意:

日志文件是滚动的,一个正在写,几个已写好的,checkpoint的时候,把正在写的滚动一下,然后把fsimage文件和日志文件下载到secondaryNameNode机器上,完成同步,只有第一次才会下载fsimage文件,这时不会很大,下一次的时候secondaryNameNode上就有fsimage文件了就只需要下载日志文件即可,单个日志文件不会很大。

思考问题


  1. namenode如果宕机,hdfs服务是否能够正常提供

  2. 如果namenode的硬盘损坏,元数据是否还能恢复?如果能恢复如何恢复?

  3. 通过以上问题,我们在配置namenode的工作目录参数的时候有什么要注意的?

VERSION

=====================================================================

#Tue Apr 02 10:39:49 CST 2019

namespaceID=310844358

clusterID=CID-5d42338e-6111-4be0-b425-3d6c80a3acd8

cTime=0

storageType=NAME_NODE

blockpoolID=BP-1966867742-192.168.88.61-1554172789025

layoutVersion=-60

  1. namespaceID是文件系统的唯一标识符,在文件系统首次格式化之后生成;

  2. storageType说明这个文件存储的是什么进程的数据结构信息(如果是DataNode,storageType=DATA_NODE);

  3. cTime表示NameNode存储时间的创建时间,由于我的NameNode没有更新过,所以这里的记录值为0,以后对NameNode升级之后,cTime将会记录更新时间戳;

  4. layoutVersion表示HDFS永久性数据结构的版本信息, 只要数据结构变更,版本号也要递减,此时的HDFS也需要升级,否则磁盘仍旧是使用旧版本的数据结构,这会导致新版本的NameNode无法使用;

  5. clusterID是系统生成或手动指定的集群ID,在-clusterid选项中可以使用它;

seen_txid

复习的面试资料

这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)

  • 第一部分:Java基础-中级-高级

image

  • 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)

image

  • 第三部分:性能调优(JVM+MySQL+Tomcat)

image

  • 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)

image

  • 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)

image

  • 第六部分:其他:并发编程+设计模式+数据结构与算法+网络

image

进阶学习笔记pdf

  • Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法

image

  • Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis

image

image

image

  • Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka)

image

image

image

  • Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)

![image](https://upload-images.jianshu.io/upload_images/24613101-65a3b0d908d8bb65.png?imageMogr2/auto-orient/strip%7CimageView2/2

必看视频!获取2024年最新Java开发全套学习资料 备注Java

/w/1240)

image

892953)(image-https://i-blog.csdnimg.cn/blog_migrate/38e5a57660282b55905517d7d28f61b1.png)(title-必看视频!获取2024年最新Java开发全套学习资料 备注Java)]

/w/1240)

[外链图片转存中…(img-Nl5y4gcy-1716441582716)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值