一、项目需求分析
A、项目需求
- 用户行为数据采集平台搭建
- 业务数据采集平台搭建
- 数据仓库维度建模
- 分析,设备、会员、商品、地区、活动等电商核心主题,统计的报表指标近100个。
- 采用即席查询工具,随时进行指标分析
- 对集群性能进行监控,发生异常需要报警。
- 元数据管理
- 质量监控
- 权限管理
B、思考题
- 项目技术如何选型 ?
- 框架版本如何选型 (Apahe、CDH、HDP) ?
- 服务器使用物理机还是云主机 ?
- 如何确认集群规模 ?(假设每台服务器8T硬盘)
二、项目框架
1. 技术选型
技术选型主要考虑因素:数据量大小、业务需求、行业内经验、技术成熟度、开发维护成本、总成本预算。
- 数据采集传输:Flume, Kafka,Sqoop,Logstash,DataX
- 数据存储:MySQL,HDFS,HBase,Redis, MongoDB
- 数据计算:Hive,Tez,Spark,Flink,Storm
- 数据查询:Presto,Kylin,Impala,Druid,ClickHouse,Doris
- 数据可视化:Echats,Superset,QuickBI,DataV
- 任务调度:Azkaban,Oozie,DolphinScheduler,Airflow
- 集群监控:Zabbix,Prometheus
- 元数据管理:Atlas
- 权限管理:Ranger,Sentry
2. 系统数据流程设计
3. 框架版本选型
A、如何选择 Apache/CDH/IDP 版本?
- Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技实力雄厚,有专业的运维人员)(建议使用)
- CDH:国内使用最多的版本,但 CM 不开源,今年开始收费,一个节点1美金/年。
- HDP:开源,可以进行二次开发,但是没有 CDH 稳定,国内使用较少
B、云服务选择
- 阿里云的EMR、MaxCompute、DataWorks
- 亚马逊云EMR
- 腾讯云EMR
- 华为云EMR
注意事项:框架选型尽量不要选择最新的框架,选择最新框架半年前左右的稳定版。
4. 服务器选型
服务器选择物理机还是云主机?
A、物理机
- 以128G内存,20 核物理CPU,40线程,8THDD 和 2TSSD 硬盘,戴尔品单台报价4W出头。一般物理机寿命5年左右。
- 需要有专业的运维人员,平均一个月1万。电费也是不少的开销。
B、云主机
- 云主机:以阿里云为例,差不多相同配置,每年5W。
- 很多运维工作都由阿里云完成,运维相对较轻松
C、企业选择
- 金融有钱公司和阿里没有直接冲突的公司选择阿里云
- 中小公司、为了融资上市,选择阿里云,拉倒融资后买物理机。
- 有长期打算,资金比较足,选择物理机。
5. 集群规模
如何确认集群规模?(假设:每台服务器8T磁盘,128G内存)
- 每天日活跃用户100万,每人一天平均100条:100万*100条=1亿条
- 每条日志1K左右,每天1亿条:100000000/1024/1024=约100G
- 半年内不扩容服务器来算:100G*180天=约18T
- 保存3副本:
18T*3=54T
- 预留
20%~30%Buf=54T/0.7=77T
- 算到这:约8T*10台服务器
6. 集群资源规划设计
在企业中通常会搭建一套生产集群和一套测试集群。生产集群运行生产任务,测试集群用于上线前代码编写和测试。
生产集群:
A、消耗内存的分开
B、数据传输数据比较紧密的放在一起 (Kafka 、Zookeeper)
C、客户端尽量放在一到两台服务器上,方便外部访问
D、有依赖关系的尽量放到同一台服务器(例如:Hive 和 Azkaban Executor)
测试集群服务器规划