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

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

Video在线视频

Video

下一节:Video

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

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

各位同学好

我是清华大学计算机系的陈康

那么我这个课的内容

是关于分布式文件系统

分布式文件系统

可以说是大数据处理的基础

因为只有数据保存下来之后

才能进行处理

分布式文件系统

我们将从几个方面去进行阐述

那么第一个是我们会回顾一下

本地文件系统的一些相关基本知识

和它处理数据的一些方法

然后我们对分布式文件系统

进行概述

最后我们以一个非常具体的例子

就是Google文件系统

那么分析它如何进行实现

然后同学们在学习的过程当中

要注意这个Google文件系统

是如何进行扩展性

和可靠性方面的考虑的

这一节我们主要讲一下

文件系统的概述

那么第一个首先要回答的问题

就是为什么需要有文件系统

那么我们知道

计算机在处理的时候

那么所有的程序

是放在内存里面的

那么计算是在处理器里面的

但是内存和处理器

这些东西在存储数据的时候

它都是暂时的

只有加电的时候

它的数据才有效

那停电的时候

它的数据就无效了

所以呢

我们需要有一些永久的介质去

保存一些长期的数据

那么的永久的介质就包括

像硬盘 光盘 磁带等

那么这些设备呢

它的接口都会比较复杂

那么我们后边会讲到

它的接口是什么样子的

所以我们需要在这上面

建立一个文件系统

那这个文件系统

对上层应用会比较方便使用

那么这里就是文件系统

存在的理由

那么帮助这个用户

或者是应用程序

去保存它的那个数据

然后在停电的时候

这个数据也可以长期的一个保存

那么这是文件系统

它存在的一个原因

那么第二个呢

我们要看一下文件系统

它的一个基本的概念

叫做名字空间

那么叫NameSpace

那么名字空间是什么意思呢

那么我们可以回顾一下

我们在学操作系统课的时候

也肯定讲过文件系统的一些

相关的知识

那么名字空间就包括了目录数

那么什么是目录数呢

我们可以看一下

在Windows里面

它把所有的目录

例如都是从C盘

或者是从D盘开始的

那么这个目录呢

这个就是所谓的根的一个目录

那么这边在Linux

或者是Iunix操作系统里面

它就更加典型了

那所有的目录数

都是从根开始的

大家注意它们的斜杠的方向

是不一样的

那么从根文件系统开始

那么所有的文件系统

不管它是Windows下面也好

在Linux下面也好

它都是长成一棵目录数的样子

那么一个典型的文件

比如说我们在C盘里面

我们可以看到C盘下面

有一个目录

一般会有一个目录

叫做Windows

装一些操作系统相关的一些文件

那么里面可能会有一个

比如说像notepadexe

这样的一个可执行的程序

那么所有的这些文件

都是在这棵目录上面的叶子界限

上面的

那么访问我这个目录数的话

我们首先需要做的是

从根目录开始

那么一级一级地往下访问

那么在这个离子当中

根目录就是C盘那个目录

那么下一级目录就是Windows

那在Windows这个目录下面的话

它就有一个文件叫notepad

那么这个是Windows的名字空间

那么再举一个

在Linux名字空间的一个例子

那么有很多同学可能会用过

Linux的一个操作系统

那么一般会有

会把你的用户的信息

放到一个叫home的目录下面去

那么这个home的目录呢

它们下面会有一些子目录

比如说有一个用户叫做mike

那mike下面可能会有一个a.txt

有这样的一个文件

那么我们要去访问

这个a.txt的时候

那同样地也是需要从根目录开始

访问第一级子目录

访问第二级子目录

那么最后才能访问到这个文件

所以在文件系统当中

它第一个能够进行操作的

是名字空间的一个操作

那名字空间的操作

实际上大家可以看到

名字空间的操作

实际上就是对这棵树

类似于树的这样一个数据结构的一个操作

那么我们可以看到

在树这样的数据结构当中

我们无非有

比如说我们有给它插入一个结点

删除一个结点

那么在这里的话

无非就是像创建一个文件

创建一个目录

然后在树的数据结构上面

有一个非常典型的一个

操作就是树的遍历

那么在这里呢

那么我们可以在文件里面

树的遍历可以被表达成为

一种对于某一棵子树下面的

所有的结点的列出

那么这个就是列目录

这样的一个操作

某一个目录下面所有的文件

都给它列出来

或者是它的子目录都可以列出来

那么这个也就是在

名字空间这棵树上的一些操作

那么这是关于名字空间的

一些操作的相关的一些概念

然后最后一部分呢

文件系统有一个最重要的功能

它是需要支持文件的这个读写的

那么支持文件读写的话

在所有的文件系统当中

大概会集中这么一些

相关的一些函数

那么函数的名字可能不一样

但是都会有提供类似的

那么比如说像open

那么这是打开一个文件

那么read

那么这是从文件里面读一个数据

write

那么往文件里面写一个数据

那么最后是close

把这个文件给关掉

咱们稍微看一下

这几个函数

分别是干一些什么样一些内容

那么比如说open

那么open实际上

它是去打开一个文件

那么打开文件它实际上

是在操作系统的内核里面

记录一下打开这个事件

并且

它有一个非常重要的一个操作

就是把文件上它的一个offset

就是它的偏移置为0的位置

这样的话

一般来说的话

它会把偏移置到0的位置

或者说你在open的时候

可以直接说

我要把偏移位置置到

整个文件的结尾

这也是可以的

那么所以呢

在open的时候

最重要的是

置这个offset这个位置

并且在内核数据结构里面

把打开文件这件事情给它记下来

就相当于有一个数据结构

去记录当前文件已经操作到

什么位置了

好 那是open的一个操作

那么相对应的

对于close这个操作来说的话

那么它最重要的工作

实际上它就是把

内核的这个数据结构

从内核里面删除掉

否则的话

大家可以想象

如果我一直打开文件

不去把它关闭的话

那这就会浪费大量的内存空间

去维护所有打开文件的

一些状态的一些信息

这样的话

会很快会充满了一个内存

就造成内存的泄露

造成系统不能执行

所以一般来说

大家使用内核资源的时候

特别是

像使用文件这种资源的时候

有一个open的操作

那必须要有一个close的操作

作一个对应

这样的话

能够避免内存的一些泄露

保证资源的使用

那么read和write

当然是大家用得是最多的

那么read的话

就会从offset这个位置开始

读一些size大小的一个数据

到一个用户的一个缓冲区

那么这是文件的读的操作

那么write操作的话

那必须要提供一个缓冲区

并且指出这个缓冲区的大小

要把这一部分的数据

可以写到文件里面

那么这个是文件系统

大概我们能够看到的一些

有关的一些基本概念

那包括两个部分

那一个是namespace

它的名字空间的一个操作

另外一个是

它是对于数据的一个操作

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

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笔记与讨论

也许你还感兴趣的课程:

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