SZT-bigdata

SZT-bigdata

深圳地铁大数据分析系统助力客运服务优化

SZT-bigdata项目基于Flink、Redis、Kafka等大数据技术,对深圳地铁刷卡数据进行分析,旨在研究客运能力并探索服务优化方向。项目涵盖数据采集、存储、处理、分析和可视化等环节,展示了完整的大数据处理流程。通过运用多种常用技术框架,项目不仅实现了实际应用,还为开发者提供了技术栈对比和选型参考。

SZT-bigdata深圳地铁大数据分析客流分析FlinkGithub开源项目

SZT-bigdata 深圳地铁大数据客流分析系统 🚇🚇🚇

<div align="center"> <a href="https://github.com/geekyouth/SZT-bigdata" target="_blank"> <img src=".file/.doc/full-logo.png" alt="logo"> </a> </div>
<div align="center"> <a href="https://github.com/geekyouth/SZT-bigdata/stargazers" target="_blank"> <img src="https://img.shields.io/github/stars/geekyouth/SZT-bigdata?style=for-the-badge"> </a> <a href="https://github.com/geekyouth/SZT-bigdata/network/members" target="_blank"> <img src="https://img.shields.io/github/forks/geekyouth/SZT-bigdata?style=for-the-badge"> </a> <a href="https://github.com/geekyouth/SZT-bigdata/watchers" target="_blank"> <img src="https://img.shields.io/github/watchers/geekyouth/SZT-bigdata?style=for-the-badge"> </a> <a href="https://github.com/geekyouth/SZT-bigdata/releases" target="_blank"> <img src="https://img.shields.io/github/v/release/geekyouth/SZT-bigdata?style=for-the-badge"> </a> <a href="https://github.com/geekyouth/SZT-bigdata/issues" target="_blank"> <img src="https://img.shields.io/github/issues/geekyouth/SZT-bigdata?style=for-the-badge"> </a> <a href="https://github.com/geekyouth/SZT-bigdata/blob/master/LICENSE" target="_blank"> <img src="https://img.shields.io/github/license/geekyouth/SZT-bigdata?style=for-the-badge"> </a> <br/> <a href="https://java666.cn" target="_blank"> <img src="https://img.shields.io/badge/博客:-https://java666.cn-red?style=for-the-badge"> </a> </div>
   ___     ____   _____           _         _      __ _      _             _
  / __|   |_  /  |_   _|   ___   | |__     (_)    / _` |  __| |   __ _    | |_    __ _
  \__ \    / /     | |    |___|  | '_ \    | |    \__, | / _` |  / _` |   |  _|  / _` |
  |___/   /___|   _|_|_   _____  |_.__/   _|_|_   |___/  \__,_|  \__,_|   _\__|  \__,_|
