当前课程知识点:大数据系统基础 > 3.文件存储 > 授课视频 > Video
那么这一节呢
我们先看一下
可能会出现的性能的问题
那么性能问题其实分成两块
那么一个是看块服务器
它有没有可能出现性能的问题
那么另外一块
就是主服务器
就是那个master服务器
有没有可能出现性能的问题
那么我们先看一下
相对来说
从感觉上来讲
因为块服务器的数目会非常大
主服务器只有一个
块服务器可能有数千个
那么块服务器
不太容易可能会出现
性能的一个问题
那么性能问题
我们之前已经讲过了
那么一个是
我看一下这个数据
是不是能够大致平均地
分配到所有的存储服务器当中去
就是存储上面是不是有
能够做到负载均衡
另外一个是访问上面
能不能做到负载均衡
那么这个问题在
Google文件系统里面
相对来说会比较好做
就是原因是因为我们有一个
master服务器
那这个master服务器
能够在运行的过程当中
去搜集所有的存储服务器的一些
相关的一些性能的数据
包括当前存储服务器
它已经占用的空间
和空前的空间
这样的话
master服务器在进行
新的数据块分配的时候
master服务器能够让存储服务器
大致地均衡去分配这个数据
因为只有一个master结点
所以这种均衡分配
相对来说是非常简单的
那么我们也知道
这个数据大概也就是几千条数据
那么对几千条数据进行排序
求平均
这是非常快的一件事情
所以存储的负载均衡问题
会比较好解决
那么访问热点的问题
就是访问的负载均衡问题呢
那么相对来说
有master服务器的帮助
也会比较好解决
原因是这样
就是在访问的时候
我们也同样可以再动态地去看
哪一些数据块
可能会成为一个热点的数据块
那么对于热点的数据块的话
那么同学们可以想一下
如果一个数据块访问得非常热
那么这个时候你应该怎么办
那么如果这个数据块
访问得非常热的话
那相对来说
在Google文件系统里面
那么访问非常热的数据块
它的最大有可能出现的模式
就是读的时候非常热
那读的时候非常热的话
一个非常简单的方式
就是可以增加
它的副本的一个数目
把它的副本的数目给它增加
那么增加副本数目的话
那么这样就可以会将负载
可以分配到其他的一个
存储服务器当中去
那么也就能够达到了负载均衡
那么这是关于存储服务器的
负载均衡的一个问题
那么存储服务器
还有一个扩展性的问题
就是我加了一台服务器
或者是加了一百台服务器
那么这个时候它该怎么办
那么加了一百台服务器的时候
因为我还是有一个master
来帮助做这个事情
所以相对来说
扩展服务器也很简单
master知道
有新的服务器进来了
那么在之后
进行数据块分配的时候
就可以把新的数据块
分配到新的服务器当中去
那么也能够很容易地
达到负载均衡
那么也能够让
比如说其他的老的服务器
也有可能出现访问的性能问题
这样可以把一些数据副本
放到新的服务器当中去
这样的话也能够调整负载
那么使得负载能够达到均衡
所以对于
块服务器的性能问题来说
因为
我们有了master服务器的帮助
那么相对来说
是比较容易解决的事情
所以我们现在就需要重点看一下
master服务器它本身
它有没有可能存在
性能瓶颈的一个问题
好 那么有一个数据
需要大家先了解一下
那么相对来说
在Google系统文件里面
一个64MB大小的一个数据块
它所需要的原数据大小
大概是64个字节的一个大小
那么首先第一点
我们需要看一下
一个问题是一台主服务器
一台master服务器
它是不是能够存放所有的原数据
因为它要管理几千个结点
第二个
在访问的时候
原数据有没有可能成为一个
性能的一个瓶颈
所以第一点是容量的问题
第二点是Overhand问题
就是它是不是能够
在访问的时候特别慢
那么先计算一下
这个原数据的大小
那比如说我们这个文件系统
非常得大
那么有一个非常大
比如说
我们要存10个PB的一个数据
我们看一下10个PB的大小的数据
它所需要的数据的量有多大
那么10个PB乘以1024
是这么多个T 对吧
再乘以1024是这么多个G
对不对
然后这么多个
这是P 然后是G
然后是1024是这么多M
对不对
然后呢 有这么多数据
然后呢分成64M一块
这个单位是M 对不对
然后呢
这么多块呢
每一块是有64个字节
大小的原数据
那么这样的话
我们可以约一下
这个约了 这个约了
这个约了 这个约了
所以实际上我要存在的
所保存的原数据大小
最后是K M G
比如说数据大小是10个G
所以说一个10个PB的文件系统
非常大的一个文件系统
它的原数据大小是10个G
那么我们回想一下
现在的服务器
有32G以上的一个内存
对吧
这都是算比较小的一个服务器
所以呢
所有的原数据
都可以保存在内存当中
然后呢
因为保存在内存当中
而内存的那个性能
要比硬盘的性能要快几个数量级
所以呢
在数据容量上
我可以用内存
就可以保存所有的原数据
在数据访问上
通过内存的方式
我可以大大地加快
原数据的访问
虽然从这两件角度的来看的话
我可以说是原数据服务器
不太可能成为访问的一个瓶颈
另外还有一些优化的一些手段
比如说
我们在Cliant在访问的时候
那么在访问数据的时候
它肯定先是跟master打交道
但是
Cliant需要访问一个文件的时候
我其实每次没有必要
只拿到一个Chunk的一个原数据
我可以完全是可以拿一百个
或者是一千个Chunk的原数据
因为一千个Chunk的原数据
一个Chunk是64个字节的话
一千个Chunk原数据
也就是64个KB
那么网络数据传一下
很短的时间就能拿到
那么在访问一千个Chunk的时候
访问这么多数据的时候
我完全没有必要跟主服务器
就是master服务器打交道
这样的话也可以降低
原数据服务器的一个性能的负载
这样的话也就是让
原数据服务器能够更好地
负载整个系统的一个性能
所以从数据容量上讲
和原数据服务器的访问性能上
来讲
再加上客户端的
本身对原数据的缓冲上来讲
那个原数据服务器
都不太可能成为
性能的一个瓶颈
好 那么这种简单的设计的话
它可以承受大量数据的一个访问
好
那么这是关于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