当前课程知识点:大数据系统基础 >  5.内存计算 >  授课视频 >  5.13Spark编程实例——Log挖掘

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

5.13Spark编程实例——Log挖掘在线视频

5.13Spark编程实例——Log挖掘

下一节:5.14Spark编程实例——WorkCount

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

5.13Spark编程实例——Log挖掘课程教案、知识点、字幕

好 下面我们以log挖据

来以一个非常简单的例子

为例来看

这个Spark执行的这样的一个

过程到底是怎么样的

那么它其实很简单

它就是做的操作

就是将数据从文件系统中

先调到内存里面

然后进行一些交互式的查询

我们现在有这样的几台机器

其中有一个是Driver

然后另外几个是Worker

就相当于这是一个控制的部分

那么剩下几个是做工作的部分

那么我们第一个Spark的语句

是这个spark textFile

它会产生一个RDD

从这个文件系统中

hdfs从这个文件系统中

产生这样的一个RDD Lines

这是我们的这个基础的RDD

然后我们从这个Lines里面

我们去过滤

过滤到其中这个

所有还有以ERROR开头的

这样的一些语句

这是一个变换也就是说

我们把Lines把它变换到了

这个ERROR的这个部分

然后我们继续的去做这个分词

把这个ERROR把它来做split

把它做分词

然后生成这个massages

这样一个RDD

那么这样的一个

后面这个messages cache

这样的一个调用

它说明什么

是说我们要尽可能的把这个

massages的这个信息

保留在内存里面

到在我们用完了这个

所以这样以后这个cacheMsgs

它会尽量的保留在内存

下面我们如果要对这个

cacheMsgs做多次查询的话

这个部分系统会尽量的

把它放在内存里

而不需要重新生成

或者是重新排上去读取

第一个就是去查说

在这些这个错误的信息里

包含有FOO的这个消息

到底有多少

然后最后把它的count输出

这个是这样的一个操作

这个count我们刚才讲过

count就是一个Action

那么这个数据

现在这个cacheMsgs它可能

分布在多个机器上

有Worker1 Worker2

Block3分布在不同的机器上

那么这样一个操作

就由Drivr把这样的一个命令

发给不同的Worker

在本地的这个做完了

这样的一些

实际做完了这个filter的

这个操作以后会把结果

返回给Driver

Drivr这时候就

返回这样的一个技术值

也就是说

在这个产生的这个消息里面

含有FOO的这些消息到底有多少个

那么这个每台机器上

实际上还有

保存了这个消息的cache

那么这样的话

这个cache我们刚才因为

已经调用了这个cache

这样的一个东西

那么所以这个消息

现在cacheMsgs

现在实际上是

如果内存量足够的话

它会缓存在内存里面

所以当我们在做下一个

contains bar这样一个

查询的时候

这个查询会直接在这个cache

上面来进行

并且把结果返回给Driver

所以这个性能在1TB的数据

可以在5-7秒内完成

而数据如果在硬盘上的话

需要170秒的时间

才能够完成

所以可以看到说

性能得到了很大的提高

下面这个例子

是一个逻辑回归的

这样一个例子

这是一个机器学习的一个算法

那么这个算法首先也是

从这个文件里面

把数据读出来

然后把它cache

到这个内存里面

然后这个生成一个

随机的一个向量

那么这个向量

后面我们再继续

再去做这个迭代的这个

Map Reduce就是这部分

实际上就是整个机器学习的

这样一个过程

也就是说我们

先有一个随机的

这样的一个线

那么通过这个线

我们算一下说它和

现有的这些点之间的这个关系

通过这样的一个公式

可以算出它的这样一个T度

那么用这个W

去减掉这个T度以后

我们就和这个能够实际分类的

这个向量就更加的接近一些

产生我们要做多个迭代

每次迭代实际上都是

先去做这个MAP

就是把每个点对每个点

我们都去算这个

它和当前的这个W之间的

这个向量之间的

这样的一个点击

这样的一个结果

那么这个结果算完以后

实际上最后生成

这样的一个T度值

那么这个T度值最后

是让这个向量

去减去这个T度值以后

再做下一次的迭代

那么迭代多少次

这个是事先设定的

也就是这个算法

最后也是一个

这个不断迭代以后收敛以后的

一个算法

最后就可以生成

我们真正的逻辑回归的结果

就是这个分类的向量

就可以生成了

那么这个逻辑回归的性能

我们也可以对比一下

如果用Hadoop来做

这样的一个逻辑回归

对同样的数据集来讲

如果要算比如说30个迭代的话

需要将近一个小时

那么我们可以看到

这个在Spark

实际上它需要的时间

就远远少于这样的一个时间

但是我们也可以看到

这样一点就是说

在做这个第一个迭代的时候

实际上Spark的这个时间

还略高于这个Hadoop的时间

我们在这儿也可以看到

这个Spark它的第一个

iteration第一个迭代

它大概需要174秒

而Hadoop它平均来讲

它要花127秒来做一个迭代

那么后续的

因为我们cache了这个数据

所以后续的我们只需要

这个6秒钟来做一个新的迭代

所以这个时间就大大的缩短了

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

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.13Spark编程实例——Log挖掘笔记与讨论

也许你还感兴趣的课程:

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