设为首页 加入收藏

TOP

Spark 实时处理 总文章
2019-03-15 01:18:21 】 浏览:31
Tags:Spark 实时 处理 文章
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zimiao552147572/article/details/88556157

================= 最新文章 ======================

1.CDH 6 的安装和使用

2.用户画像

3.Spark 实时处理

==============Spark 实时处理 总文章 =================

Spark(SparkSql) 写数据到 MySQL中(Spark读取TCP socket/文件)

Spark Streaming 整合 Kafka(Spark读取Kafka)

Spark Streaming 整合 Flume(Spark读取Flume)

Spark Streaming 开窗函数 reduceByKeyAndWindow

map、flatMap(流的扁平化)、split 的区别


>=========== Spark 实时处理 介绍 =================

基于Spark通用计算平台,可以很好地扩展各种计算类型的应用,尤其是Spark提供了内建的计算库支持,像Spark Streaming、Spark SQL、MLlib、GraphX,这些内建库都提供了高级抽象,
可以用非常简洁的代码实现复杂的计算逻辑、这也得益于Scala编程语言的简洁性。这里,我们基于1.3.0版本的Spark搭建了计算平台,实现基于Spark Streaming的实时计算。
我们的应用场景是分析用户使用手机App的行为,描述如下所示:

手机客户端会收集用户的行为事件(我们以点击事件为例),将数据发送到数据服务器,我们假设这里直接进入到Kafka消息队列
后端的实时服务会从Kafka消费数据,将数据读出来并进行实时分析,这里选择Spark Streaming,因为Spark Streaming提供了与Kafka整合的内置支持
经过Spark Streaming实时计算程序分析,将结果写入Redis,可以实时获取用户的行为数据,并可以导出进行离线综合统计分析
Spark Streaming介绍

Spark Streaming提供了一个叫做DStream(Discretized Stream)的高级抽象,DStream表示一个持续不断输入的数据流,可以基于Kafka、TCP Socket、Flume等输入数据流创建。
在内部,一个DStream实际上是由一个RDD序列组成的。Sparking Streaming是基于Spark平台的,也就继承了Spark平台的各种特性,
如容错(Fault-tolerant)、可扩展(Scalable)、高吞吐(High-throughput)等。

在Spark Streaming中,每个DStream包含了一个时间间隔之内的数据项的集合,我们可以理解为指定时间间隔之内的一个batch(批次),每一个batch(批次)就构成一个RDD数据集,
所以DStream就是一个个batch(批次)的有序序列,时间是连续的,按照时间间隔将数据流分割成一个个离散的RDD数据集

streaming-dstream
我们都知道,Spark支持两种类型操作:Transformations和Actions。

Transformation从一个已知的RDD数据集经过转换得到一个新的RDD数据集,
这些Transformation操作包括map、filter、flatMap、union、join等,而且Transformation具有lazy的特性,调用这些操作并没有立刻执行对已知RDD数据集的计算操作,
而是在调用了另一类型的Action操作才会真正地执行。

Action执行,会真正地对RDD数据集进行操作,返回一个计算结果给Driver程序,或者没有返回结果,如将计算结果数据进行持久化,
Action操作包括reduceByKey、count、foreach、collect等。

同样,Spark Streaming提供了类似Spark的两种操作类型,分别为Transformations和Output操作,它们的操作对象是DStream,作用也和Spark类似。

Transformation从一个已知的DStream经过转换得到一个新的DStream,而且Spark Streaming还额外增加了一类针对Window的操作,
当然它也是Transformation,但是可以更灵活地控制DStream的大小(时间间隔大小、数据元素个数),
例如:window(windowLength, slideInterval)、countByWindow(windowLength, slideInterval)、reduceByWindow(func, windowLength, slideInterval)等。

Spark Streaming的Output操作允许我们将DStream数据输出到一个外部的存储系统,如数据库或文件系统等,执行Output操作类似执行Spark的Action操作,
使得该操作之前lazy的Transformation操作序列真正地执行。


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spark与深度学习框架——H2O、dee.. 下一篇《炼数Spark MLlib 机器学习算法..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }