当前课程知识点:高级大数据系统 >  Introduction to Big Data Systems >  What is big data and what is big data system? >  Video

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

Video在线视频

Video

下一节:Video

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

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

感谢各位同学选高级大数据系统这门课

那么作为这门课的第一堂课

今天我们会向大家介绍大数据系统的基础

什么是大数据

什么是大数据系统

以及在大数据系统这门课上

我们将要学习什么样的知识

以及什么样的原则是我们去设计大数据系统的

这个基本的准则

首先呢我来给大家看一下这张图

这张图给的是google trends上面

我们看到的大数据

在近年来它的一个趋势可以看到

从2000年之后

受到google facebook这样的公司

在处理社交媒体搜索

和Web大数据的这样一个趋势的影响

实际上大数据呈现了一个

非常火爆的这样一个发展

那么在这里面呢各种各样的数据

不断的涌现

包含各种传感器web的以及各种各样机器人产生的数据

在互联网上不断的出现

怎么样挖掘这些数据的关联

从这些数据中得到相应的智能

进而去改善其他的工业

以及其他的策略的设计是大数据和大数据分析

以及大数据系统等等相关的课程

非常关心的这样一个主题

那么我们来看在google trends上

实际上大数据是一个国际化

全球性的这样一个流行的一个主题

以美国 中国 印度以及其他的这个国家为中心

不断的带动着大数据的这样一个发展

那么我们这门课

主要以大数据的系统为核心

我们研究的是怎么样支撑大数据的算法

大数据分析的底下的这个网络存储和计算平台

它的一个扩展

那么今天我们要讲的内容呢主要是这几个方面

一个是什么样的东西

我们可以把它叫做大数据

那另外一个就是大数据的系统是什么

他和大数据的分析大数据的算法

有什么样的区别

以及在大数据的这个系统课程当中

各位同学能够学到什么样的东西

以及我们一般的一般化的通用的

这种大数据设计的原则和准则

包含哪一些

好 那么我们从这几个方面

分别来展开

给大家做一个介绍

首先我们来看大数据到底是什么

我们首先来看数据

可能会来自什么样的地方

那么这张PPT

实际上我们给出了各种各样今天大家能够想象的

能够生成数据的这样一些场景

第一个呢就是说我们常见的web

自从这个web

尤其是web2.0发展以来

实际上web已经成为数据生成

和数据这个交换一个重要的一个场景

那么今天大家会在自己的优酷

或者说在自己的这样一个微博上去

生成以及去传播各种各样的数据信息

那第二个是和传统的这个行业相关

比如说交易的数据

比如说我们征信和信用卡的这种消费的记录

那么这些会产生非常结构化以及

和我们生活非常相关的这样一些数据记录

那第三种是受到近10年来一个蓬勃发展的这种影响

比如说社交媒体

它的一个影响产生了各种各样的数据

在社交媒体的这样一个背景下

实际上人变成了一个可以不断生成数据的这样一个主体

那么人在里面可以去传播信息

可以去分享视频

可以去共享其他的这样的信息

产生了这种社交媒体

这样一个新的数据类型

还有各种各样的传感器

今天大家佩戴的这个手表

大家在自行车上增加的这样一些GPS的记录器

那这些都是在我们生活中可以

生成大量数据的这样一些传感器

那么可穿戴设备

在这些传感器当中有一种比较特别的类型

是可穿戴的设备

大家会用它来监控

自己的健康状况

自己的一些运动的一些状况

那么还有

近年来流行起来的这种机器人

那么机器人不断可以吸收

用户给他的这样一些知识

告诉他的一些指令

同时它也会产生各种各样的数据

那么在后期的这种大数据的智能

以及大数据和人工智能相结合的这样一个领域

机器人产生的这样一个数据

实际上是一个非常重要的类型

那么有了各种各样的这些数据之后

那么我们要进行数据的分析

进行智能的一个挖掘

其中面临的一个挑战就是

因为这些数据的体量实在太大

那么由于这些数据的这种规模

带来的这种挑战

那这种规模到底有多大

实际上我在这张图上

也给大家给了一个示例

比如说那么我们可以看到

youtube它每天可以产生的这样一个视频的量

大概是72小时

实际上这样的一个大规模的数据量

实际上是比我们人类在历史上

通过专业的这种设备

能够生成的这种视频量要大得多

那么根据一个统计

现在youtube大概只需要花大概不到一周的时间

