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



目录
相关文章
|
SQL 消息中间件 Kafka
流数据湖平台Apache Paimon(二)集成 Flink 引擎
流数据湖平台Apache Paimon(二)集成 Flink 引擎
1955 0
|
4月前
|
存储 JSON 数据处理
Flink基于Paimon的实时湖仓解决方案的演进
本文源自Apache CommunityOverCode Asia 2025,阿里云专家苏轩楠分享Flink与Paimon构建实时湖仓的演进实践。深度解析Variant数据类型、Lookup Join优化等关键技术,提升半结构化数据处理效率与系统可扩展性,推动实时湖仓在生产环境的高效落地。
513 1
Flink基于Paimon的实时湖仓解决方案的演进
|
5月前
|
存储 分布式计算 Apache
湖仓一体:小米集团基于 Apache Doris + Apache Paimon 实现 6 倍性能飞跃
小米通过将 Apache Doris(数据库)与 Apache Paimon(数据湖)深度融合,不仅解决了数据湖分析的性能瓶颈,更实现了 “1+1>2” 的协同效应。在这些实践下,小米在湖仓数据分析场景下获得了可观的业务收益。
974 9
湖仓一体:小米集团基于 Apache Doris + Apache Paimon 实现 6 倍性能飞跃
|
10月前
|
存储 缓存 数据挖掘
Flink + Doris 实时湖仓解决方案
本文整理自SelectDB技术副总裁陈明雨在Flink Forward Asia 2024的分享,聚焦Apache Doris与湖仓一体解决方案。内容涵盖三部分:一是介绍Apache Doris,一款高性能实时分析数据库,支持多场景应用;二是基于Doris、Flink和Paimon的湖仓解决方案,解决批流融合与数据一致性挑战;三是Doris社区生态及云原生发展,包括存算分离架构与600多位贡献者的活跃社区。文章深入探讨了Doris在性能、易用性及场景支持上的优势,并展示了其在多维分析、日志分析和湖仓分析中的实际应用案例。
825 17
Flink + Doris 实时湖仓解决方案
|
10月前
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
709 2
|
11月前
|
SQL 存储 HIVE
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
本文整理自鹰角网络大数据开发工程师朱正军在Flink Forward Asia 2024上的分享,主要涵盖四个方面:鹰角数据平台架构、数据湖选型、湖仓一体建设及未来展望。文章详细介绍了鹰角如何构建基于Paimon的数据湖,解决了Hudi入湖的痛点,并通过Trino引擎和Ranger权限管理实现高效的数据查询与管控。此外,还探讨了湖仓一体平台的落地效果及未来技术发展方向,包括Trino与Paimon的集成增强、StarRocks的应用以及Paimon全面替换Hive的计划。
1336 1
鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目
|
存储 关系型数据库 BI
实时计算UniFlow:Flink+Paimon构建流批一体实时湖仓
实时计算架构中,传统湖仓架构在数据流量管控和应用场景支持上表现良好,但在实际运营中常忽略细节,导致新问题。为解决这些问题,提出了流批一体的实时计算湖仓架构——UniFlow。该架构通过统一的流批计算引擎、存储格式(如Paimon)和Flink CDC工具,简化开发流程,降低成本,并确保数据一致性和实时性。UniFlow还引入了Flink Materialized Table,实现了声明式ETL,优化了调度和执行模式,使用户能灵活调整新鲜度与成本。最终,UniFlow不仅提高了开发和运维效率,还提供了更实时的数据支持,满足业务决策需求。
|
SQL 存储 分布式计算
HDFS数据(跨集群)迁移
HDFS数据(跨集群)迁移
|
分布式计算 运维 调度
Spark——成功解决java.util.concurrent.TimeoutException: Futures timed out after [600 seconds]
Spark——成功解决java.util.concurrent.TimeoutException: Futures timed out after [600 seconds]
11733 0
|
SQL 数据处理 Apache
Apache Flink SQL:实时计算的核心引擎
Apache Flink SQL 的一些核心功能,并探讨了其在实时计算领域的应用。随着 Flink 社区的不断发展和完善,Flink SQL 将变得越来越强大,为实时数据分析带来更多的可能性。

热门文章

最新文章