当前课程知识点:大数据系统基础 >  3.文件存储 >  授课视频 >  Video

返回《大数据系统基础》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《大数据系统基础》慕课在线视频列表

Video课程教案、知识点、字幕

这一节我们就是基于前面的需求

我们看一下

如何设计我们这么一个文件系统

满足前面的需求

那么回顾一下我们前面几个目标

第一个目标

就是我们要做一个文件系统

所以呢

我要提供一个目录树的操作

那么我也需要提供

文件读写的一个操作

那么支持文件读写

是非常大的一个文件

第二呢

我需要充分利用底层的一个资源

那么我们现在有数千个结点

那么我不能让一部分的结点

整天很忙

另外一部分结点就在那儿闲着

这是不行的

这就需要做一些

负载均衡方面的一个工作

那么负载均衡

其实在存储上面

我们可以想象它就是两点

第一点是什么东西呢

我希望我存储的数据

在每一台服务器上

数据量都差不多

不能把大量的数据

只存在少数的一个结点上面

剩下的大部分的结点

它可能只存少量的数据

这样不行

这样的话负载不均衡

那么第二个负载均衡呢

就是让访问数据的时候

每一台数据提供的一个

服务的一个负载性能

也应该差不多

但是这种就需要跟负载

就是跟应用程序的负载结合起来

所以可能需要进行

动态的一个调整

这是负载均衡

另外一个是呢

在充分利用资源上面的话

就要考虑整个系统的一个扩展性

那么整个系统呢

就不能说是我这个系统

在100个结点上面执行得很好

我在1000个结点上面执行得很好

那么扩展到2000个结点的时候

我就不行了

所以我希望让我这个系统

可以无缝地进行扩展

从100个 1000个

那么甚至扩展到三四千个

也没有问题

那么这是我在性能上面的考虑

那么还有呢

就是在容错上面的考虑

不能因为少数结点出错

就停止工作

因为我这个整个文件系统

是非常大的一个规模的

那么如果少数结点出错

就不能停止工作的话

那么可想而知

这个Google它搜索的时候

会非常停顿

现在我们知道Google搜索

会非常快

那最后一个呢

其实也不能算是目标

那需要一个非常简洁的一个

系统的一个设计

因为如果我一个非常复杂的

一个系统设计

而且运行在一个

非常复杂的网络环境下面

而且运行的结点数目有数千个

那么如果你的设计非常复杂的话

你就无法控制和无法理解

那对于整个系统维护

也是不利的

那么在这样的情况下面

包括我们前面需求的话

我们可以

Google给了一些

文件系统的一些基本的一个设计

那第一个设计

就是对于数据块的一个考虑

我们知道在本地文件系统当中

数据块的大小

基本上也就是4k 8k

大概是这么一个规模

那么我们知道在Google系统里面

需要处理非常大的一个文件

甚至上T的文件

那么你再用4K去划分的话

就会造成原数据规模非常得大

那么对于数据管理也是不利的

对于文件数据读写也是不利的

所以在这里的话

Google会将这个文件

划分成多个大小64MB的

一个数据块进行存储

那这个数据块的大小

会远远大于

一般的文件系统数据块的大小

那么这也是从应用角度出发的

好 那么除了除非有这样的应用

那比如说

我们经常支持的文件系统

是支持像word这种文本编辑的

那么根本不需要

这么大的一个数据块

那么你拿这个大的数据块

只会浪费空间

这是第一个

第二个呢

是需要一些

性能上面的一些基本设计

那么需要

根据全局的一些动态的信息

自动调整数据

在不同服务器上面的一个存放

那么使得存储服务器

利用率会相似

能负载能够动态的调整

那么需要一些监控的模块

在后台去看一下

当前的负载是什么样子的

能够通过一些规则

让这个负载在各个服务器之间

进行均衡

然后呢

在可靠性设计方面的话

有一个最简单的方法

就是使用三个副本

那么通过副本的方式的话

那么如果我们把这个数据

放在3个结点上面

那么即使有2个结点坏掉了

我们还是让这个数据是可用的

能够直接从最后一个结点

拿到数据

所以在可靠性方面的话

最基本的方法就是用多副能方法

那么最后呢

在系统简化设计方面的话

在Google文件系统里面

有一个主结点的一个概念

就是说我用一个单个的一个结点

去管理剩下的数千个结点

去做这样的一个工作

那么通过单个结点的话

有一些控制的工作

就可以让这个单个结点去做了

那么这样的话

可以大大地简化整个系统

当中的设计的一些工作

那么有一些重要企业

负载不是很高的

让这个master结点去做

这样的话

让其他的结点去集中精力

去处理这个数据读写的一些工作

这样的话

整个系统会比较容易理解

那么这是

Google文件系统的一些

最基本的设计

那么下面呢

就可以留给大家去想一下

如何用最简单的方式

去设计出一个文件系统

能够满足上面的一些

最基本的一个目标

大数据系统基础课程列表:

1. 绪论

-授课视频

--什么是大数据

--大数据典型应用

--大数据的特点

--大数据技术体系

--大数据生态系统

--大数据技术挑战

--课程内容

-1. 绪论--Quiz 1

2.云计算

-授课视频

--2.1大数据和云计算关系概述

--2.2并行化理念

--2.3规模经济理念

--2.4从仓库规模计算机到云

--2.5云计算商业模式概述

--2.6云计算带来的价值

--2.7云计算的分类

--2.8虚拟化技术概述

--2.9计算虚拟化

--2.10网络虚拟化:基础

--2.11网络虚拟化:软件定义网络

--2.12软件定义网络实现

--2.13存储虚拟化:用户接口

--2.14存储虚拟化:分布式存储实现方式

--2.15虚拟化技术总结

--2.16OPENSTACK

--2.17云计算小结

-2.云计算--Quiz 2

3.文件存储

-授课视频

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

-3.文件存储--Quiz3

4. 处理框架

-授课视频

--4.1大数据的处理框架

--4.2MapReduce编程模型

--MapReduce执行过程

--4.4MapReduce数据流

--4.5MapReduce性能优化与容错

--4.6Hadoop

--4.7MapReduce总结

--4.8Pig Latin

--4.9Pig Latin语法

--4.10Pig Latin 嵌套数据类型

--4.11Pig Latin 实现与优化

--Pig Latin 实现与优化(2)

--4.13类似框架

--4.14章节总结

-4. 处理框架--Quiz4

5.内存计算

-授课视频

--5.1内存计算概述

--5.2并行计算挑战

--5.3并行计算的局限性

--5.4大数据处理并行系统

--5.5内存计算需求

--5.6MapReduce文件传递数据

--5.7内存计算的可行性

--5.8内存层次的延迟

--5.9内存计算实例-spark

--5.10SPARK-RDD

--5.11大数据并行系统

--5.12Spark编程接口

--5.13Spark编程实例——Log挖掘

--5.14Spark编程实例——WorkCount

--5.15Spark实现技术

--5.16复杂的DAG示例

--5.17RDD性能的提高

--5.18Spark应用和生态环境

--5.19Spark的局限性

-5.内存计算--Quiz5

6. NoSQL

-授课视频

--NoSQL与Cassandra

--数据模型、接口、语言

--系统架构与Gossip协议

--一致性哈希与数据分区

--数据副本及一致性

--节点本地数据存储

-6. NoSQL--Quiz6

7. 流计算

-授课视屏

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

-7. 流计算--Quiz7

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。