当前位置:   article > 正文

离线数仓搭建_01_数仓概念与项目框架说明_如何搭建离线数仓

如何搭建离线数仓

点击右下方:专栏目录查看全文
在这里插入图片描述

下文访问:离线数仓搭建_02_服务器配置与数据生产

1.0 数据仓库概念(P1-P13)

image-20220831234500440

​   数据仓库( Data Warehouse ),是为企业制定决策,提供数据支持的。可以帮助企业,改进业务流程、提高产品质量等。
​   数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等
​   业务数据:就是各行业在处理事务过程中产生的数据。比如用户在电商网站中登录、下单、支付等 过程中,需要和网站后台数据库进行增删改查交互,产生的数据就是业务数据。业务数据通常存储在MySQL、Oracle等数据库中。

​   用户行为数据:用户在使用产品过程中,通过埋点收集与客户端产品交互过程中产生的数据,并发往日志服务器进行保存。比如页面浏览、点击、停留、评论、点赞、收藏等。用户行为数据通常存储在日志文件中。

​   爬虫数据:通常事通过技术手段获取其他公司网站的数据。

   数据仓库不是数据的最终的目的地,而是为数据最终的目的地做好准备。这些准备包括对数据的:备份,清洗,聚合,统计等

  ODS:备份

  DWD:清洗

  DWS:按天存储

  DWT:累积性存储

  ADS:报表

2.0 项目 需求及架构设计

2.1项目需求

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

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

  3、数据仓库维度建模(核心)

  4、分析,设备、会员、商品、地区、活动等电商核心主题,统计的报表指标近100个。

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

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

  7、元数据管理

  8、质量监控

  9、权限管理

2.2项目框架

2.2.1技术选型

​    技术选型主要考虑因素:数据量大小、业务需求、行业内经验、技术成熟度、开发维护成本、总成本预算。

数据采集传输:Flume,.Kafka,Sqoop;Logstash,DataX

数据存储:MySQL,HDFS,HBase,Redis,MongoDB

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

数据查询:Presto,Kylin,Impala,Duid,ClickHouse,Doris

数据可视化:Echats,Superset,QuickBI,DataV

任务调度:Azkaban,Oozie.,DolphinScheduler,Airflow

集群监控:Zabbi这,Prometheus

元数据管理:Atlas

权限管理:Ranger,Sentry

2.2.2 系统数据流程设计

image-20220901111526317

2.2.3 框架版本选型

  (1)Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技术实力雄厚,有专业的运维人员)(建议使用)

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

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

2)云服务选择

(l)阿里云的EMR、MaxCompute、Data Works

(2)亚马逊云EMR

(3)腾讯云MR

(4)华为云EMR

image-20220901111846543

2.2.4服务器选型

1)物理机:

以128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘,戴尔品牌
单台报价4W出头。一般物理机寿命5年左右。
需要有专业的运维人员,平均一个月1万。电费也是不少的开销。

2)云主机:

云主机:以阿里云为例,差不多相同配置,每年5W。
很多运维工作都由阿里云完成,运维相对较轻松

3)企业选择

金融有钱公司和阿里没有直接冲突的公司选择阿里云
中小公司、为了融资上市,选择阿里云,拉倒融资后买物理机。
有长期打算,资金比较足,选释物理机。
让天下漫有推学的技

2.2.5 集群规模

1)如何确认集群规模?(假设:每台服务器8T磁盘,128G内存)

  (1)每天日活跃用户100万,每人一天平均100条:100万100条=1亿条
  (2)每条日志1K左右,每天1亿条:100000000/1024/1024=约100G
  (3)半年内不扩容服务器来算:100G
180天=约18T
  (4)保存3副本:18T3=54T
  (5)预留20%30%Buf=54T0.7=77T
  (6)算到这:约8T
10台服务器

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

2.2.6 集群资源规划设计

​    在企业中通常会搭建一套生产集群和一套测试集群。生产集群运行生产任务,测试集群用于上线前代码编写和测试。

1)生产集群

​ (1)消耗内存的分开

​ (2)数据传输数据比较紧密的放在一起(Kafka 、Zookeeper)

​ (3)客户端尽量放在一到两台服务器上,方便外部访问

​ (4)有依赖关系的尽量放到同一台服务器(例如:Hive和Azkaban Executor)

12345678910
nnnndndndndndndndndn
rmrmnmnmnmnmnmnm
nmnm
zkzkzk
kafkakafkakafka
FlumeFlumeflume
HbaseHbaseHbase
hivehive
mysqlmysql
sparkspark
AzkabanAzkabanESES

2)测试集群服务器规划

服务名称子服务服务器hadoop102服务器hadoop103服务器hadoop104
HDFSNameNode
DataNode
SecondaryNameNode
YarnNodeManager
Resourcemanager
ZookeeperZookeeper Server
Flume(采集日志)Flume
KafkaKafka
Flume(消费Kafka)Flume
HiveHive
MySQLMySQL
SqoopSqoop
PrestoCoordinator
Worker
AzkabanAzkabanWebServer
AzkabanExecutorServer
Spark
Kylin
HBaseHMaster
HRegionServer
Superset
Atlas
SolrJar
服务数总计1988
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/396864
推荐阅读
相关标签
  

闽ICP备14008679号