产生的这样一个用户生成的数据

视频的这样一个量

就是人类从最开始到现在所制作的所有电影的

这样一个程度

那么这是把人考虑进去之后

产生的数据量的一个变化

那么在这里面大家还可以发现

其他的类型的数据也面临着这种爆炸式的增长

包括传感器的

包括Web的

包含各种各样的这种机器人的数据

那么我们看了数据的这种生成的源头

看了数据的这样一个规模

那么这些数据到底是包含哪些类型的这种数据

是我们在大数据的这种分析系统里面去特别关心的

那我们来看大概会有这么一些类型的数据

是我们比较关心

也是今天占比非常大的

这样一个数据的这种类型

第一个就是这种关系的数据

那么也是我们常说的这种结构化的数据

那么这些数据的特征

就是它有比较好的这样一个数据的结构

有比较好的数据的类型

那么可以用传统的一些查找

或者是关联的方式进行分析

第二种类型是大概半结构化的

那么以文本的这种数据为例

比如说我们写的文章

我们在网页上面发表的一些评论

那么这种文本化的数据

通常也是今天非常关心的一种

这种数据类型

以自然语言作为它处理的基础技术

那么半结构化的数据

还包括一些这种图的数据

比如说记录了人和人之间的关联关系

这样的一些图的数据

尤其是当我们把时间的维度引入之后

这种数据就会变得比较复杂

那么这种图的数据

可能还和社交媒体

社交网络

人和人之间的这种社交关联是相关的

那么还有streaming data

这种data是今天传感器

以及其他的这种用户生成数据

比较典型的一个类型

那么streaming data实际上

它的一个特征就是用户基本上

只有很短的时间窗口

可以去处理这样的数据

那么过后这些数据就会被抛弃掉

或者说是被持久化到远端的

这样一个数据仓库上当中

好 那我们知道了数据的体量

我们知道了数据的这个类型

我们也知道了数据的这种来源

那么我们用这些数据到底能够做什么

第一个就是我们可以对数据进行整合

进行统计

那这是我们大概二三十年来

统计学家和这种数据分析师做了一个事情

它主要针对对象是结构化的这种

有关联的这样的一个数据

那么我们可以对数据进行搜索

进行查询

那么这基本上是以google

和百度这样的搜索引擎公司成立之后

他们的这种典型的数据处理的模式

那么在这里面需要对半结构化的数据

进行一定的这种挖掘和分析

那么第三个就是进行知识的归纳

进行知识的发现

那么这个是以专家系统出现之后

那么对数据产生的这种新的处理的一个模式

在里面主要用到了机器学习的方法

用到了数据挖掘的一些高级的技术

那么这是我们对数据进行处理的

一些利用的这样的一些模式

当然随着时间的这个推进

技术的发展

人工智能技术

尤其是人工智能技术的这样一个发展

实际上对于数据的这种利用

也在出现上升的这样一个趋势

我们更多的从简单的分析

简单的挖掘

简单统计演变到更复杂的这种知识的提供

智能的提供

那这是相关的这样一个研究的趋势

那么讲了这些我们对数据进行了

一个形态的描述

对它进行了一个概括性的

介绍之后到底什么是大数据呢

实际上大数据到今天也没有一个

特别严格和理论化的定义

那么它整体上给我们的感觉是

我们尽可能的去利用各种各样关联的数据

那么怎么利用呢

我们在里面包含了数据的这样一个获取

数据的存储

数据的处理

数据的分析以及数据的这种智能化

以及最后对数据的价值进行一个呈现

那么大数据实际上包含了

刚刚说到的很大的一个愿景

那么为了实现这样的愿景

实际上各个学科在交叉

不光包含了计算机和电子

这样传统的这种工科的学科

其实现在也延伸到了心理学社会学等等

和数据行业更加并且接触的

这样一些学科的一个整合

所以大数据可以说是一个比较宽广的一个领域

那么在这里面我们去尽可能的挖掘不同各种各样的

数据的这样一个价值

那么大数据一个误区

就是说可能很多同学都认为大数据

它最大的一个特征就是得大

实际上这是不一定的

那么在很多的时候

实际上大数据它更核心的

一个概念是能够对多元

对易购

对来自不同领域的数据

进行有效的关联 有效的挖掘

它的体量不见得是会非常的大

但他的分析的方法肯定是非常的

先进和非常的复杂

要有一定的深度的

那这张图实际上把我刚刚说的

这样一个概念给呈现出来

