Spark(SparkSql) 写数据到 MySQL中(Spark读取TCP socket/文件)
Spark Streaming 整合 Kafka(Spark读取Kafka)
Spark Streaming 开窗函数 reduceByKeyAndWindow
Spark Streaming 整合 Flume(Spark读取Flume)
Spark 实时处理 总文章
spark提交命令 spark-submit 的参数 executor-memory、executor-cores、num-executors、spark.default.parallelism分析
1.CDH 6 的安装和使用 、CDH5安装
2.用户画像
3.Spark 实时处理
4.大数据组件安装(非CDH)和使用 总文章
5.大数据组件使用 总文章
6.window下 人工智能 Keras、TensorFlow、PyTorch、CUDA、cuDNN 的环境安装 总文章、window 安装 PyTorch
7.人工智能AI:Keras PyTorch 深度学习实战(不定时更新)
8.搜索引擎:Elasticsearch、Solr、Lucene
【日萌社】用户画像
【日萌社】C、C++笔记
【日萌社】JavaWeb+大数据笔记
【日萌社】CDH 6、CDH5
【日萌社】Python笔记
【日萌社】Keras、PyTorch
【日萌社】日语语法、日语单词 学习
链接:https://pan.baidu.com/s/1OBd1rbwGx0F8YnefM7R0Uw
提取码:0hal
链接:https://pan.baidu.com/s/1TKNZ6TtDxDtDUnezrcXJ8Q
提取码:2ber
链接:https://pan.baidu.com/s/1_XWMwcoNuDPdE3xkluo08A
提取码:b12m
链接:https://pan.baidu.com/s/1eW8YSrasGiTXpBFSSJd78Q
提取码:7aeu
链接:https://pan.baidu.com/s/1xi_3T6Nw__Sy-QQaN29O4Q
提取码:1gcs
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 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操作序列真正地执行。