HDFS【2.5.1】系列1:HDFS的核心数据结构---元数据
HDFS【2.5.1】系列1:HDFS的核心数据结构---元数据
强子哥哥 发表于3年前
HDFS【2.5.1】系列1:HDFS的核心数据结构---元数据
  • 发表于 3年前
  • 阅读 212
  • 收藏 1
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

我们都知道Hadoop的底层是HDFS-Hadoop Distributed File System.也就是Hadoop分布式文件系统。

所有的运算都是基于HDFS文件的,它的核心关键词有:主从NameNode VS DataNode.

-----------其中NameNode上存储的就是元数据---描述数据文件的meta信息。

存在形式有:内存信息+硬盘文件信息。

这段时间,就让我们一起来了解HDFS的元数据以及HDFS文件系统的要义吧。

-------------------------------------------------------------------------------------------------

试想,如果让我们自己设计一个文件系统,我们需要元数据存储哪些信息?

其实这取决于信息得到哪些功能?

个人认为功能包括:

1)namenode和所有datanode的IP,端口,文件夹,容量等信息。这相当于一个总体的文件系统框架描述。

2)每个datanode的文件的层次描述,文件目录关系。这个比1就更细致了。

3)对于某个文件,知道拆分了几块,每块的大小,备份情况,分别分布在哪些datanode上的哪些路径上。

从1我们可以得到分布式文件系统框架的骨架,从2我们可以得到分布式文件系统的血肉,从3我们可以得到具体的访问一个文件的方式。

有了以上3个,实际上就是namenode的元数据信息的组成部分,一切从应用的需求出发才可以得到设计图。

-------------------------------------------------------------------------------------------------

启动时,元数据从硬盘里被FSImage读取到内存中。

在持久化时,元数据被FSImage持久化到硬盘中。

同时硬盘中也会存放操作日志edits.我目前的理解是:把操作日志的行为累加起来---》最终的元数据

这个也就像是redis里干的一样了。很多数据库也是这么操作的,这个没啥好说的,很简答!

-------------------------------------------------------------------------------------------------

HDFS也引入了INode,这实际上跟linux中的文件系统中的INode是一样的,其次就是由于是分布式文件系统

所以每个文件的分片在hdfs中就成了Block。块。

这里必须要强调:块是按照物理大小分的,而不是分局逻辑大小,这样会引入什么问题?

就是一个逻辑记录可能会分到2个块中,而这2个块可能还是跨机器的。

这些hadoop都会解决。以后再讨论。

-------------------------------------------------------------------------------------------------

理论讲得再多,也不及代码来得实在而痛快。

下面就讲一讲HDFS的format究竟做了哪些事情!

 

 

标签: HDFS 元数据
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
强子哥哥
粉丝 847
博文 551
码字总数 641583
作品 8
×
强子哥哥
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: