一、数据仓库概念
数据仓库(Data Warehouse)
是为企业所有决策制定过程,提供所有系统数据支持的战略集合。
二、项目需求及架构设计
2.1 项目需求分析
1、项目需求
1)用户行为数据采集平台搭建
2)业务数据采集平台搭建
3)数据仓库维度建模
4)分析:用户、流量、会员、商品、销售、地区、活动等电商核心主题,统计的报表指标近100。
5)采用即席查询工具,随时进行指标分析
6)对集群性能进行监控,发生异常需要报警
7)元数据管理
8)质量监控
2.2 项目框架
2.2.1 技术选型
技术选型主要需要考虑的因素:数据量大小、业务需求、行业内经验、技术成熟度、开发维护成本、总成本预算
数据采集传输:Flume、Kafka、Sqoop、Logstash、DataX、
数据存储:Mysql、HDFS、HBase、Redis、MongoDB
数据计算:Hive、Tez、Spark、Flink、Storm
数据查询:Presto、Druid、Impala、Kylin
数据可视化:Echarts、Superset、QuickBI、DataV
任务调度:Azkaban、Oozie
集群监控:Zabbix
元数据管理:Atlas
数据质量监控:Griffin
2.2.2 系统数据流程设计
2.2.3 框架版本选型
2.2.4 服务器选型
服务器是选择物理机还是云主机?
1)物理机:
128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,戴尔品牌单台报价4万出头。一般物理机寿命5年左右。
2)云主机:
以阿里云为例,和上面大致相同配置,每年5万。
2.2.5 集群资源规划设计
1、集群规模
1)如何确认集群规模?(按每台服务器8T磁盘,128G内存)
(1)按每天日活跃用户100万,每人一天平均100条:100万*100条 = 1亿条
(2)每条日志1K左右,每天1亿条:100000000 / 1024 /1024 = 约100G
(3)半年内不扩容服务器来算:100G * 180 天 = 约18T
(4)保存3个副本:18T * 3 = 54T
(5)预留20%~30%Buffer=54T/0.7=77T
(6)需要约8T*10台服务器
2)如果要考虑数仓分层?数据采用压缩?需要重新计算
2、集群服务器规划
服务名称 |
子服务 |
服务器 hadoop102 |
服务器 hadoop103 |
服务器 hadoop104 |
HDFS |
NameNode |
√ |
||
DataNode |
√ |
√ |
√ |
|
SecondaryNameNode |
√ |
|||
Yarn |
NodeManager |
√ |
√ |
√ |
Resourcemanager |
√ |
|||
Zookeeper |
Zookeeper Server |
√ |
√ |
√ |
Flume(采集日志) |
Flume |
√ |
√ |
|
Kafka |
Kafka |
√ |
√ |
√ |
Flume(消费Kafka) |
Flume |