我们从X轴上可以看到这种数据的

这样一个体量数据的这样一个规模

那么从Y轴上可以看到数据处理的这样一个难度

数据处理所需要的这样一个计算的资源

实际上大数据它的一个概念

其实是从这两个维度上相互作用相互展开的

也就是说数据的体量数据处理的复杂度

数据处理的难度将共同决定了

大数据的一个特征

我们实际上是要用更复杂的方法

去处理更大规模的这样一个数据

好 那么在这里我会给一个视频

这个视频是一个美剧的这样一个片头

我们会通过这个片头让大家来体验一下大数据

从刚刚的这样一个角度它到底是一个什么样的特征

好 在刚刚的这个视频当中

实际上大家可以发现

在大数据的这样一个分析的背景下

其实在这个例子里面呢

就是相关的人员其实它可以通过各种各样的数据

比如说用户的面部的识别

用户语音的识别

用户身份的识别

以及各种各样识别之后的关联

来对犯罪的行为进行一个追捕

那么这是大家对大数据的一个

非常直接的一个展望

认为大数据可以将各种各样的信息进行追踪之后

对各种各样的行为进行判断

包括里面异常的行为

比如说犯罪来做到这样一个分析

所以这样一个例子实际上很好的

给出了大数据的一个可能在未来

会做到的一些事情

比如说它可以进行异常行为的发现

来进行这个犯罪的判断

可能它可以进行人的健康的一些异常的发现

来提前告知你

你可能会患什么样的病

然后应该做什么样的健康的护理

这是我们对大数据的

一个未来的展望和对它的一个描述

那么我们可能没有严格的概念

但是我们会有一个非常清晰的愿景

我们将声频的视频的还有半结构化的结构化的数据进行综合

然后进行整合从中发掘规律提供智能

这是大数据的一个愿景

那么在这里面呢

我们可以发现它的数据有些什么样的特征

它是多元的数据 对吧

有刚刚的这种音频的视频的

我们在里面可能关心的并不是因果关系

而是去关心他的这种关联关系

我们想挖掘一个行为

和犯罪的行为到底是什么样的关联

我们的很多逻辑并不是清晰的

可能是模糊的

我们想要知道它的一个概率有多大

而不是想知道他严格的

一个数值或者是定义是什么样的

这是很多大数据在未来的处理中会具有的特征

那么我们也尝试总结一下

大数据实际上我们强调的是

有一个更好的分析的方法

我们在更加宽广更加多元

更加易购的数据上来进行这样的分析

最后我们可以和传统的基于模型

基于规则的方法相比能够提供

更多的有差别的

有关联的这种数据的智能

我们说这门课的重点是

大数据系统

我们可能不是特别关心大数据的

分析和他去算法

那我们关心的是底层的存储网络

和计算资源怎么样组织来提供大

数据分析的这样一个上层的支持

我们来看大数据的系统到底包含了什么样的内容

大陆系统实际上关心的是怎么样

将传统的计算机系统的一些部件

包括网络的

包括计算的和存储的部件组合

在一起

让它能够对大数据的处理

大数据的分析提供一个底层的支持

那么在这里面我们非常关心的问题是怎么样

能够有效的把计算存储

和网络资源组织在一起形成

一定的体系结构

形成一定的这种错误的控制

以及友好的对上层的一个编程的接口

让程序员或者是数据分析师

数据科学家

能够有效的利用这样的

一些系统来进行数据的挖掘和数据的分析

那么在里边我们关心的是

各种各样的计算机资源怎么样

被合在一起

怎么样有效的提高它们的性能

我们的主题通常会涉及到

成百上千的服务器的资源

怎么样将他们进行有效的网络

组织以及存储的一个

冗余的控制来

达到高效的大数据系统搭建目标

那么我们来看

在大数据的这样一个系统里面

我们关心的主题大概会有哪一些

首先我们关心数据的采集

数据采集

涉及到了数据的传感器

数据的传输

那么我们怎么样有效的进行

大规模数据的一个感知

最终把它采集到数据中心或者是

数据处理的设备上

数据的传输

我们刚刚说到

怎么样有效的在远端和数据中心

进行数据的一个传输

以及在大数据系统内部

从不同的设备上进行数据的这样

一个传输数据的存储

数据进入到数据分析系统之后

实际上它需要被持久化或者是

短暂的进行一个存储

我们怎么样有效的对不同规模

不同的实验要求的一个数据进行

有效的存储

是我们关心的主题

数据的处理

我们怎么样利用这个成千上万的

这样一个服务器的资源有效的

把他们并发了使用起来

达到一个高效的一个数据处理的一个目标

用户的交互

最终我们的数据是要呈现给用户

我们怎么样设计好的这样一个交互系统

让用户可以体验到数据可以和

数据发生这样的交互

进一步刺激人类产生更好的这样

一个数据处理的这些方法和想法

这是在大数据系统里面

我们关心的各个主题

我们来看这些主题

它大概会分散到大数据系统的

这个框架中是什么样的一个样子

在底层我们有这样一个数据源

包含了外部的数据

以及各种各样的传感器传输过来的数据

再往上我们有数据的这个存储和数据

预处理的一个模块

在数据存储里面我们需要进行

数据的安全的控制

数据冗余的控制

达到数据的这样一个高效和安全的存储处理

以及我们会进行数据的清洗

以及错误数据的发现

在此之上呢

我们会重点去看数据并行处理的一些框架

包含我们课程中将要介绍的

MapReduce的框架

以及我们要介绍的内存中

数据处理的框架

再往上的话就会有更加精细和

更加特定化的

这种数据处理的一些平台

比如说这个大数据的这种数据库

包含我们要介绍的NoSQL和

以google bigtable为例的

这样一些大数据数据库的介绍

然后图的这种数据的一个计算

由于今天大量的数据是以关系的

这样的形式呈现的

那么怎么样对图数据进行处理

也是我们非常关心的一个点

流式的数据

我们刚刚说到有的数据实际上

很难让用户存储下来

在不断的进行分析

它是以流的形式在系统中呈现的

怎么样对这种流的数据进行处理

也是我们课程中关心的一个问题

在此之上就可以利用这样的一些系统达到服务

和应用的这样提供

在我们这里面也会介绍一些集成化的大数据

分析的这种工具和系统

支撑这样的一个大数据的系统

实际上是有一定的这种基础设施的一个构建的

在我们的课程中会简单介绍一下

这样的基础设施

我们会与您预算作为我们介绍的

一个样本来给大家介绍一下

基础设施是什么样的

资源的管理在这里面

实际上计算网络和通信的这种

资源是分布在各个层面上的

我们怎么样有效的协同

算网存三者以及怎么样对他们进行优化

来提高各个系统的运行的效率

我们课程的一个目标

是尽可能让大家了解和大数据

系统相关的各个方面的知识

我们希望大家知道我们所介绍的

从存储到计算以及到分析

各种各样的系统

他们最基本的工作原理是什么

我们希望给大家介绍他们的

局限性在哪

如果各位同学要进行一个大数据

分析的任务

你们怎么样去避免

避免这些系统的这个局限性

以及我们会介绍这些系统

你们应该怎么样去做

这个性能的评估

那怎么样去测试这些系统

是否满足你们的业务的一个需求

如果这些系统不满足你们的需求

你们有什么样的办法

去提升这些系统

怎么样在具体的业务中

去进行优化

那这是我们课程需要给到大家的

让大家能够了解这方面的知识

那么课程的这个先修条件

大概是这样的

我们并没有特别的

这个先修的条件

也就是说

只要你对大数据系统有兴趣

实际上这门课可能都

合适大家来听

那么我们希望大家

在准备上这门课之前

就能够了解一些这个高级的

编程语言

比如说C++ Java Python这样

一些基础的这种语言的知识

以及大家要有足够的能力去学习

一些我们在课堂中可能会去

简单提到的一些新的这个语言

那这是我们对课堂的一个先修的

一个要求

下面我们来介绍一下

这门课将会给大家

讲到的具体的一些系统是什么

那么我会在这里给大家

一个这个预览

让大家知道

在这门课上完之后

你们会学到系统包含哪一些

那么我们来看

在大数据的这个分析中

包含了从数据的收集存储处理

以及到后面的这种挖掘

实际上在这个流程里面

我们会提供一些圆形的这个系统

供大家去学习

那么在数据的这个基础设施这一部分

我们会介绍以云计算

和这种集成化的这种数据中心

为代表的这种基础设施

那么我会告诉大家

当你面临一个从无到有的这样

一个数据处理任务的时候

你第一步需要做的是什么

你怎么样获得最基本的硬件的

或者是虚拟化的硬件的

这样一个资源

这是我们在基础设施里面会给

大家介绍的

