文章目录
一.需求描述
数据仓库( Data Waehouse ) 是为企业所有决策制定过程,提供所有系统数据支持的战略集合。通过对数据仓库中数据的分析,可以帮助企业,改进业务流程、控制成本、提高产品质量等。
数据仓库,并不是数据的最终目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的:清洗,转义,分类,重组,合并,拆分,统计等等。
1)项目大致需求
- 1)用户行为数据采集平台搭建
- 2)业务数据采集平台搭建
- 3)数据仓库维度建模
- 4)分析,用户、流量、会员、商品、销售、地区、活动等电商核心主题
- 5)采用即席查询工具,随时进行指标分析
- 6)对集群性能进行监控,发生异常需要报警。
- 7)元数据管理
- 8)质量监控
2)需考虑的问题
- 1)项目技术如何选型?
- 2)框架版本如何选型?(Apache、 CDH、HDP)
- 3)服务器使用物理机还是云主机?
- 4)如何确认集群规模? (项目的数据规模计算)
二.项目框架及选型
1.技术选型
1)技术选型主要考虑因素:
- 业务需求
- 数据量大小
- 行业内经验、技术成熟度
- 开发维护成本
- 总成本预算
2)可选择技术:
- 数据采集传输: Flume,Kafka,Sqoop,Logstash, DataX
- 数据存储: MySql,HDFS,HBase, Redis,MongoDB
- 数据计算: Hive,Spark,Flink,Tez, Storm
- 数据查询: Presto,Kylin,Impala,Druid
- 数据可视化: Echarts、 Superset、QuickBI、DataV
- 任务调度: Azkaban、 Oozie .
- 集群监控:Zabbix
- 元数据管理: Atlas
2.项目架构与数据流程
系统数据处理流程:
数据仓库的输入数据源和输出系统分别是:
- 输入系统:埋点产生的用户行为数据、JavaEE后台产生的业务数据
- 输出系统:报表系统、用户画像系统、推荐系统
3.框架版本选择
1)Hadoop发行版本选择
Hadoop三大发行版本Apache/CDH/HDP如何选择?
- a)Apache: 开源、稳定、使用较多;但运维麻烦,组件间兼容性需要自己调研 (建议使用)
- b)CDH: 国内使用最多的版本,但CM不开源,并且开始要收费,一个节点1万美金
- Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
- c)HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少
2)Apache框架版本具体型号
产品 | 版本 |
---|---|
Hadoop | 2.7.2、 3.1.3 |
Flume | 1.7.0、 1.9.0 |
Kafka | 0.11.0.2、2.4.1 |
Hive | 2.3、3.1.2 |
Spark | 2.4.5 |
Sqoop | 1.4.6 |
MySQL | 5.7.29 |
Azkaban | 2.5.0 |
Java | 1.8 |
Zookeeper | 3.4.10、3.5.7 |
Kylin | 3.0.1 |
HBase | 2.2.4 |
Presto | 0.196 |
注意事项:框架选型尽量不要选择最新的框架,选择最新框架半年前左右的稳定版。
4.服务器选型
服务器选择物理机还是云主机?
1)物理机成本:
- 硬件成本:
- 配置:以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,
- 单价:戴尔品牌——单台报价4W出头
- 寿命:一般物理机寿命5年左右
- 运维成本:需要有专业的运维人员,平均一个月1万
- 其他费用:电费、场地、空调等——配套成本
2)云主机成本:
- 硬件成本:以阿里云为例,差不多相同配置,每年5W。
- 运维成本:很多运维工作都由阿里云完成,运维相对较轻松
3)企业如何选择:主要考虑企业数据规模、发展预期、资金实力、业务属性等
- 资金充裕且和阿里没有直接冲突的公司:如金融有钱公司——选择阿里云
- 中小公司(短期ÿ