数据仓库(一) 项目需求与架构设计
文章目录
数据仓库(一) 项目需求与架构设计
该数仓为离线
数据仓库概念
数据仓库(Data Warehouse),是为企业所有决策制定过程,提供所有系统数据支持的战略集合。
通过对数据仓库中数据的分析,可以帮助企业,改进业务流程,控制成本,提供产品质量等。
数据仓库,并不是数据的最终目的地,而是为数据的最终目的地做好准备。这些准备包括对数据的:清洗,转义,分类,重组,合并,拆分,统计等等。
项目需求及架构设计
项目需求分析
- 用户行为数据采集平台搭建
- 业务数据采集平台搭建
- 数据仓库维度建模
- 分析:设备,会员,商品,地区,活动等电商核心主题。
- 采用即席查询工具,随时进行指标分析。
- 对集群性能进行监控,发生异常需要报警。
- 元数据管理
- 质量监控
项目框架
技术选型
技术选型主要考虑的因素:数据量大小,业务需求,行业内经验,技术成熟度,开发维护成本,总成本预算
- 数据采集传输:Flume,Kafka,Sqoop,Logstash,DataX
- 数据存储:MySql,HDFS,HBase,Redis,MongoDB
- 数据计算:Hive,Tez,Spark,Flink,Storm
- 数据查询:Presto,Kylin,Impala,Druid
- 数据可视化:Echarts,Superset,QuickBI,DataV
- 任务调度:Azkaban,Oozie
- 集群监控:Zabbix
- 元数据管理:Atlas
- 质量监控:Griffin
系统数据流程设计
框架版本选型
如何选择Apache/CDH/HDP版本?
- Apache
运维麻烦,组件间兼容性需要自己调研。
一般大厂使用,技术实力雄厚,有专业的运维人员
(建议使用)
- CDH
国内使用最多的版本,但CM不开源,今年开始要收费,一个节点一万美金。
- HDP
开源,可以进行二次开发,但是没有CDH稳定,国内使用较少。
Apache框架版本
产品 | 版本 |
---|---|
Hadoop | 3.1.3 |
Flume | 1.9.0 |
Kafka | 2.4.1 |
Hive | 3.1.2 |
Sqoop | 1.4.6 |
Java | 1.8 |
ZooKeeper | 3.5.7 |
Presto | 0.189 |
注意事项:框架选型尽量不要选择最新的框架,选择最新框架半年前左右的稳定版。
服务器选型
- 物理机
以128G内存,20核CPU,40线程,8T HDD和2T SSD硬盘,戴尔品牌单台报价4W出头。一般物理机寿命5年左右。
需要有专业的运维人员,平均一个月1W。电费也是不少的开销。
- 云主机
以阿里云为例,差不多相同配置,每年5W。
很多运维工作都由阿里云完成,运维相对较轻松。
- 企业选择
金融有钱公司和阿里没有直接冲突的公司选择阿里云
中小公司,为了融资上市,选择阿里云,拉到融资后买物理机
有长期打算,资金比较足,选择物理机。
集群资源规划设计
集群规模
如何确认集群规模?(假设:每台服务器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台服务器
测试集群服务器规划
服务名称 | 子服务 | 服务器 hadoop131 | 服务器 hadoop132 | 服务器 hadoop133 |
---|---|---|---|---|
HDFS | NameNode | √ | ||
DataNode | √ | √ | √ | |
SecondaryNameNode | √ | |||
Yarn | NodeManager | √ | √ | √ |
ResourceManager | √ | |||
Zookeeper | Zookeeper Server | √ | √ | √ |
Flume(采集日志) | Flume | √ | √ | |
Kafka | Kafka | √ | √ | √ |
Flume(消费Kafka) | Flume | √ | ||
Hive | Hive | √ | ||
MySQL | MySQL | √ | ||
Sqoop | Sqoop | √ | ||
Presto | Coordinator | √ | ||
Worker | √ | √ | ||
Azkaban | AzkabanWebServer | √ | ||
AzkabanExecutorServer | √ | |||
Druid | Druid | √ | √ | √ |
Kylin | √ | |||
HBase | HMaster | √ | ||
HRegionServer | √ | √ | √ | |
Superset | √ | |||
Atlas | √ | |||
Solr | Jar | √ | ||
服务器总计 | 18 | 9 | 9 |