Loading... 这个硬核项目最近势头正猛,作者把项目开源到 [GitHub](https://so.csdn.net/so/search?q=GitHub&spm=1001.2101.3001.7020) 和码云上,连续多日登上 Gitee 热榜。 老逛联系上了这个项目的作者,作者初衷:“最开始我接触到深圳市政府数据开放平台,主要是为了了解参赛题目数据源,无意间看到这个深圳通刷卡数据,感觉可以挖掘的潜在信息很多,于是就开发了这个项目。” 这个项目主要**分析深圳通刷卡数据,通过大数据技术角度来研究深圳地铁客运能力,探索深圳地铁优化服务的方向。** ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9lUHczWmVHUnJ1em9lbHJPaWFJSHFTZlc2NmN5MTdCSWtWalo4UVFXb2hIc0xKc0F0S3p2YXRuRHV3ZkxuTm1WR0FQUndZbDN5N2FXT3hwNzZLMzRsNkEvNjQw?x-oss-process=image/format,png) GitHub Star 趋势图 下面是 GitHub 和 Gitee 的开源地址,欢迎大家 Star,该项目使用的数据也在项目里面,国内建议访问 Gitee 速度快一点。 * https://github.com/geekyouth/SZT-bigdata * https://gitee.com/geekyouth/SZT-bigdata ***1. *** 前言 对于刚入门的[大数据](https://so.csdn.net/so/search?q=%E5%A4%A7%E6%95%B0%E6%8D%AE&spm=1001.2101.3001.7020)工程师来说,这个项目是不错的实战项目,因为这个项目使用了较多的常用技术框架,能加深对各技术栈的理解运用。只有在使用过程中才能体验各框架的差异和优劣,从而为以后的项目开发技术选型做基础。 **数据来源** 是深圳市政府数据开放平台,深圳通刷卡数据 133.7 万条离线数据,貌似官网已经停止服务,作者提供了备用数据源,可以在项目中下载。该项目采用离线 + 实时思路 多种方案处理。 ***2. *** 效果 快来看看现阶段搭建完成后的效果: 图中可以看出 2018-09-01 这一天刷卡记录集中在上午6点~12点之间,早高峰数据比较吻合,虽然这一天是周六,高峰期不是特别明显。我们继续缩放 kibana 时间轴看看更详细的曲线: ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9lUHczWmVHUnJ1em9lbHJPaWFJSHFTZlc2NmN5MTdCSWtOdlNoeFQxS3YxWFN5VXVia2pnc3BRcDBUWnVsanVQODVJRllUblNuQlRpY0dWeGliNW9MbmpDUS82NDA?x-oss-process=image/format,png) 2018-09-01,当天车站吞吐量排行榜: 五和站、布吉站(深圳东火车站)、罗湖站(深圳火车站)、深圳北(深圳北高铁站) ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9lUHczWmVHUnJ1em9lbHJPaWFJSHFTZlc2NmN5MTdCSWtBWmlhWXJKQm9tR1ZpY1hSeWljQjk5aWJ1TFlabTY2VGZyaWNQTnU4UnRvWFhWS0dpYkh5d3dkTnJjNlEvNjQw?x-oss-process=image/format,png) 2018-09-01,当天车费最高的乘客花了 48 元人民币。 ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9lUHczWmVHUnJ1em9lbHJPaWFJSHFTZlc2NmN5MTdCSWtreE5waFBaQjZiVGlheW1Fd0ZCajJCRHNMbHNKc1JHNGo0aWFxblRhTHh4cXV0dGhJTmljM0FvYXcvNjQw?x-oss-process=image/format,png) 2018-09-01,当天五号线客运量遥遥领先,龙岗线碾压一号线,心疼龙岗人民! ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9lUHczWmVHUnJ1em9lbHJPaWFJSHFTZlc2NmN5MTdCSWt3c3pRY1haWE14Z0xqbDlJd2tybDBoUkZOZnRyamMyMVNFY2lhZ2ZFRWRoVjNjVjFWamljU2R5dy82NDA?x-oss-process=image/format,png) 还有很多比如: * 每日运输乘客最多的区间排行榜 * 每条线路单程直达乘客耗时平均值排行榜 * 所有乘客通勤时间平均值 * 所有乘客通勤时间排行榜 * 每个站点进出站闸机数量排行榜 * 各线路进出站闸机数量排行榜 * 各站收入排行榜 * 各线路收入排行榜 * 各线路换乘出站乘客百分比排行榜 * 各线路直达乘客优惠人次百分比排行榜 * 换乘时间最久的乘客排行榜等等 ***3.****** *** 技术选型 这个项目整体架构是这样的: ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9lUHczWmVHUnJ1em9lbHJPaWFJSHFTZlc2NmN5MTdCSWtTY3RpY3dWNzEzalA1aGtYZXNSb3ZSaHU3OUdCUnRMUmM1UVVPaEhTaldqaWFnVmx6bng0REI0US82NDA?x-oss-process=image/format,png) 技术栈,下图就是这个项目用到的常用技术: ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9lUHczWmVHUnJ1em9lbHJPaWFJSHFTZlc2NmN5MTdCSWtCRW4zVWhWTjRFN2IzQkFwUjQ0QnFGS3FnOGVBV0NsMXluSDc0Z0dIV3g2Y3lZSUZtVVNvbEEvNjQw?x-oss-process=image/format,png) **J** **ava-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 了啊喂; **Zookeeper-3.4.5:** 集群基础依赖,选举时 ID 越大越优势,通过会话机制维护各组件在线状态; **CDH-6.2:** 解决了程序员最难搞的软件兼容性问题,全家桶服务一键安装 **Docker-19:** 最快速度部署一款新软件,无侵入、无污染、快速扩容、服务打包。如果当前没有合适的运行环境,那么 docker 一定是首选; **Spring Boot-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 集群了。 **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 可视化展示; 作者选择较新的软件版本,因为新版踩坑比老版更多,坑踩的多了,技能也就提高了,遇到新问题可以见招拆招、对症下药。 ***4. *** 开发环境 **Win10 IDEA 2019.3 旗舰版:** JAVA|Scala 开发必备,集万般功能于一身; **Win10 DBeaver 企业版 6.3:** 秒杀全宇宙所有数据库客户端,几乎一切常用数据库都可以连,选好驱动是关键; **Win10 Sublime Text3:** 地表最强轻量级编辑器,光速启动,无限量插件,主要用来编辑零散文件、markdown 实时预览、写前端特别友好。 **CentOS7 CDH-6.2 集群:** 包含如下组件,对应的主机角色和配置如图,集群至少需要40 GB 总内存,才可以满足基本使用,不差钱的前提下,RAM 当然是合理范围内越大越好啦,鲁迅都说“天下武功唯快不破”;我们的追求是越快越好; 最后修改:2022 年 03 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