那么这张图实际上给到大家的是一个集成化的

这样一个机房的

一个例子

那么这种例子已经在全世界

包括中国在内现在得到这个工业界比较多的

这样一个应用

从这个一片空地上

用大概只需要几天的时间

我们就可以搭建出一个数据中心

然后满足你后面的这样一个数据

处理的一个需求

然后我们会介绍存储系统

在存储这里面

我们会重点介绍以JFS和HDFS

为代表的这样一个分布式的文件系统

然后这种分布式文件系统提供了

后面我们需要用到的MapReduce

以及Spark里面最基础的

这样一个数据设施

那么在大数据这个处理里面

我们会介绍几种分布化的

这种数据处理的框架

包含MapReduce

对这种顺序话可以串行执行的

这样一个数据

进行一个有效的分布化和并行的一个处理

那么我会介绍Spark

介绍大家怎么样在一个内存化的

这样一个环境中进行高效的

迭代化的这种处理

我们会介绍这个streaming的

平台storm告诉大家

怎么样对流式数据进行有效的

一个分析和处理

我们会介绍in-memory的这种processing

内存化的数据处理

那么在这里面

我们会构建内存化的一个文件系统

来增强原有的这种基于磁盘的

这种文件系统

那么针对迭代

针对交互的这种数据分析

进行更加快速

更加高效的这样一个数据分析

这部分是以spark作为主要的例子

那么我会介绍大数据的数据库

那么大数据数据库今天成为了

工业界一个非常重要的一个组件

他们会将自己的数据仓库

以及自己的数据分析

搭建在大数据的这样一个数据库的基础上

我们会以谷歌的bigtable

作为一个例子来给大家介绍

怎么样有效的利用分布式文件系统

利用MapReduce构造一个这种

类似于关系数据库的

一个接口的这样一个

数据分析的这样一个

数据库的平台

我们会介绍流式数据的处理

那么在流式数据处理里面

我们会把数据当成像水流一样的

这样一个可以有一定的时间窗口

进行分期的这样一个模态

然后对这种流式市的数据

我们会介绍他基本的处理单元

以及它的优化的一个

目标和优化的策略

我们会介绍一些针对大数据的

这种图的数据处理的系统

在这里面我们会去看看图的数据

和传统的这种结构化的数据

它会有什么样的差别

表格的数据比如说那么这种差别

大数据系统是怎么样去处理的

我们怎么样将图的数据分布在

不同的数据节点

那么我们怎么样将图的处理算法

分布到不同的计算节点

进行大规模的图的分析

在这里面我们会以graph lab以及

那个spark上的graph

作为介绍了这样一个蓝本

给大家介绍大数据的这种图系统

我们会介绍大数据的机器学习的

一些系统

在这里面我们主要去挖掘数据

让数据能够产生一定的规则

一定的智能

那么由于机器学习已经成为今天

大家去产生智能的一个重要的手段

那么有没有什么办法可以有效的

降低编程人员或者数据工程师的

这样一个压力

让他们像使用其他的一些模块

一样去使用机器学习的这样一些方法

那么mahout就是我们会去给大家

介绍的一个重要的例子

告诉大家怎么样非常简单的

在大规模的集群上实现你的继续学习方法

我们还会去介绍大数据的一些可视化

那毕竟最后数据的智能是要提供

给相关的人员

这些人员不一定是工程人员

他们需要看到的是数据能够带给

他们的这种视觉上的一个感知和视觉上的冲击

那么这两种冲击产生之后

用户又会进一步的得到更多的这种数据上的启发

以及其他的想法

那么怎么样进行数据的可视化

那么成为今天非常被研究人员

和数据工程师关心的一个课题

那么在这里面

我们会介绍一些可视化数据的一些工具系统

以及它的这种系统优化的方案

好我们给大家介绍了

什么是大数据

什么是大数据系统

以及在我们的课程中

我们会以哪一些例子给大家介绍

大数据系统

那么现在我会给大家简单的

介绍一下

我们在大数据系统这门课中

我们关心的一些核心的问题是什么

以及我们一般性的一些原则是什么

那我们来看在大数据的这个系统

这门课当中我们至始至终关心的

一个核心问题是什么

我们就是说要怎么样把计算网络

和存储的资源把它们整合到一块

把它们进行结构化的这样一个优化

进行有效的资源分配

来达到一个高效的一个平台

针对我们不同的数据处理业务

也许我们的这种结构

