vlambda博客
学习文章列表

Spark项目实战从0到1之(18) 企业级数据仓库构建(一)


  

鬼话三国(第10章) From 葱葱一抹绿随笔 19:55
Spark项目实战从0到1之(18) 企业级数据仓库构建(一)


一、数据仓库

数据仓库(Data Warehouse),是为企业所有决策制定过程,提供所有系统数据支持的战略集合通过对数据仓库中数据的分析,可以帮助企业,改进业务流程、控制成本、提高产品质量等数据仓库,并不是数据的最终目 的地,而是为数据最终的目的地做好准备。这些准备包括对数据的:清洗,转义,分类,重组,合并,拆分,统计等等


Spark项目实战从0到1之(18) 企业级数据仓库构建(一)


二、项目需求

1、用户行为数据采集平台搭建

2、业务数据采集平台搭建

3、数据仓库维度建模

4、分析,用户、流量、会员、商品、销售、地区、活动等电商核心主题,统计的报表指标

5、采用即席查询工具,随时进行指标分析

6、对集群性能进行监控,发生异常需要报警

7、元数据管理

8、质量监控

三、技术选型

【1】思考题

1、项目技术如何选型?

2、框架版本如何选型(Apache、CDH、HDP)

3、服务器使用物理机还是云主机?

4、如何确认集群规模?(假设每台服务器8T硬盘)

【2】技术选型主要考虑因素

数据量大小

业务需求

行业内经验

技术成熟度

开发维护成本

总成本预算

【3】使用的技术

1、数据采集传输:Flume,Kafka,Sqoop,Logstash,DataX

2、数据存储:MySql,HDFS,HBase,Redis,MongoDB

3、数据计算:Hive,Tez,Spark,Flink,Storm

4、数据查询:Presto,Druid,Impala,Kylin

5、数据可视化:Echarts、Superset、QuickBI、DataV

6、任务调度:Azkaban、Oozie

7、集群监控:Zabbix

8、元数据管理:Atlas

9、数据质量监控:Griffin

四、系统数据流程设计

数据来源:

埋点用户行为数据

用户在使用产品过程中,与客户端产品交互过程中产生的数据,比如页面浏览、点击、停留、评论、点赞、收藏等

业务交互数据

业务流程中产生的登录、订单、用户、商品、支付等相关的数据,通常存储在DB中,包括Mysql、Oracle等

架构图:

Spark项目实战从0到1之(18) 企业级数据仓库构建(一)

五、框架版本选型

1)如何选择Apache/CDH/HDP版本?

(1)Apache:

运维麻烦,组件间兼容性需要自己调研。

(一般大厂使用,技术实力雄厚,有专业的运维人员)(建议使用)

(2)CDH:国内使用最多的版本,但CM不开源,今年开始要收费,一个节点1万美金

(3)HDP:

开源,可以进行二次开发,但是没有CDH稳定,国内使用较少

2)Apache框架版本

Spark项目实战从0到1之(18) 企业级数据仓库构建(一)

3)CDH框架版本:5.12.1

Spark项目实战从0到1之(18) 企业级数据仓库构建(一)

六、服务器选型

1)物理机

以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,戴尔品牌单台报价4W出头。一般物理机寿命5年左右

需要有专业的运维人员,平均一个月1万,电费也是不少的开销

2)云主机

以阿里云为例,差不多相同配置,每年5W

很多运维工作都由阿里云完成,运维相对较轻松

3)企业选择

1、金融有钱公司和阿里没有直接冲突的公司选择阿里云

2、中小公司、为了融资上市,选择阿里云,拉倒融资后买物理机

3、有长期打算,资金比较足,选择物理机

七、集群规模

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%Buf=54T/0.7=77T

6、算到这:

约8T*10台服务器

2)如果考虑数仓分层?数据采用压缩?需要重新再计算

3)测试服务器规划