当前课程知识点:大数据系统基础 >  7. 流计算 >  授课视屏 >  Video

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

Video在线视频

Video

下一节:Video

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

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

我们现在来介绍

流计算的技术挑战

那么流计算的目标是什么

首先我们从刚才的这样一个

流计算的模式介绍中

我们可以看到

流计算首先它具有一种实时性

也就是说

这个我们可以想想

Twitter的这样的一个模型

也就是说

这些用户一直在以

一个非常高的速度

在发这个twitter

那么我们希望能够每一条到来

这个系统里面的时候

都可以以一个非常短的时间

能够处理完毕

也就是说所谓的实时性

那么另外一个问题

是所谓它的可扩展性

也就是说

这个消息到达的速度

可能是变化得很快的

那么你后面这个系统

能不能做有效的这个扩展

能够在消息到达速度的

变化中仍然能够达到这个

很好的性能

第二个问题是容错性

容错又包括所谓数据的错误

和系统的故障这两类

也就说

首先到达的这些数据里面

可能就某些就是错的

那么其次

还有我们可能在这样的一个

通过一些机器来处理

这样的一个流处理

那么如果有一台机器坏掉了

这个时候怎么样去处理

那么需要注意的是

流计算要求的是在

系统故障的前提下

还能够达到这个实时性

所以这是一个

实际上是一个非常困难的问题

第三是一个可编程性

我们希望写这样

一个处理程序的时候

程序是很好写的

而不能够要很困难的去

处理很多细节的问题

那么当系统的配置变化的时候

或者当应用需求变化的时候

我们的这个程序应该很简单地

就可以处理

而不需要去变化非常多的地方

这样子编程性就会比较差

好那我们来首先来看一下

实时性和可扩展性

那么相对于批处理任务来说

它一般是对固定规模的数据

做处理

也就是说我这个数据处理系统

它的输入的这个规模是固定的

那么执行时间

它也可以长达几十个小时

所以从这个角度来讲

对这个批处理任务来讲

它的实时性要求

是相对来说是非常弱的

那么对于流处理来说

这个数据到达的

速率变化可以很大

那比如说我们以twitter为例

它白天的这个twitter的

发布的速率

就要比它夜晚要大很多

所以它有一个这样的一种模式

就是说这个是rate的话

如果是

这个是时间的话

那么尽量会体现出这样的

一类的特点

那么在这样的一种情况下

就要求系统能够迎合这个速率

处理速率所带来的变化

那么叫有两种策略

一种策略是说

我的系统上能够扩展

比如说

我晚上的时候用一台机器来做

那当我知道负载增加时候

我就会扩展一些机器来做

当然当这个晚上到这个时候

这个负载流下降的时候

可以把这些机器去掉

我只用这一台机器来做

这样更加地经济

那这样就需要对这个流处理的

这样的整个系统的架构

就有比较好的

框架要能支撑比较好的伸缩性

那么另外还有一种方法

比如说即使在这种情况下

我们可能说

这个峰可能会非常高

这个峰可能会非常高

那么在这种情况下

即使我装了这些机器

又加了机器可能还是不够

可能实际上还需要几台机器

但是这些机器你实际上没有了

那么所以这种情况下

需要预先定义好降级处理的方法

也就是说

实在是处理不过来的话

那么我应该怎样去处理

这样的一个任务

当然最简单的策略

大家可以想象

就是直接把这个丢掉

就是说你上面这些我不处理了

那对应到twitter这个

刚才我们举的这个例子里面

那么实际上相当于

中间有些数据我们就

没有去处理

我们就它丢弃掉了

那也是一种方式

当然这种方式必然造成

我们最后的那个统计结果

是不准确的

当然我们知道它一定是偏低的

当然这个是需要和这个

实际应用领域

密切相关

也就是说这个领域管允许你用

这种降级处理的方法来做 对吧

那么第二个重要的问题

重要的挑战 是容错

在容错

我们传统的这个批处理任务

我们都学过这个Mapreduce的

容错是怎么做的

那么他基本上是

采用重算的方式

也是类似的

Mapreduce会把所有的

中间结果都存储到HDFS上

来保证这个系统的这个

在计算失败的时候

可以补充中间的结果

进行后面的计算

那么像Graphlab

这样的图计算引擎

它实际上是提供的一种

checkpoint的一种方式

也就是说

把整个系统的一个中间状态

把它保存起来保存到硬盘上

所以是重算

或者是检查点设置的

这样的一类来处理系统故障

那么在数据错误的情况底下

一般来说

批处理任务会有

一个数据清洗的这样一个阶段

它预先地来完成这个

数据错误的处理

那么在流计算的时候

我们可以想象这个

没有时间来做预先的这个批处理

数据清洗

所以数据的错误

必须也是采用实时处理的

这样一个方式

另外 系统故障时候的容错机制

必须是一个低开销的

因为我们知道流计算

它有这种时时低延迟的要求

所以这个可以想像

它的处理难度会是非常大的

我们在后面会介绍S4和Storm的

这样一个容错的机制

那么第三个挑战

实际上是可编程性

那么在可编程性方面

我们需要说

它达到下面这样几个特点

第一个是描述自然

也就是说

写这个程序的时候

和人的思维方式

是比较接近的

第二个是表达能力强

那这讲的是说

它可以表达很多类型的

流处理的任务

第三个实际上是非常重要的

就是无需关注

或者说比较少来关注

这个容错机制和负载平衡

也就是这个编程接口

最好让用户集中在

他们所关注的这个业务

也就是怎么去处理这个数据上

而容错机制和负载平衡

最好是由系统自动地完成

而不需要由用户进行过多的

编程的人员进行过多的干预

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

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

也许你还感兴趣的课程:

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