# spark-realtime **Repository Path**: luan_hao/spark-realtime ## Basic Information - **Project Name**: spark-realtime - **Description**: Spark的实时项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-11-19 - **Last Updated**: 2026-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spark-realtime #### 介绍 本Spark实时数仓项目依托企业级真实的实时数据分析环境,对目前互联网大厂中常见的实时分析场景提出了一套广泛实用的技术解决方案。本项目以Spark为核心技术引擎,联合使用了多种大数据流行计算框架,例如Kafka、Maxwell、ElasticSearch、Redis、Kibana等。 为应对不同的流式数据采集场景,本项目给出了多种MySQL变动数据采集方案,并给出详尽的框架安装部署过程和代码解读流程。项目全程使用SparkStreaming作为实时计算引擎,使用Scala作为开发语言,简洁高效,贴近Spark开发背景 #### 架构图 ![输入图片说明](doc/photograph/1669444186377.png) #### 软件架构 Zookeeper,Kafka,Maxwell,MySQL,Hadoop,Redis,SparkStreaming,ElasticSearch,Kibana,SpringBoot #### 技术点 1,通过SparkStreaming解决了实时计算中最常见的精确一次性消费问题 2,采用Maxwell作为MySQL的变动数据采集工具,实时采集数据并发送至消息队列Kafka中 3,使用Scala语言开发SparkStreaming的实时计算程序,利用高阶函数抽象提取双流join、维度关联、精确一次性消费的工具类,解决实时计算中的常见难题 4,利用SpringBoot开发数据可视化展示接口,熟练掌握接口编写流程 5,利用SparkStreaming的广播变量编写实时计算代码优化计算流程,提高计算效率 6,采用Redis存储临时性计算数据、采用ElasticSearch存储明细数据、采用Kibana配置可视化分析,对接多种大数据分析框架,灵活组合应用,增加开发经验 #### 学习收获 1,掌握Scala语言开发Spark的实时计算任务的开发技巧 2,充分了解使用不同的CDC框架,例如Maxwell,采集MySQL变动数据以及数据采集结构和数据分析方法 3,掌握如何使用SparkStreaming和Kafka实现实时数据仓库的分层数据管理,提高数据复用性,提高指标分析效率 4,充分掌握使用SparkStreaming的实时计算开发技巧和任务部署策略 5,掌握ElasticSearch与SparkStreaming和SpringBoot的无缝对接技术,掌握SpringBoot编写数据展示接口,对数据进行可视化大屏展示 #### 相关文档 相关文档和工具如下:[项目文档和项目需要的脚本工具](https://gitee.com/luan_hao/spark-realtime/tree/master/doc) SpringBoot入门文档和代码案例:[SpringBoot入门](https://gitee.com/luan_hao/spark-realtime/tree/master/springboot-demo) 关于SpringBoot更多教学:[SpringBoot中文教学](https://pdai.tech/md/outline/x-outline.html#springboot%E5%85%A5%E9%97%A8-helloworld-banner-logback-%E5%88%86%E5%B1%82%E8%AE%BE%E8%AE%A1)