数据仓库(一) 项目需求与架构设计

文章目录

  • 数据仓库(一) 项目需求与架构设计
    • 数据仓库概念
    • 项目需求及架构设计
      • 项目需求分析
      • 项目框架
        • 技术选型
        • 系统数据流程设计
        • 框架版本选型
          • 如何选择Apache/CDH/HDP版本?
          • Apache框架版本
        • 服务器选型
        • 集群资源规划设计
          • 集群规模
          • 测试集群服务器规划

数据仓库(一) 项目需求与架构设计

该数仓为离线

数据仓库概念

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

数据仓库(一) 项目需求与架构设计_第1张图片

项目需求及架构设计

项目需求分析

  • 用户行为数据采集平台搭建
  • 业务数据采集平台搭建
  • 数据仓库维度建模
  • 分析:设备,会员,商品,地区,活动等电商核心主题。
  • 采用即席查询工具,随时进行指标分析。
  • 集群性能进行监控,发生异常需要报警。
  • 元数据管理
  • 质量监控

项目框架

技术选型

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

  • 数据采集传输:Flume,Kafka,Sqoop,Logstash,DataX
  • 数据存储:MySql,HDFS,HBase,Redis,MongoDB
  • 数据计算:Hive,Tez,Spark,Flink,Storm
  • 数据查询:Presto,Kylin,Impala,Druid
  • 数据可视化:Echarts,Superset,QuickBI,DataV
  • 任务调度:Azkaban,Oozie
  • 集群监控:Zabbix
  • 元数据管理:Atlas
  • 质量监控:Griffin

系统数据流程设计

数据仓库(一) 项目需求与架构设计_第2张图片

框架版本选型

如何选择Apache/CDH/HDP版本?
  • Apache

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

  • CDH

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

  • HDP

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

Apache框架版本
产品 版本
Hadoop 3.1.3
Flume 1.9.0
Kafka 2.4.1
Hive 3.1.2
Sqoop 1.4.6
Java 1.8
ZooKeeper 3.5.7
Presto 0.189

注意事项:框架选型尽量不要选择最新的框架,选择最新框架半年前左右的稳定版。

服务器选型

  • 物理机

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

  • 云主机

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

  • 企业选择

金融有钱公司和阿里没有直接冲突的公司选择阿里云
中小公司,为了融资上市,选择阿里云,拉到融资后买物理机
长期打算,资金比较足,选择物理机。

集群资源规划设计

集群规模

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

  • 每天日活跃用户100万,每人一天平均100条:100万 * 100条 = 1亿条
  • 每条日志1K左右,每天1亿条:100000000 / 1024 / 1024 = 约100G
  • 半年内不扩容服务器:100G * 180天 = 约18T
  • 保存3副本:18T * 3 = 54T
  • 预留20%~30%Buf:54T / 0.7 = 77T
  • 算到这:约8T * 10台服务器
测试集群服务器规划
服务名称 子服务 服务器 hadoop131 服务器 hadoop132 服务器 hadoop133
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
Druid Druid
Kylin
HBase HMaster
HRegionServer
Superset
Atlas
Solr Jar
服务器总计 18 9 9

你可能感兴趣的:(项目开发)