_|"""""|_|"""""|_|"""""|_|     |_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|
"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'

项目说明🚩:

  • 🎈 该项目主要分析深圳通刷卡数据,通过大数据技术角度来研究深圳地铁客运能力,探索深圳地铁优化服务的方向;
  • ✨ 强调学以致用,本项目的原则是尽可能使用较多的常用技术框架,加深对各技术栈的理解和运用,在使用过程中体验各框架的差异和优劣,为以后的项目开发技术选型做基础;
  • 👑 解决同一个问题,可能有多种技术实现,实际的企业开发应当遵守最佳实践原则;
  • 🎉 学习过程优先选择较新的软件版本,因为新版踩坑一定比老版更多,坑踩的多了,技能也就提高了,遇到新问题可以见招拆招、对症下药;
  • 🚀 ...

第一期架构图

原图 .file/.doc/SZT-bigdata-2.png

数字标记不分先后顺序,对应代码:
1-cn.java666.sztcommon.util.SZTData
2-cn.java666.etlflink.app.Jsons2Redis
3-cn.java666.etlspringboot.controller.RedisController#get
4-cn.java666.etlflink.app.Redis2ES
5-cn.java666.etlflink.app.Redis2Csv
6-Hive sql 脚本(开发维护成本最低)
7-Saprk 程序(开发维护成本最高,但是功能更强)
8-HUE 方便查询和展示 Hive 数据
9-cn.java666.etlflink.app.Redis2HBase
10、14-cn.java666.szthbase.controller.KafkaListen#sink2Hbase
11-cn.java666.etlflink.app.Redis2HBase
12-CDH HDFS+HUE+Hbase+Hive 一站式查询
13-cn.java666.etlflink.app.Redis2Kafka
15-cn.java666.sztflink.realtime.Kafka2MyCH
16-cn.java666.sztflink.realtime.sink.MyClickhouseSinkFun


核心技术栈 + 版本选择 + 点评 (持续更新)⚡:

  • Java-1.8/Scala-2.11,生态丰富,轮子够多;
  • Flink-1.10,流式业务、ETL 首选。发展势头如日中天,阿里巴巴背书,轻快灵活、健步如飞;就问你信不信马云???😚😚😚
  • Redis-3.2,天然去重,自动排序,除了快还是快。廉价版硬盘实现同类产品 SSDB。Win10|CentOS7|Docker Redis-3.2 三选一,CentOS REPL yum 安装默认使用3.2版本;
  • Kafka-2.1,消息队列业务解耦、流量消峰、订阅发布场景首选。最佳 CP:kafka-eagle-1.4.5,集生产、消费、Ksql、大屏、监控、报警于一身,同时监控 zk。其他我用过的 Kafka 监控组件最后都放弃了:
    • KafkaOffsetMonitor 问题太多,丑拒;
    • Kafka Manager,已更名为 CMAK,老外写的软件用起来就觉得很别扭,而且最高只兼容 Kafka 0.11,但是 Kafka 官方已经升级到 2.4 了啊喂;
    • 其他各种开源的 Kafka 监控基本都试过,一个能打的都没有。
  • Zookeeper-3.4.5,集群基础依赖,选举时 ID 越大越优势,通过会话机制维护各组件在线状态;
  • CDH-6.2,解决了程序员最难搞的软件兼容性问题,全家桶服务一键安装;
  • Docker-19,最快速度部署一款新软件,无侵入、无污染、快速扩容、服务打包。如果当前没有合适的运行环境,那么 docker 一定是首选;
  • SpringBoot-2.13,通用 JAVA 生态,敏捷开发必备;
  • knife4j-2.0,前身为 swagger-bootstrap-ui,REST API 项目调试简直不要太方便,秒杀原版丝袜哥十个数量级;
  • Elasticsearch-7,全文检索领域唯一靠谱的数据库,搜索引擎核心服务,亿级数据毫秒响应,真实时,坑也多🔊🔊🔊;
  • Kibana-7.4,ELK 全家桶成员,前端可视化,小白也不怕;
  • ClickHouse,家喻户晓的 nginx 服务器就是俄罗斯的代表作,接下来大红大紫的 clickhouse 同样身轻如燕,但是性能远超目前市面所有同类数据库,存储容量可达PB级别。目前资料还不多,正在学习中;
  • MongoDB-4.0,文档数据库,对 Json 数据比较友好,主要用于爬虫数据库;
  • Spark-2.3,目前国内大数据框架实时微批处理、离线批处理主流方案。这个组件太吃资源了,曾经在我开发时,把我的笔记本搞到蓝屏,于是我直接远程提交到 spark 集群了。接下来预计 Flink 开始表演了🦘,真的用了更快的框架就爱上了😍😍😍;
  • Hive-2.1,Hadoop 生态数仓必备,大数据离线处理 OLAP 结构化数据库,准确来说是个 HQL 解析器,查询语法接近 Mysql,就是窗口函数比较复杂😭😭😭;
  • Impala-3.2,像羚羊一样轻快矫健,同样的 hive sql 复杂查询,impala 毫秒级返回,hive 却需要80秒左右甚至更多;
  • HBase-2.1 + Phoenix,Hadoop 生态下的非结构化数据库,HBase 的灵魂设计就是 rowkey 和多版本控制,凤凰嫁接 hbase 可以实现更复杂的业务;
  • Kylin-2.5,麒麟多维预分析系统,依赖内存快速计算,但是局限性有点多啊,适用于业务特别稳定,纬度固定少变的场景,渣渣机器就别试了,内存太小带不起;
  • HUE-4.3,CDH 全家桶赠送的,强调用户体验,操作数仓很方便,权限控制、hive + impala 查询、hdfs 文件管理、oozie 任务调度脚本编写全靠他了;
  • 阿里巴巴 DataX,异构数据源同步工具,主持大部分主流数据库,甚至可以自己开发插件,马云家的东西,我选你!!!如果你觉得这还满足不了你的特殊业务需求,那么推荐你用 FlinkX,基于 Flink 的分布式数据同步工具。理论上你也可以自己开发插件;
  • Oozie-5.1,本身 UI 奇丑,但是配合 HUE 食用尚可接受,主要用来编写和运行任务调度脚本;
  • Sqoop-1.4,主要用来从 Mysql 导出业务数据到 HDFS 数仓,反过来也行;
  • Mysql-5.7,程序员都要用的吧,如果说全世界程序员都会用的语言,那一定是 SQL。Mysql 8.0 普及率不够高,MariaDB 暂不推荐,复杂的函数不兼容 Mysql,数据库这么基础的依赖组件出了问题你就哭吧;
  • Hadoop3.0(HDFS+Yarn),HDFS 是目前大数据领域最主流的分布式海量数据存储系统,这里的 Yarn 特指 hadoop 生态,主要用来分配集群资源,自带执行引擎 MR;
  • 阿里巴巴 DataV 可视化展示;
  • ...

我发现越来越多的国产开源软件用户体验值得肯定。。。


准备工作🍬:

以下是我的开发环境,仅作参考:

  • Win10 IDEA 2019.3 旗舰版,JAVA|Scala 开发必备,集万般功能于一身;
  • Win10 DBeaver 企业版 6.3,秒杀全宇宙所有数据库客户端,几乎一切常用数据库都可以连,选好驱动是关键;
  • Win10 Sublime Text3,地表最强轻量级编辑器,光速启动,无限量插件,主要用来编辑零散文件、markdown 实时预览、写前端特别友好(虽然我不擅长🖐🖐🖐),速度快到完全不用担心软件跟不上你的手速;
  • 其他一些实用工具参考我的博客:<a href="https://java666.cn/#/AboutMe" target="_blank">https://java666.cn/#/AboutMe</a>
  • CentOS7 CDH-6.2 集群,包含如下组件,对应的主机角色和配置如图,集群至少需要40 GB 总内存,才可以满足基本使用,不差钱的前提下,RAM 当然是合理范围内越大越好啦,鲁迅都说“天下武功唯快不破”;我们的追求是越快越好;

如果你选用原版 Apache 组件搭建大数据集群,那么你会有踩不完的坑。我的头发不够掉了,所以我选 CDH 【2021 年以后,CDH 彻底收费,学习阶段不再推荐,USDP 可以尝试一下,但是占用内存台多,强行部署请准备好足够的硬件,建议的集群配置是 32G RAM * 3,。补充:随着 Hadoop 生态的软件迭代,兼容性问题日趋严重,为了解决兼容问题,推荐自行部署 Apache 版本的原生 Hadoop 集群,你可以从头到尾编译和定制自己的每一个组件每一行代码】

物理机配置💎:

  • 以上软件分开部署在我的三台电脑上,Win10 笔记本 VMware + Win10 台式机 VMware + 古董笔记本 CentOS7。物理机全都配置 SSD + 千兆以太网卡,HDFS

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多