数据仓库(Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。
1 数据仓库的输入数据
1.1 业务数据
就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据**。**业务数据通常存储在MySQL、Oracle等数据库中。
1.2 用户行为数据
用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。
1.3 爬虫数据
通常事通过技术手段获取其他公司网站的数据。属于法律灰色地带,不建议使用
2 项目需求及架构设计
2.1 项目需求分析
- 用户行为数据采集平台搭建
- 业务数据采集平台搭建
- 数据仓库维度建模
- 分析,设备,会员,商品,地区,活动等电商核心主题,统计的报表指标近100个。
- 采用即席查询工具,随时进行指标分析
- 对集群性能进行监控,发生异常需要报警。
- 元数据管理
- 质量监控
- 权限管理
2.2 项目框架
2.2.1技术选型
技术选型主要考虑的因素: 数据量大小,业务需求,行业内经验,技术成熟度,开发维护成本,总成本预算
- 数据采集运输: Flume, Kafka, Sqoop, Logstash, DataX
- 数据存储: MySQL, HDFS, HBase, Redis, MongoDB
- 数据计算: Hive, Tez, Spark, Flink, Staorm
- 数据查询: Presto, Kylin, Impala, Druid, ClickHouse, Doris
- 数据可视化: Echarts, Superset, QuickBI, DataV
- 任务调度: Azkaban, Oozie, DolphinScheduler, Airflow
- 集群监控: Zabbix, Prometheus
- 元数据管理: Atlas
- 权限管理: Ranger, Sectry
2.2.2 系统数据流程设计
2.2.3 框架版本选型
具体版本型号
2.2.4 服务器选型
2.2.5 集群规模
2.2.6 集群资源规划设计
在企业中通常会搭建一套生产集群和一套测试集群。生产集群运行生产任务,测试集群用于上线前代码编写和测试。
2.2.6.1 生产集群
- 消耗内存的分开
- 数据传输数据比较紧密的放在一起(Kafka 、Zookeeper)
- 客户端尽量放在一到两台服务器上,方便外部访问
- 有依赖关系的尽量放到同一台服务器(例如:Hive和Azkaban Executor)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
nn | nn | dn | dn | dn | dn | dn | dn | dn | dn |
rm | rm | nm | nm | nm | nm | nm | nm | ||
nm | nm | ||||||||
zk | zk | zk | |||||||
kafka | kafka | kafka | |||||||
Flume | Flume | flume | |||||||
Hbase | Hbase | Hbase | |||||||
hive | hive | ||||||||
mysql | mysql | ||||||||
spark | spark | ||||||||
Azkaban | Azkaban | ES | ES |
2.2.6.2 测试集群服务器规划
服务名称 | 子服务 | 服务器hadoop102 | 服务器hadoop103 | 服务器hadoop104 |
---|---|---|---|---|
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 | √ | |||
Spark | √ | |||
Kylin | √ | |||
HBase | HMaster | √ | ||
HRegionServer | √ | √ | √ | |
Superset | √ | |||
Atlas | √ | |||
Solr | Jar | √ | ||
服务数总计 | 19 | 8 | 8 |
评论区