这个硬核项目最近势头正猛,作者把项目开源到 GitHub 和码云上,连续多日登上 Gitee 热榜。

老逛联系上了这个项目的作者,作者初衷:“最开始我接触到深圳市政府数据开放平台,主要是为了了解参赛题目数据源,无意间看到这个深圳通刷卡数据,感觉可以挖掘的潜在信息很多,于是就开发了这个项目。”

这个项目主要分析深圳通刷卡数据,通过大数据技术角度来研究深圳地铁客运能力,探索深圳地铁优化服务的方向。

GitHub Star 趋势图

下面是 GitHub 和 Gitee 的开源地址,欢迎大家 Star,该项目使用的数据也在项目里面,国内建议访问 Gitee 速度快一点。

  • https://github.com/geekyouth/SZT-bigdata

  • https://gitee.com/geekyouth/SZT-bigdata

1. 前言

对于刚入门的大数据工程师来说,这个项目是不错的实战项目,因为这个项目使用了较多的常用技术框架,能加深对各技术栈的理解运用。只有在使用过程中才能体验各框架的差异和优劣,从而为以后的项目开发技术选型做基础。

数据来源是深圳市政府数据开放平台,深圳通刷卡数据 133.7 万条离线数据,貌似官网已经停止服务,作者提供了备用数据源,可以在项目中下载。该项目采用离线 + 实时思路 多种方案处理。

2. 效果

快来看看现阶段搭建完成后的效果:

图中可以看出 2018-09-01 这一天刷卡记录集中在上午6点~12点之间,早高峰数据比较吻合,虽然这一天是周六,高峰期不是特别明显。我们继续缩放 kibana 时间轴看看更详细的曲线:

2018-09-01,当天车站吞吐量排行榜:
五和站、布吉站(深圳东火车站)、罗湖站(深圳火车站)、深圳北(深圳北高铁站)

2018-09-01,当天车费最高的乘客花了 48 元人民币。

2018-09-01,当天五号线客运量遥遥领先,龙岗线碾压一号线,心疼龙岗人民!

还有很多比如:

  • 每日运输乘客最多的区间排行榜

  • 每条线路单程直达乘客耗时平均值排行榜

  • 所有乘客通勤时间平均值

  • 所有乘客通勤时间排行榜

  • 每个站点进出站闸机数量排行榜

  • 各线路进出站闸机数量排行榜

  • 各站收入排行榜

  • 各线路收入排行榜

  • 各线路换乘出站乘客百分比排行榜

  • 各线路直达乘客优惠人次百分比排行榜

  • 换乘时间最久的乘客排行榜等等

3. 技术选型

这个项目整体架构是这样的:

技术栈,下图就是这个项目用到的常用技术:

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 了啊喂;

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 当然是合理范围内越大越好啦,鲁迅都说“天下武功唯快不破”;我们的追求是越快越好;

推荐阅读
0. 逛逛GitHub交流群限时加入
1. 2020 年 GitHub 年度总结出炉!
2. 程序员找工作黑名单
3. 程序员的网易云是什么样的?
4. CentOS 7 安装教程(图文详解)

