当前课程知识点:大数据系统基础 > 3.文件存储 > 授课视频 > Video
这一节我们看一下文件系统
在磁盘上的一个数据结构
那么文件系统在执行的时候呢
那么最重要的一个数据结构
实际上都是它
磁盘上面的数据是如何组织的
当然文件系统有一部分数据
它会缓存在内存里面
那么这是由文件系统
它本身代码去操作的
那么
磁盘上面的一个数据的结构的话
就可以保证文件可以
按照一种特定的组织的方式
保存在磁盘里面
那么在这里面读的话
给大家看的是ext2的文件系统
就是在Linux文件系统里面
在磁盘上面的一个组织
那么这个上面是
一整块的一个磁盘
那么这个磁盘
在前面是有一个启动的一个块
那么后面的话
它会把所有的块
分成不同的一个块组
那么我们只需要
看其中的一个块组就行了
那么看完这其中一个块组的话
其他的块组长得的情况
都是差不多的
那么在这个块里面的话
前面有一个超级块
它会描述整个文件系统的一个
相关的信息
包括 比如说
这个文件系统
还有多少空闲空间是可以利用的
然后这个是每一个块的块组
它本身的一个描述
那么下面的话
就有几个比较重要的一个块
重要的一些信息
那么第一个信息
它是叫做Data block Bitmap
那Bitmap的意思是
要么是0 要么是1
那么如果这个
后面的这个数据块
数据块在文件系统里面
一般在磁盘文件系统里面
它的大小是4个KB
那么在这种情况下面
我可以用0标记这个块
是没有被使用的
1块表示这个块已经在使用过的
那么在这种情况下的话
我们就知道后面的这个数据块
哪一个数据块是可以用来存数据
那么哪一块已经被使用了
那么我就不能把这个数据
再放到已经被用到的
那个数据块当中
这样的话会破坏其他的文件的
一些内容
所以这个是非常重要的一些信息
然后呢
在这上面有一个另外重要的信息
或者是另外重要的概念
叫做inode
那么inode在传文件系统当中
它就代表了一个文件
或者是代表了一棵目录
那么inode的话
每一个文件系统在磁盘上
它的inode大小是有限制的
所以
它所能够存储的
最大的文件的数目
也是有限制的
那么在这里面呢
在这里面跟着一块信息
是inode的一个Bitmap
所以1就表示这个文件
或者是目录是存在的
0就是表示对应的inode是可以的
就是可以使用的
所以后面跟着
很多的inode的一些信息
那么这是inode的一个数组
inode的一个table
那么inode里面
包含什么样的信息呢
那么可以看到
我们的inode里面
一般会有
比如说一些元素性的信息
比如说owner是谁
然后一些ctime
最近一次访问的时间atime
这样的一些元素性信息
那么inode里面最重要的信息
这个文件在磁盘当中
当中的一个位置
它的数据的一个位置
也就是在这个位置的开始
有多少磁盘空间
是被这个文件所占用的
所以根据inode这个信息
大家可以看到
是直接可以获得
这个文件在磁盘中的偏移
这样可以对文件进行读写的
所以
这个inode的信息会非常重要
那么我们回来看一下
我们一般这个文件系统
它的名字解析的过程是什么样子
好 我们可以看到
在这里面
在inode上面
并不包含文件名的内容
文件名的内容
它不是在inode里面
那么文件名的内容
是在什么地方呢
那么文件名
这样的一个文件名
是放在目录树的
比如说我这个文件
我们可以看一下
一个具体的文件home
还是以刚才这个文件为例
home mike a.txt
那么这个文件在什么位置呢
那这个文件就会保存在
这棵目录树下面
home mike
这个子目录下面的目录下
会包含这个a.txt的
那么我们看一下
整个名字空间解析的一个过程
那么在解析这个文件的时候
那么首先第一件事情
需要解析的是它的根目录
那么根目录呢
它有一个whileknowd
就是大家都知道的一个inode号
它是0
那么它就会在这个位置
最前面这个位置
这是一个根
那么根目录
我可以在一个
大家都知道的一个位置
会拿到根的inode
那么根的inode里面
也包括了比如说它的owner是谁
一般是Root了
然后是一些时间
然后它也包括了
指向的一个数据块
那么这个数据块里面
包含什么信息呢
我们可以看一下这个数据块
那么它这里面会有一个
比如说这是根的数据块
那么根的数据块里面
它包含的信息是这样的
它是会包含
所有它的子目录的它的名字
那么这个子目录
比如说有一个boot
那么也会有一个home
那么在这个数据项里面
那么比如说boot
它的inode号可能是5
那么home
它的inode号可能变成15了
那么从这个里面
我第一级目录我可以解析到
第一级目录是根
可以解析到第二级目录是home
那么拿到第15号这个inode
那么在这个15号inode里面
我们就可以在这里面可以往后数
这是0 1 一直到15
那么可能是在这个里面
这里面会拿出一个inode
那这个inode
它是15号inode
那么15号inode呢
它的包含信息
就是home这个目录
这个子目录下面的
所有的一些原数据的一些信息
以及它所指向的一个数据块
那么在这个数据块里面
会有一个子目录叫mike
那么它对应的
可能它的inode号是比如说65
那么这个时候
我们继续用相同的方法去找
比如说在65
再找到一个inode
那在这个时候呢
这个时候
这个inode代表的子目录
就是mike这个用户
目录下面的所有内容
那在这个它的数据的块里面
它就会有一个a.txt
这样一个
比如说它的inode号是85
那再根据85这个inode号
那么这个inode呢
就代表a.txt了
那么在这种情况下的话
我就可以根据
这个inode上面的信息
对文件进行读写
那么这也就是文件系统
在磁盘上的数据组织
以及名字解析的一个过程
-授课视频
--什么是大数据
--大数据典型应用
--大数据的特点
--大数据技术体系
--大数据生态系统
--大数据技术挑战
--课程内容
-1. 绪论--Quiz 1
-授课视频
--2.2并行化理念
--2.9计算虚拟化
-2.云计算--Quiz 2
-授课视频
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-3.文件存储--Quiz3
-授课视频
--4.13类似框架
--4.14章节总结
-4. 处理框架--Quiz4
-授课视频
-5.内存计算--Quiz5
-授课视频
--数据副本及一致性
--节点本地数据存储
-6. NoSQL--Quiz6
-授课视屏
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-7. 流计算--Quiz7