当前课程知识点:大数据系统基础 > 3.文件存储 > 授课视频 > Video
这一节我们就是基于前面的需求
我们看一下
如何设计我们这么一个文件系统
满足前面的需求
那么回顾一下我们前面几个目标
第一个目标
就是我们要做一个文件系统
所以呢
我要提供一个目录树的操作
那么我也需要提供
文件读写的一个操作
那么支持文件读写
是非常大的一个文件
第二呢
我需要充分利用底层的一个资源
那么我们现在有数千个结点
那么我不能让一部分的结点
整天很忙
另外一部分结点就在那儿闲着
这是不行的
这就需要做一些
负载均衡方面的一个工作
那么负载均衡
其实在存储上面
我们可以想象它就是两点
第一点是什么东西呢
我希望我存储的数据
在每一台服务器上
数据量都差不多
不能把大量的数据
只存在少数的一个结点上面
剩下的大部分的结点
它可能只存少量的数据
这样不行
这样的话负载不均衡
那么第二个负载均衡呢
就是让访问数据的时候
每一台数据提供的一个
服务的一个负载性能
也应该差不多
但是这种就需要跟负载
就是跟应用程序的负载结合起来
所以可能需要进行
动态的一个调整
这是负载均衡
另外一个是呢
在充分利用资源上面的话
就要考虑整个系统的一个扩展性
那么整个系统呢
就不能说是我这个系统
在100个结点上面执行得很好
我在1000个结点上面执行得很好
那么扩展到2000个结点的时候
我就不行了
所以我希望让我这个系统
可以无缝地进行扩展
从100个 1000个
那么甚至扩展到三四千个
也没有问题
那么这是我在性能上面的考虑
那么还有呢
就是在容错上面的考虑
不能因为少数结点出错
就停止工作
因为我这个整个文件系统
是非常大的一个规模的
那么如果少数结点出错
就不能停止工作的话
那么可想而知
这个Google它搜索的时候
会非常停顿
现在我们知道Google搜索
会非常快
那最后一个呢
其实也不能算是目标
那需要一个非常简洁的一个
系统的一个设计
因为如果我一个非常复杂的
一个系统设计
而且运行在一个
非常复杂的网络环境下面
而且运行的结点数目有数千个
那么如果你的设计非常复杂的话
你就无法控制和无法理解
那对于整个系统维护
也是不利的
那么在这样的情况下面
包括我们前面需求的话
我们可以
Google给了一些
文件系统的一些基本的一个设计
那第一个设计
就是对于数据块的一个考虑
我们知道在本地文件系统当中
数据块的大小
基本上也就是4k 8k
大概是这么一个规模
那么我们知道在Google系统里面
需要处理非常大的一个文件
甚至上T的文件
那么你再用4K去划分的话
就会造成原数据规模非常得大
那么对于数据管理也是不利的
对于文件数据读写也是不利的
所以在这里的话
Google会将这个文件
划分成多个大小64MB的
一个数据块进行存储
那这个数据块的大小
会远远大于
一般的文件系统数据块的大小
那么这也是从应用角度出发的
好 那么除了除非有这样的应用
那比如说
我们经常支持的文件系统
是支持像word这种文本编辑的
那么根本不需要
这么大的一个数据块
那么你拿这个大的数据块
只会浪费空间
这是第一个
第二个呢
是需要一些
性能上面的一些基本设计
那么需要
根据全局的一些动态的信息
自动调整数据
在不同服务器上面的一个存放
那么使得存储服务器
利用率会相似
能负载能够动态的调整
那么需要一些监控的模块
在后台去看一下
当前的负载是什么样子的
能够通过一些规则
让这个负载在各个服务器之间
进行均衡
然后呢
在可靠性设计方面的话
有一个最简单的方法
就是使用三个副本
那么通过副本的方式的话
那么如果我们把这个数据
放在3个结点上面
那么即使有2个结点坏掉了
我们还是让这个数据是可用的
能够直接从最后一个结点
拿到数据
所以在可靠性方面的话
最基本的方法就是用多副能方法
那么最后呢
在系统简化设计方面的话
在Google文件系统里面
有一个主结点的一个概念
就是说我用一个单个的一个结点
去管理剩下的数千个结点
去做这样的一个工作
那么通过单个结点的话
有一些控制的工作
就可以让这个单个结点去做了
那么这样的话
可以大大地简化整个系统
当中的设计的一些工作
那么有一些重要企业
负载不是很高的
让这个master结点去做
这样的话
让其他的结点去集中精力
去处理这个数据读写的一些工作
这样的话
整个系统会比较容易理解
好
那么这是
Google文件系统的一些
最基本的设计
那么下面呢
就可以留给大家去想一下
如何用最简单的方式
去设计出一个文件系统
能够满足上面的一些
最基本的一个目标
-授课视频
--什么是大数据
--大数据典型应用
--大数据的特点
--大数据技术体系
--大数据生态系统
--大数据技术挑战
--课程内容
-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