硬核!地铁大数据客流分析系统相关推荐

  1. 毕业设计 - 地铁大数据客流分析系统 设计与实现

    文章目录 1 前言 1.1 实现目的 2 数据集 2.2 数据集概况 2.3 数据字段 3 实现效果 3.1 地铁数据整体概况 3.2 平均指标 3.3 地铁2018年9月开通运营的线路 3.4 客流 ...

  2. 【计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩】 https://b23.tv/jRN6MVh

    [计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩] https://b23.tv/jRN6MVh https://b23.tv/jRN6MVh

  3. 大数据系统开发综合实践(淘宝双11大数据批处理分析系统、NBA 、淘宝购物大数据实时展示、Spark GraphX)

    cqupt || xmu--大数据系统开发综合实践 代码放在了GitHub上 链接 task01 大数据批处理系统 淘宝双11大数据批处理分析系统 task02 大数据查询分析计算系统 NBA 统计大 ...

  4. 基于Neo4j中医方剂药材知识图谱大数据可视化分析系统的设计与开发

    基于Neo4j中医方剂药材知识图谱大数据可视化分析系统的设计与开发 设计背景 这个系统的开发初衷是笔者希望通过这个系统来学习一下Neo4j的相关技术,包括与python.java的对接.可视化等方面, ...

  5. ByteV智能电网大数据可视化分析系统

    ByteV智能电网大数据可视化分析系统是一个面向电力行业管理部门的综合辅助决策平台,旨在通过大数据技术和系统全方位时空动态感知能力,为电力行业管理决策者提供及时.准确的多维数据分析结果信息,直观展现数 ...

  6. 小白玩大数据日志分析系统经典入门实操篇FileBeat+ElasticSearch+Kibana 实时日志系统搭建从入门到放弃

    大数据实时日志系统搭建 距离全链路跟踪分析系统第二个迭代已经有一小阵子了,由于在项目中主要在写ES查询\Storm Bolt逻辑,都没有去搭建实时日志分析系统,全链路跟踪分析系统采用的开源产品组合为F ...

  7. 基于Python的招聘信息的大数据可视化分析系统

    1. 项目背景 互联网时代,网络已经完完全全渗透到我们的生活当中,成为我们生活当中的一部分,其中很多求职.找工作也不例外,因此,很多招聘平台,例如像赶集网.58同城.英才网.智联招聘.前程无忧等求职网 ...

  8. 硬核派大数据公司Palantir值得投资吗?

    来源 |TechWeb 文 | 胥崟涛 <仿生人会梦见电子羊吗>的作者菲利普·迪克在他的一部中篇作品中描绘了未来虚构世界,在那里,政府挑选出一批少男少女,对他们进行特殊的训练,使之能够具备 ...

  9. 大数据离线分析系统:统计网站PV、UV

    目录 一.业务需求 二.业务实现方案 1.技术栈 2.业务实现流程 3.离线分析系统架构图 三.技术实现 1.Hadoop CDH集群管理平台 2.Flume采集服务器日志数据到HDFS 3.Spar ...

  10. 大数据日志分析系统-hdfs日志存储

    先补充spark的博客链接,没在目录显示 hdfs简介: Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统. 项目需求: 使用 ...

最新文章

  1. 收藏 | 一文带你总览知识蒸馏,详解经典论文
  2. 在线作图丨数据降维方法⑤——t-SNE(t-Distributed Stochastic Neighbor Embedding)
  3. 自己动手生成评论RSS
  4. c语言中count的头文件,求助C语言大佬 , 只会写到一个.c文件里 ,不会用.h头文件...
  5. js中对于数据类型的一些理解
  6. 批处理(cmd)的学习记录
  7. zedgraph支持游标吗_经典格斗游戏中的隐藏人物,当年在游戏厅你能选出来吗
  8. 微信小程序从入门到飞起(各个组件)
  9. Python Django模板语法标签代码示例(页面渲染与取值)
  10. Android防火墙原型系统设计,Android系统网络安全性研究及防火墙设计
  11. BZOJ1856[Scoi2010]字符串——组合数学+容斥
  12. 怎样在Android上手动备份你的短信/彩信?
  13. vant 项目_基于 vue3.x+vant3.x 搭建示例项目
  14. ubuntu apt-get 时遇到waiting for headers的破解办法
  15. C++----为什么不让用using namespace std
  16. 10年专注单片机从业者告诉你如何自制一个属于自己的单片机开发板
  17. 3D MAX脚本原理
  18. php 开发 oa 框架,基于ThinkPHP框架开发的全功能OA办公管理系统PHP源码
  19. ★RFC标准库_目录链接
  20. Spring AOP术语:连接点和切点的区别。

热门文章

  1. Win7 局域网共享文件夹
  2. 非常全面的概念数据模型概述-PD下画E-R图
  3. Ubuntu16 修改DNS
  4. CSMA/CD和拥塞控制AIMD其实是一回事!
  5. YOLOv5、v7改进之三十九:引入改进遮挡检测的Tri-Layer插件 | BMVC 2022
  6. “弹出USB大容量存储设备时出问题”的解决方法
  7. SOPC之占空比控制LED(小梅哥AC620)
  8. 华为设备MSDP配置命令
  9. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table doesn't exist
  10. 关于Egret项目升级引擎出现的问题