当前课程知识点:大数据系统基础 >  5.内存计算 >  授课视频 >  5.19Spark的局限性

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

5.19Spark的局限性在线视频

5.19Spark的局限性

下一节:NoSQL与Cassandra

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

5.19Spark的局限性课程教案、知识点、字幕

Spark虽然想成为大数据

分析的一个基础的变成模型

而且也确实取得了很好的进展

但是它也并不是没有局限性的

我们通过这个例子来看一下

这样的一个局限性

我们知道图算法里面的BFS

广度优先搜索

是一个非常基础的算法

有很多的算法

比如说最短路径 数据发现等等

都是基于这样的图遍历的算法

那么我们来看一下图遍历算法

在Spark中会是怎么样实现的

那么我们这里面有一个图

它有这样的一些节点和连接

我们会从一个起点开始

遍历那么每一个节点

被访问过以后我们都会在这个

节点的这个RDD里面把它标识出

它是已经被访问过的

那么我们第一开始

从这个黄色的节点开始

所以它对应了这样的Spark的RDD

也标识成了黄色

那么下一步根据广度优先搜索

我们会去访问

这个黄色节点的两个邻居

也就是这两个绿色的节点

那么这两个绿色的节点

也会被标识成

它们已经被访问过

那么依此类推我们再去访问

这两个绿色节点它们相邻的

节点中还没有被访问过的

那么就是这三个蓝色的节点

再下一步我们访问到了这个

紫色的节点

那么最终我们就完成了这个

图遍历的工作

那么我们可以看到

实际上这个图的节点

我们最后的这个状态

和开始的这个状态

中间有这么多的状态

在这么多的状态里面

我们看到什么

每次我们都需要去标识

其中被访问过的节点

但是由于Spark它这个RDD的

这个限制使得我们不能够

在这个里面去标识

而只能把整个数据复制一份

然后只标识其中的一个节点

或者是很少数的一些节点

那么我们可以看出这种操作

都是内存拷贝操作

甚至有时候是网络操作

而且这样的数据积累多了

甚至会引起磁盘的I/O操作

也就是说采用Spark

由于它的为了容错

使得它用了RDD这样的一个抽象

使得它的数据集

是immutable只读的

因此我们在做BFS

这类算法的时候

我们会发现它会非常的低效

它会进行大量无用的

这个内存拷贝

并且会多占很多的内存

使得性能和内存容量上面

实际上都是具有相当负面的影响

所以我们总结这样的一个局限性

也就是说Spark

它每次都去做细粒度的数据更新

由于Spark它的这个

基于粗粒度的RDD

只读的这样的数据模型

需要RDD的变换

才能够去修改这个

节点是否访问这样的信息

所以产生了大量的数据复制

导致这个效率不高

所以这也是Spark的

非常重要的一个局限性

因为它想成为整个大数据的

基础的这样一个编程框架

却还有这样的

比较严重的问题

至少对图遍历这样的

比较基础的算法

还会有这样的问题

所以这也是目前一些

系统研究上面的一些工作

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

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

5.19Spark的局限性笔记与讨论

也许你还感兴趣的课程:

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