当前课程知识点:大数据系统基础 > 3.文件存储 > 授课视频 > Video
这一节
我们继续讨论一下
Google文件系统
其他方面的一些特征
那么第一个呢
我们需要讨论一下
Google文件系统
关于POSIX兼容的问题
那么实际上
我们从前面的讨论过程当中
大家也应该感觉得到
Google文件系统
并不是一个标准的文件系统
而是在建立
在本地文件系统上的
一个应用性层文件系统
并且这个文件系统
跟POSIX标准是不兼容的
那不兼容的
主要是前面
关于一致性的一个讨论
所以在写入的数据
可能不是用户反映的一个数据
这样的话
我需要应用程序
进行特殊的处理
才能够说
去适应底层的那个文件系统
那同时也就保证了
底层文件系统的一个高效
另外一个呢
它有一个Append的一个操作
这也是POSIX文件系统
它不具备的
那么这两点来说呢
就说明Google文件系统
它实际上是一个
特殊的一个文件系统
并且跟传统的文件系统
它本身的功能和语义上
它是不兼容的
那么但是呢
正好是这种文件系统
也能够提供一个
在分布式环境下一个
很高的一个性能
那么对于
Google的那些应用程序来说
它其实是知道这个文件系统
它内部的一些特点的
那知道内部文件系统的特点的话
它正好就可以利用
内部文件系统那个特点
去获取它的高效性
那么有很多应用程序
它并不需要那么强的一致性
所以呢
可以根据这样的分布式文件系统
达到一个高效的一个目的
那么这是一个特建立的文件系统
所以相对来说
对于兼容性来说
它很容易大家理解这么一个观点
就是说通用的
一般都不是最优的一个策略
所以我们在这里面呢
Google就为它的搜索引擎
建了一个特殊的
特定的一个文件系统
但是又非常的高效
那么在另外一个方面呢
Google文件系统呢
它也有其他的一些特征
比如说在这里面
要做一些垃圾搜集的一些工作
那么一个文件系统
需要做垃圾搜集呢
我们知道
比如说
在通常的Windows文件系统里面
那么删掉的文件
都会出现在垃圾箱里面
垃圾箱里面的话
我就直接给它清空垃圾箱就行了
那么具体在反映文件系统里面
无非就是把一些数据
从一个inode的结点表上
和数据块的分配表上
把它删掉
然后删一个文件之后
我在原数据上
我直接给它删掉了就行了
那么不会
可能出现一些垃圾的一些问题
垃圾的问题就是说
我会占用磁盘空间
但是我又找不到文件在哪儿
这是不太可能的
对吧
在本地文件系统当中
但是Google文件系统
就会出现这种情况
那么怎么会出现呢
举一个非常简单的例子
比如说我一个数据块有三个副本
那么这个三个副本
那么有一个副本下线了
那么master会启动一个
数据恢复的过程
然后又会给它恢复出
一个新的一个副本
那么这样的话又有三个副本了
但是当这个
数据副本的那个服务器
重新上线的时候
这个数据块在这个服务器上面
它是有的
在这个服务器上面是包含了
这个数据块的一些内容的
但是在master服务器上面
那么只有这三个数据块的
一些相关的信息
没有这个数据块的
那么就相当于说
在master上面
没有这个数据块的一个内容
这个时候呢
这个数据块就会被认为是
一个垃圾的一个数据块
我们需要给它清理掉 对吧
否则的话
随着系统的一个运行
整个系统里面的垃圾会越来越多
那么磁盘利用率就不高了
所以呢
在这种情况下面的话
就会产生垃圾
这是产生垃圾的一个情况
另外呢
在TPT里面也简要地讲了一下
文件系统删除的一个工作
文件系统删除
就是直接在NameSpace里面
把这个文件删除就可以了
那么之后呢
可以通过垃圾收集的方法
回收数据块
那么这个特点
是本地文件系统所不具备的
那么垃圾收集怎么做呢
那也很简单
就是通过master服务器
上面的那个扫描
凡是在master服务器上面
没有的原数据
并且在块服务器上面有的
那些东西都是垃圾
那么可以让块服务器
就给直接删掉了 对吧
所以呢
在分布式文件系统当中
垃圾搜集是一个必须的一个工作
这是关于
分布式文件系统的一个垃圾收集
那么以上我们就把整个
分布式文件系统
特别是Google文件系统
都已经完全研究过了一遍
那么在学习的过程当中
大家必须要注意这么几点
第一个是
整个Google文件系统
它建立的基础
就是说在现在市场上可见的
硬件水平上去建立整个文件系统
第二
我们去看一下
整个文件系统它的性能
它的Performers它是怎么处理的
第二个是Fall Tanlt
就是错误它是怎么处理的
大家回去仔细地理解一下
那总的来看
整个Google文件系统
它的设计是非常简单的
并且这个设计
是也可以容忍一部分的一些错误
那这个设计
也可以扩展到数千个结点
那么在工业实践上来说的话
也有很多开源的软件
包括HDFS和MooseFS
那么这些系统规模都很大
像GFS
在一个集群规模
可以达到四五千的集群的规模
所以这种简单的设计
在工程实践当中
也是非常有用的一种设计
好
那么今天的课程大概就是这样
谢谢大家
-授课视频
--什么是大数据
--大数据典型应用
--大数据的特点
--大数据技术体系
--大数据生态系统
--大数据技术挑战
--课程内容
-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