我们的分配策略是不一样的

但是我们整体的目标是要利用这三种资源

进行有效的大数据的这样一个处理

那么在这里面我们会有一些

一般性的目标

那么一般性的目标是什么样呢

我们就会在一个一切资源

都可能出错不可靠

比如说我们的网络会断掉

我们的存储可能会丢掉数据

在所有资源不可靠的这样一个背景下

我们想要达到这样的一些目标

首先我们有一个贪心的目标

假设我们有1万台机器

我们是希望我们的一个数据处理任务

能够有效的把这1万台

机器上的计算

存储资源都利用起来

这是我们一个贪心的目标

我们希望我们有很多的资源

有很多的钱可以购买

很多机器之后

我们的算法

我们的系统能够有效地帮我们把

这些资源都利用到

第二我们希望它是能够可扩展的adaptive

当我们有1000台机器的时候

我们的系统能够工作

我们后面又增加了5000台机器

我们希望这6000台机器能够

同样有效的可扩展的工作起来

我们希望整个系统

还能够呈现出模块化的特征

我们今天要处理的是批量的数据

我们使用了一个MapReduce这样

一个框架

那么过一段时间

我们需要处理流式的数据

我们希望增加一个spark streaming

或者是我们希望增加一个storm

它同样能够有效的工作起来

所有的系统的模块

它应该能够像搭积木一样

不断的在硬件的资源上

得到净化

得到一个组合

这是我们对大数据系统里面的

问题和我们的目标

以及我们的假设的一个最笼统

也是最根本的一个定义

那么在大数据里面

我们会有什么样的一些原则呢

这两个原则是我们非常

是在大数据系统这门课里面非常重要的

一个就是并行的原则

我们希望所有的任务能够并行化

而不是像传统在单线程的这样

一个模态下

我们进行的这样一个

创新的行为并行

它将发生在我们课程的所有环节

从存储到处理到后面的计算

第二个是虚拟化

这个虚拟化不是简单的

云计算中的这种资源的虚拟化

我们的虚拟化会贯穿整个课程

包括我们怎么样对存储

进行一个有效的虚拟化

让存储成为上层的一个提供数据的一个接口

包括我们对计算怎么样进行虚拟化

怎么样去考虑计算的问题

把流式的处理

内存化的处理和批量的处理

都虚拟化成数据的这种处理的单元

在大数据系统的这个搭建当中

实际上我们还有一个原则

就是要去选择

我们要去取舍到底是scale out还是scale up

所谓的scale up

就是说我们要搭建一个非常

大的这样一个计算机

有非常大的CPU

有非常大的内存

来处理大规模的数据

那么所谓的scale out

我们有很多小的这种server

我们把它们放到一起

通过网络

通过其他的方式进行互联

来进行一个大规模的系统搭建

这两条路实际上在过去的

几十年中都得到了发展

有相当一部分的工作

他们会去搭建非常大的这样

一个计算机

比如说超算

有相当一部分工作

尤其是工业界在做的

他们会去搭建一系列这种scale out的

这个一个集群

然后让很多能力比较弱的机器

能够组合在一起进行有效的工作

在我们这门课当中

我们可能更多的会去关心scale out

这样的一个问题

我们也会把scale out

把大量的小机器搭成大机器

这样的一个准则

作为我们这门课的一个目标

这是我们这门课的一个偏重

我们有了一大堆的小机器

我们想要在这些小机器上

对整个大数据系统进行scale out

实际上最基本的一个原则

就是怎么样对任务进行拆分

那么我相信各位同学

在之前的学习当中

已经接触到了分治这样的一个概念

什么意思呢

我们可以会把一个大的任务

进行切分

切分之后

我们会将每个小任务在

不同的这个工作节点上

可能就是我们系统中的一些小服务器上

进行处理

处理之后

我们会得到一些局部的结果

每个小的数据可能会生成一个小结果

那么我们最后会对这些小结果

进行一个整合

然后如果我们整合的非常好的话

我们希望整合出来的结果就是

原来我们一个大问题一个大项目

需要得到的一个最终的结果

那么在这里面

我们发现它的一个核心是什么呢

我们怎么样有效的对任务

进行切分

我们能够把一个大任务变成一系列小任务

第二我们怎么样

对局部的结果进行整合

并不是所有任务都能够进行拆分

进行整合的

那么我们在大数据系统里面

就会关心那些能够被拆分

能够被整合

当它们拆分和整合之后

