Sparkstreaming实时开发详解(一)

简介: Spark Streaming接收Kafka、Flume、HDFS等各种来源的实时输入数据,可以使用诸如map、reduce、join等高级函数进行复杂算法的处理。最后还可以将处理结果存储到文件系统,处理结果保存到HDFS,数据库等。

一、Spark Streaming处理框架:


image.png


Spark Streaming接收Kafka、Flume、HDFS等各种来源的实时输入数据,可以使用诸如map、reduce、join等高级函数进行复杂算法的处理。最后还可以将处理结果存储到文件系统,处理结果保存到HDFS,数据库等。


二、SparkStreaming实时任务如何开发?


1. 数据的输入

1.1 socket(测试开发的时候使用起来很方便。)

1.2 HDFS(使用得很少)

1.3 Flume(也是很少)

1.4 自定义数据源(用得很少,我们公司里面没有出现过,但是不代表没有用。)

1.5 Kafka   真正企业里面使用的是kafka

2. 数据的处理:

企业里面怎么用?

2.1 RDD的那些算子

2.2 transform

2.3 updateStateByKey

2.4 mapWithState

2.5 Window窗口的计算

3. 数据的输出

3.1 print(测试的时候使用)

3.2 foreachRDD(允许用户对Dstream每一批数据对应的RDD本身做任意操作,企业里面也是使用的这个api)

这个就是真正项目上线的时候需要使用的API。

存入kafka,mysql,codis,reids,hbase

比如公司里面上班:

电梯:批处理,或者说是离线处理。

离线,数据量大

商场里面购物:

扶梯:实时处理,处理的是流数据

实时,每次处理的 数据量不大。


三、spark组件类比:


image.png

SparkCore:核心计算引擎

1. 核心的抽象 RDD

2. 程序的入口

val conf=new SparkConf

val sc=new SparkContext(conf)

后面无非就是一些算子对RDD进行各种操作。

SparkStreaming

1. 核心的抽象 DStream(一个DStream包括多个RDD,加了时间维度(隔一定时间执行一套RDD),不同时间RDD变换)

2. 程序的入口

val conf=new SparkConf()

val ssc=new StremaingContext(conf,Seoncdss(1))

SparkSQL:

1. 核心的抽象 DataFrame/DataSet

2. 程序的入口

spark1.x:    val sqlContext=new SQLContext(conf)

spark2.x:      val spark=SparkSessionxxx

后面的操作无非就是对dataFream/dataset进行各种算子的操作


四、Sparkstreaming架构:


– Client:负责向Spark Streaming中灌入数据(flume kafka)


• 整个架构由3个模块组成:


– Master:记录Dstream之间的依赖关系或者血缘关系,并负责任务调度以生成新的RDD


– Worker:①从网络接收数据并存储到内存中  ②执行RDD计算

image.png

spark中driver=AM , executor=worker节点


五、SparkStreaming作业提交


• Network Input Tracker:跟踪每一个网络received数据,并且将其映射到相应的input Dstream上


• Job Scheduler:周期性的访问DStream Graph并生成Spark Job,将其交给Job Manager执行


• Job Manager:获取任务队列,并执行Spark任务

image.png



目录
相关文章
|
消息中间件 分布式计算 Kafka
195 Spark Streaming整合Kafka完成网站点击流实时统计
195 Spark Streaming整合Kafka完成网站点击流实时统计
85 0
|
1月前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
79 5
|
消息中间件 数据可视化 关系型数据库
(3)sparkstreaming从kafka接入实时数据流最终实现数据可视化展示
1)我们通过kafka与各个业务系统的数据对接,将各系统中的数据实时接到kafka; 2)通过sparkstreaming接入kafka数据流,定义时间窗口和计算窗口大小,业务计算逻辑处理; 3)将结果数据写入到mysql; 4)通过可视化平台接入mysql数据库,这里使用的是NBI大数据可视化构建平台; 5)在平台上通过拖拽式构建各种数据应用,数据展示;
(3)sparkstreaming从kafka接入实时数据流最终实现数据可视化展示
|
2月前
|
消息中间件 监控 Kafka
Apache Kafka 成为实时数据流处理的关键组件
【10月更文挑战第8天】随着大数据技术的发展,Apache Kafka 成为实时数据流处理的关键组件。Kafka Manager 提供了一个简洁易用的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件修改、启动服务、创建和管理 Topic 等操作,帮助你快速上手。
52 3
|
7月前
|
消息中间件 关系型数据库 MySQL
Spark实时(数据采集)项目
Spark实时(数据采集)项目
160 2
|
7月前
|
消息中间件 分布式计算 Kafka
Spark与Kafka的集成与流数据处理
Spark与Kafka的集成与流数据处理
|
消息中间件 分布式计算 NoSQL
Sparkstreaming 介绍-架构 | 学习笔记
快速学习 Sparkstreaming 介绍-架构
Sparkstreaming 介绍-架构 | 学习笔记
|
消息中间件 存储 分布式计算
Sparkstreaming实时开发详解(二)
Spark Streaming接收Kafka、Flume、HDFS等各种来源的实时输入数据,可以使用诸如map、reduce、join等高级函数进行复杂算法的处理。最后还可以将处理结果存储到文件系统,处理结果保存到HDFS,数据库等。
117 0
Sparkstreaming实时开发详解(二)
|
消息中间件 分布式计算 Kafka
Spark Streaming实时流处理项目实战笔记——使用KafkaSInk将Flume收集到的数据输出到Kafka
Spark Streaming实时流处理项目实战笔记——使用KafkaSInk将Flume收集到的数据输出到Kafka