需求分析
1,用户行为数据采集平台搭建
2,业务数据采集平台搭建
3,数据仓库维度建模
4,分析,设备,会员,商品,地区,活动等核心主题,统计指标
5,采用即席查询工具,随时进行指标分析
6,对集群性能进行监控,发生异常需要报警
7,元数据管理
8,质量监控
9,权限管理
安全性:kerberos + ranger 的权限管理
一致性:python + shell脚本的方式 搭建了数据监控系统
可靠性:集群性能监控, zabbix
元数据管理 :atlas
技术选型
数据采集传输:Flume ,Kafka,Sqoop
数据存储:MySQL ,HDFS,HBase
数据计算:Hive,Tez,Spark
数据查询:Presto,Kylin
数据可视化:Echarts,Superset
任务调度:Azkaban
集群监控:Zabbix
元数据管理:Atlas
权限管理:Ranger
系统数据流程设计
具体版本型号
注意:尽量不要用最新的版本,选择新框架的半年左右的稳定的版本
服务器选型
集群规模
假设每台服务器8T磁盘,128G内存
1,每天日活用户100w ,每人一天平均100条: 100w * 100条 = 1亿条
2,每条日志1k左右,每天1亿条 :1亿/1024/1024 = 约为100G
3,半年内不扩充服务器来算:100G * 180天 = 约 18T
4,保存3副本 :18T*3 = 54T
5,预留20%-30%Buf = 54T/0.7 = 77T
6,总共约 8T * 10台 服务器
集群资源规划设计
在企业中通常会搭建一套生产集群和一套测试集群。生产集群运行生产任务,测试集群用于上线前代码编写和测试。
1)生产集群
(1)消耗内存的分开
(2)数据传输数据比较紧密的放在一起(Kafka 、Zookeeper)
(3)客户端尽量放在一到两台服务器上,方便外部访问
(4)有依赖关系的尽量放到同一台服务器(例如:Hive和Azkaban Executor)
2)测试集群服务器规划