我们又怎么样优化各个部分的

这个处理最后达到

比如说整体的这个任务处理的时间尽可能短

这样的一些目标

分治是我们大数据系统里面一个核心的思想

那么分治之后带来的一个必然的

问题是什么呢

资源的不协调资源的不协同

那这张图确实开了这样一个玩笑

我们发现当每个车子分治的

去运输自己的货物

需要有自己的路径去走的时候

假设我们没有一个很好的控制

很容易造成的一个问题就是死锁

大家可能会共同去增强某一些稀缺资源

一些关键资源

那么在我们这个例子当中

一个关键的资源就是

十字路口的通过权

当大家不受协调

去争抢这个资源的时候

可能就会造成性能的降低

那在我们的例子当中

直接造成了这个交通的拥堵

那么我们大数据系统一个核心的任务

就是要去解决这样的问题

怎么样让大家能够独立的去

做一些小任务

同时当大家在增强

核心资源的时候

又能够有序的进行有效的分配

以及做到对这种阻塞

尽可能的避免

那么在这里面

实际上我们把这个问题

细化了之后

就会发现

其实它并不是一个说做就能做的

一个事情

我们会面临这样的一些挑战

首先我们怎么样把任务分配给

各个工作节点

什么样的任务该分配给

什么样的节点

因为它们可能本质上会有

不同的能力

不同的数据以及不同的

这个硬件资源

那么我们怎么样去进行它们之间的协调

当有的工作节点完成的快

有的工作节点完成的慢

我们在这个过程中怎么样去进行

一个有效的协调

我们要怎么样去整合它们的结果

当有的结果先生成

有的结果后生

我们怎么样最大化

我们整个系统的输出

以及在这个过程当中

如果发生一些意外

有的worker

有的工作节点死掉之后

我们应该怎么样去进行任务的重新分配

保证整个系统是健壮的

那么等等

这样一些问题都是我们在大数据

系统课程当中会去慢慢触及到

然后会去解决的一些

关键的点

那么在我们正式讲

各个具体的系统之前实际

我们会给大家一些背景知识

那么这个背景知识就是今天我们

去控制大数据系统里面进行

资源的协同

进行有效的这种死锁

避免的一些方法

第一叫做master slave

中心节点和边缘节点

这样一个分配的方法

所有的工作的节点

它们都会和一个中心的节点

比如说叫做master

跟它进行沟通

然后来确定自己现在能做什么

不能做什么

那么中心的节点

就负责保证大家的这个执行次序

然后完成了一个事情的一个同步

那么我们今天的公司

我们今天的这个学校等等

很多组织实际上是以这种方式

来进行人员和过程的一个协调的

同时我们可以创建一种叫做生产者

和消费者的这样一个流

那么大家都会把自己生产出来的数据

生产出来的一些资源提供到

一个队列当中

我们通过这个生产者和消费者的队列

对这个核心的资源争抢的资源

以及关键的信号量进行一个维护

也可以达到对不同的工作节点

进行争端避免的这样一个功能

还有我们可以创建整个工作的

这样一个队列

那么有点类似于我们生产者

和消费者这样的一个模型

在这样的一个工作队列当中

我们也可以对一些关键资源

进行顺序化的一个分配

那么核心思想就是我们还是需要

相对比较中心的一个地方来进行

一些争议资源的一个协同

那么这是在大数据课程当中

在后面我们会反复会用到的一些

比较基础的这样一个概念

那我们来看看

介绍了这些之后

我们到底需要在整门课中

我们需要去了解哪一些背景的

这样一个知识呢

首先我们可能要改变

我们对体系结构的这样一个认识

弗诺依曼结构它在一个单点上

可能是我们处理单击程序

尤其是单线程程序这样有效的

一个架构

那么在大数据的这样一个系统中

我们依然用了弗诺依曼的这样

一个体系结构

但是由于我们的工作节点非常多

实际上我们会需要去考虑

其他的一些因素

来有效的完成大数据的这样

一个任务的处理

那么在大数据系统中

第二个这个思路是什么呢

我们需要去隐藏很多的信息

尤其是对于非编程人员

我们需要隐藏数据

我们需要隐藏计算资源等等这种

非常底层的这样一些信息

信息的隐藏化

接口化是大数据系统核心的设计的一个理念

那我们需要把what和how给分离

和刚刚第二点是对应的

在大数据系统中

我们通常会给数据分析提供

非常抽象化的一些接口

