离线数仓 (二) --------- 项目需求及架构设计

目录

  • 一、项目需求分析
  • 二、项目框架
    • 1. 技术选型
    • 2. 系统数据流程设计
    • 3. 框架版本选型
    • 4. 服务器选型
    • 5. 集群规模
    • 6. 集群资源规划设计


一、项目需求分析

A、项目需求

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

B、思考题

  • 项目技术如何选型 ?
  • 框架版本如何选型 (Apahe、CDH、HDP) ?
  • 服务器使用物理机还是云主机 ?
  • 如何确认集群规模 ?(假设每台服务器8T硬盘)

二、项目框架

1. 技术选型

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

  • 数据采集传输:Flume, Kafka,Sqoop,Logstash,DataX
  • 数据存储:MySQL,HDFS,HBase,Redis, MongoDB
  • 数据计算:Hive,Tez,Spark,Flink,Storm
  • 数据查询:Presto,Kylin,Impala,Druid,ClickHouse,Doris
  • 数据可视化:Echats,Superset,QuickBI,DataV
  • 任务调度:Azkaban,Oozie,DolphinScheduler,Airflow
  • 集群监控:Zabbix,Prometheus
  • 元数据管理:Atlas
  • 权限管理:Ranger,Sentry

2. 系统数据流程设计

离线数仓 (二) --------- 项目需求及架构设计_第1张图片

3. 框架版本选型

A、如何选择 Apache/CDH/IDP 版本?

  • Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技实力雄厚,有专业的运维人员)(建议使用)
  • CDH:国内使用最多的版本,但 CM 不开源,今年开始收费,一个节点1美金/年。
  • HDP:开源,可以进行二次开发,但是没有 CDH 稳定,国内使用较少

B、云服务选择

  • 阿里云的EMR、MaxCompute、DataWorks
  • 亚马逊云EMR
  • 腾讯云EMR
  • 华为云EMR

离线数仓 (二) --------- 项目需求及架构设计_第2张图片

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

4. 服务器选型

服务器选择物理机还是云主机?

A、物理机

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

B、云主机

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

C、企业选择

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

5. 集群规模

如何确认集群规模?(假设:每台服务器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台服务器

6. 集群资源规划设计

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

生产集群:

A、消耗内存的分开

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

C、客户端尽量放在一到两台服务器上,方便外部访问

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

离线数仓 (二) --------- 项目需求及架构设计_第3张图片
测试集群服务器规划

离线数仓 (二) --------- 项目需求及架构设计_第4张图片

你可能感兴趣的:(大数据项目,大数据,数据仓库,Hadoop)