# FlinkPro **Repository Path**: junjun_com/flink-pro ## Basic Information - **Project Name**: FlinkPro - **Description**: flink车联网 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-11 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: flink ## README # Flink-Pro 实时交通监控系统 ## 项目简介 Flink-Pro 是一个基于 Apache Flink 构建的实时交通监控系统,主要用于城市交通数据的实时分析、监控和预警。该系统能够对车辆速度、交通流量、违章行为等进行实时监测和分析,为城市交通管理提供数据支持。 ## 技术栈 - **核心框架**: Apache Flink - **编程语言**: Scala - **数据存储**: HBase、JDBC数据库 - **构建工具**: Maven ## 项目结构 ``` flink-pro/ ├── src/main/scala/com/bjsxt/traffic/ │ ├── carmonitor/ # 车辆监控分析模块 │ │ ├── MonitorAvgSpeedAnaly.scala # 监测点平均速度分析 │ │ ├── OverSpeedCarAnaly.scala # 超速车辆分析 │ │ └── TopNMinAvgSpeedMonitorAnaly.scala # TopN最低平均速度监控分析 │ │ │ ├── monitorWarning/ # 监控预警模块 │ │ ├── CarTrackerAnaly.scala # 车辆追踪分析 │ │ ├── DangerDriverInfo.scala # 危险驾驶信息 │ │ ├── PoliceAnaly.scala # 交警分析 │ │ ├── PoliceAnaly2.scala # 交警分析(扩展版) │ │ ├── RTCarAnaly.scala # 实时车辆分析 │ │ ├── RTCarAnaly2.scala # 实时车辆分析(扩展版) │ │ ├── RTLocCarAnaly.scala # 实时定位车辆分析 │ │ └── RepatitionCarInfo.scala # 重复车辆信息 │ │ │ └── utils/ # 工具类模块 │ ├── DateUtils.scala # 日期时间工具 │ ├── GaussTest.scala # 高斯测试 │ ├── GlobalEntity.scala # 全局实体定义 │ ├── HBaseSink.scala # HBase数据汇 │ ├── JDBCSink.scala # JDBC数据汇 │ └── MakeData.scala # 数据生成工具 │ ├── data/trafficdata/ # 交通数据目录 ├── pom.xml # Maven配置 └── src/test/java/ # 测试代码 ``` ## 核心功能模块 ### 1. 车辆监控分析 (carmonitor) #### MonitorAvgSpeedAnaly - 监测点平均速度分析 - 实时计算各监测点的平均行驶速度 - 统计窗口时间内的车辆通行情况 - 生成平均速度报告 #### OverSpeedCarAnaly - 超速车辆分析 - 实时检测超速行驶车辆 - 记录超速车辆信息(车牌、监测点、实际速度、限速) - 超速行为预警和统计 #### TopNMinAvgSpeedMonitorAnaly - TopN最低平均速度监控分析 - 分析平均速度最低的监测点 - 识别可能存在拥堵或交通问题的区域 - 支持自定义N值进行Top排名分析 ### 2. 监控预警模块 (monitorWarning) #### CarTrackerAnaly - 车辆追踪分析 - 基于实时数据追踪特定车辆 - 记录车辆行驶轨迹 - 跨监测点车辆信息关联 #### DangerDriverInfo - 危险驾驶信息 - 识别危险驾驶行为 - 统计危险驾驶事件 - 生成危险驾驶预警报告 #### RTCarAnaly/RTCarAnaly2 - 实时车辆分析 - 实时处理车辆通过数据 - 低延迟车辆信息分析 - 支持多种分析维度 #### RTLocCarAnaly - 实时定位车辆分析 - 车辆实时定位数据分析 - 位置信息实时更新 - 定位数据流处理 #### PoliceAnaly/PoliceAnaly2 - 交警分析 - 交警执法数据分析 - 执法记录统计 - 执法效果评估 #### RepatitionCarInfo - 重复车辆信息 - 识别重复出现的车辆 - 车辆出现频率统计 - 异常车辆预警 ### 3. 数据模型 (GlobalEntity) ```scala // 监测点车辆信息 case class MonitorCarInfo(areaId, roadId, monitorId, cameraId, actionTime, car, speed) // 监测点车辆信息(带限速) case class NewMonitorCarInfo(areaId, roadId, monitorId, cameraId, actionTime, car, speed, speedLimit) // 监测点限速信息 case class MonitorLimitSpeedInfo(areaId, roadId, monitorId, limitSpeed) // 超速车辆信息 case class OverSpeedCarInfo(car, monitorId, roadId, realSpeed, limitSpeed, actionTime) // 监测点平均速度信息 case class MonitorAvgSpeedInfo(windowStartTime, windowEndTime, monitorId, avgSpeed, carCount) // Top5监测点速度分类统计 case class Top5MonitorInfo(windowStartTime, windowEndTime, monitorId, hightSpeedCarCount, middleSpeedCount, normalSpeedCarCount, lowSpeedCarCount) // 速度分类统计 case class MonitorSpeedClsCount(hightSpeedCarCount, middleSpeedCount, normalSpeedCarCount, lowSpeedCarCount) // 违章车辆信息 case class ViolationCarInfo(car, violation, createTime, detail) // 交警信息 case class PoliceInfo(policeId, car, policeTime, policeState) ``` ### 4. 数据汇工具 (Utils) #### HBaseSink - Flink自定义HBase数据汇 - 批量写入HBase数据库 - 连接池管理 #### JDBCSink - Flink自定义JDBC数据汇 - 支持多种数据库 - 连接池管理 #### DateUtils - 日期时间格式化 - 随机时间生成 - 时间戳转换 #### MakeData - 测试数据生成工具 - 模拟交通数据产生 ## 快速开始 ### 环境要求 - JDK 1.8+ - Apache Flink 1.12+ - Scala 2.11+ - Maven 3.6+ ### 编译项目 ```bash # 克隆项目 git clone https://gitee.com/junjun_com/flink-pro.git # 进入项目目录 cd flink-pro # 编译项目 mvn clean package -DskipTests ``` ### 运行分析任务 ```bash # 运行超速车辆分析 flink run -c com.bjsxt.traffic.carmonitor.OverSpeedCarAnaly target/flink-pro-1.0.jar # 运行监测点平均速度分析 flink run -c com.bjsxt.traffic.carmonitor.MonitorAvgSpeedAnaly target/flink-pro-1.0.jar ``` ### 数据生成 项目提供了数据生成工具,可以生成测试用的交通数据: ```bash # 运行数据生成器 flink run -c com.bjsxt.traffic.utils.MakeData target/flink-pro-1.0.jar ``` ## 配置说明 在 `pom.xml` 中配置相关依赖和插件,确保Flink和Scala版本兼容。 ## 应用场景 1. **城市交通监控**: 实时监测城市各路段交通状况 2. **违章检测**: 自动检测超速、闯红灯等违章行为 3. **交通分析**: 为交通规划提供数据支持 4. **预警系统**: 交通异常实时预警 ## 模块依赖 ``` ┌─────────────────┐ │ MakeData │ │ (数据生成) │ └────────┬────────┘ │ ▼ ┌──────────────────────────────────────────────────┐ │ Flink Streaming │ │ ┌────────────────────────────────────────────┐ │ │ │ 数据处理层 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │ │carmonitor │ │monitor │ │ utils │ │ │ │ │ │ │ │ Warning │ │ │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ └────────────────────────────────────────────┘ │ │ │ │ │ ┌───────┴───────┐ │ │ ▼ ▼ │ │ ┌────────────┐ ┌────────────┐ │ │ │ HBaseSink │ │ JDBCSink │ │ │ └────────────┘ └────────────┘ │ └──────────────────────────────────────────────────┘ ``` ## 贡献指南 1. Fork 本仓库 2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交您的改动 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 许可证 本项目遵循 [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0) 许可证。 ## 作者 - **junjun_com** - *初始开发者* - [Gitee](https://gitee.com/junjun_com) ## 联系方式 - 项目地址: https://gitee.com/junjun_com/flink-pro - 问题反馈: 请在 Gitee Issues 中提交 ## 致谢 感谢 Apache Flink 社区提供的优秀流处理框架,为本项目的实现提供了强大的技术支持。