那么这些数据分析人员使用

这些接口的时候

他并不需要知道底层

对应了多少个

CPU或者是多大的memory

他需要使用的是这个接口

能够完成一个任务

比如说MapReduce

给到用户的接口就是map和reduce两个阶段

那么总结一下我们所有的这些principle

所有的这些设计原则大概包含了

哪一些要点

首先我们要的是scale out

尽管scale up是今天科研的一个方向

但是在大数据系统中

我们通常希望我们能够不断的

扩展这个系统的规模

我们能够让系统能够自适应的

不断的向外去扩延

我们在数据的处理当中

我们认为数据是不太能够移动的资源

我们通常需要把代码

不断的去靠近数据

那么这也是和我们刚刚说到的

弗诺依曼体系结构

它有一定差别的地方

我们在数据中心当中我们的代码

是可以移动的资源

而我们的数据是一个指定的位置指定的输入

那么我们尽可能的让代码去靠近数据

那么我们在大数据系统中想要

尽可能多的去顺序的处理数据

而不是随机的对数据进行处理

这也和我们单击上的这种编程体验是违背的

我们希望我们的数据能够有效的

利用到磁盘的顺序读取的优势

能够有效的利用到批量数据

处理的这样一个性能

那么顺序数据处理就是核心的

一个要求scalability的这种seamless

我们需要整个系统的扩展是对用户透明的

当我们有100台机器的时候

我们能够有效地将100台机器的性能利用起来

而当另外的50个机器加入到

整个数据处理任务的时候

我们希望整个过程是无缝的

是能够自动拓延的

那么这是对大数据系统的

一个要求scale out

我们希望代码靠近数据

我们希望整个数据能够是

顺序化的处理而避免各种随机的跳动

我们希望整个系统的可扩展性是透明的

尤其是对非编程人员是透明的

高级大数据系统课程列表:

Introduction to Big Data Systems

-What is big data and what is big data system?

--Video

-Problems in big data systems?

--Video

-Overview of the course

--Video

-Principles of big data system design

--Video

Basics of Linux Data Processing

-Manipulating Data on Linux

--Video

--Video

--Video

-Basics of Linux Data Processing--Manipulating Data

-Running Commands on a Single Machine

--Video

-Running Commands on a Single Machine--作业

-Using a Linux Cluster

--Video

-Using a Linux Cluster--作业

Distributed File System

-Storage for Big Data Computing: Distributed file system

--Video

-Storage for Big Data Computing: Distributed file system--作业

-File system and GFS

--Video

-File system and GFS--作业

-Understanding HDFS using Legos

--Video

-Understanding HDFS using Legos--作业

-File System Implementation and DFS

--Video

--Video

-File System Implementation and DFS--作业

MapReduce

-What is MapReduce and why

--Video

-What is MapReduce and why

-Learn MapReduce by playing with cards

--Video

-Processing pattern

--Video

-Processing pattern--作业

-Hadoop

--Video

-Hadoop--作业

-Algorithms in MapReduce

--Video

-Algorithms in MapReduce--作业

-Tutorial

--Video

In-memory Processing

-Background

--Video

-Background--作业

-Spark

--Video

-Spark--作业

-Use Spark for data mining

--Video

-Use Spark for data mining--作业

-Spark data processing

--Video

-Spark data processing--作业

-Experiment in Spark

--Video

-Experiment in Spark--作业

Streaming Data Processing

-Introduction to streaming data processing

--Video

-Introduction to streaming data processing--作业

-Storm

--Video

--Video

--Video

-Storm--作业

-Spark streaming

--Video

--Video

-Spark streaming--作业

NoSQL

-NoSQL introduction

--Video

-NoSQL introduction--作业

-Common Advantages

--Video

-Common Advantages--作业

-Bigtable

--Video

-Bigtable--作业

-Master Startup

--Video

-Master Startup--作业

-HBase

--Video

-HBase--作业

Graph Processing

-What is GraphDB and Graph data processing

--Video

-What is GraphDB and Graph data processing--作业

-Graph systems

--Video

-Graph systems

-Example of a GraphDB

--Video

-Example of a GraphDB--作业

Machine Learning System

-Mahout

--Video

-Mahout--作业

-Case Study: Recommendation

--Video

-Case Study: Recommendatio作业

-Recommendation in Mahout

--Video

-Recommendation in Mahout--作业

Video笔记与讨论

也许你还感兴趣的课程:

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