Awesome Open Source
Awesome Open Source

Wi-Fi Probe Analysis

996.icu

WIFI探针是一种可以记录附近mac地址的嗅探器,可以根据收集到的mac地址进行数据分析,获得附近的人流量、入店量、驻留时长等信息
本系统以Spark + Hadoop为核心,搭建了基于WIFI探针的大数据分析系统

Module Introduction

系统配置说明

2019年10月3日更新
WifiProbeAnalysis 系统安装配置说明

Computing-Core

  • 系统核心, 负责实时计算以及离线计算
  • 主要技术或API:
名称 解释
Spark 分析程序核心API
Hadoop 分析程序核心API
Mybatis 操作Mysql的API
SharedJedis 分布式Redis的API
Log4j 日志记录工具
Accumulator 累加器,相当于Spark中的全局变量
FastJson Json解析工具
HBase Client 操作HBase

Kafka-Core

  • 利用Kafka或HDFS缓存数据, 供实时分析程序提取
  • 将原始数据存储进HBase,供离线分析程序使

主要技术或API:

名称 解释
Kafka 基于内存的消息队列,负责缓冲数据,供实时分析程序提取
HDFS Hadoop分布式文件系统,具有高容错性、高吞吐性等特点
HBase 建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统

Web-UI

  • 数据解析和展示

主要技术或API:

名称 解释
React 前端框架
Redux 负责管理与后端的数据交互
webSocket 实时数据获取,避免了前端轮询,节省大量网络资源
echarts 绘图
Ant Design UI框架

Web-Server

  • 网站服务器端,负责处理前端请求

主要技术或API:

名称 解释
SSM 架构 Spring MVC + Spring + Mybatis框架
Spring-Data-Redis 封装对redis的操作
webSocket 实时向前端推送数据,可以做到广播,即一次查询,向N个前端推送,节省大量资源
Alidayu 阿里大鱼,发送短信(开源版本中已删除)
POI 导出Excel报表

py-script

模拟发送探针数据的python脚本,使用多线程来模拟大量探针的发包

Databases in System

  • MySQL

关系型数据库,负责存储一些不会经常读取的数据,比如分析程序的参数配置、商场信息等

  • HBase

分布式非关系型数据库,用于永久性存储原始数据,供离线分析程序使用

  • Redis

非关系型数据库,适用于存储快速读写的数据,用于存储分析结果,存储格式为json

About Us

以下是开发者的GitHub账户,欢迎follow

如果有关项目的问题可以联系以下邮箱

[email protected]

Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Java (396,235
Spring (28,668
Redis (24,013
Websocket (13,998
Spark (10,763
Kafka (9,629
Wifi (8,746
Hadoop (5,346
Mybatis (4,280
Hdfs (2,221
Hbase (1,600