文章目录

  • 一.需求描述
    • 1)项目大致需求
    • 2)需考虑的问题
  • 二.项目框架及选型
    • 1.技术选型
    • 2.项目架构与数据流程
    • 3.框架版本选择
      • 1)Hadoop发行版本选择
      • 2)Apache框架版本具体型号
    • 4.服务器选型
    • 5.集群资源规划设计
    • 6.测试集群规划

一.需求描述

数据仓库( 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)企业如何选择:主要考虑企业数据规模、发展预期、资金实力、业务属性等

  • 资金充裕且和阿里没有直接冲突的公司:如金融有钱公司——选择阿里云
  • 中小公司(短期)为了融资上市——选择阿里云,拉到融资后买物理机
  • 有长期打算,资金比较足的公司——选择物理机

5.集群资源规划设计

1.如何确定集群规模

  • 首先要考虑自己单台服务器的性能,
  • 其次要考虑的是每日的数据规模:每日活跃用户、用户平均每日数据量
  • 副本策略:一般2~3个副本
  • 扩容周期:半年不扩容
  • 预留空间:一般20%~30%
  • 数仓分层

假设每台服务器配置:128G内存,20核物理CPU,40线程,8THDD和2TSSD硬盘:

简单版:

  • 一天日活用户:100万
  • 一人一天数据:100条
  • 一条日志大小:1 K左右
  • 一天数据:1 亿条
  • 半年数据:100G * 180天 ≈ 18T
  • 副本数据:18T*3=54T
  • 预留20%-30%大小:54T/0.7=77T
  • 结论:8T*10台服务器

考虑数仓分层、压缩、副本策略等其他各项:

  • 1)每天用户行为数据规模:以每天日活跃用户100万,每人一天平均100条日志数据,每条日志大小1K,则
    100 万 ∗ 100 条 ∗ 1 K / 1024 / 1024 = 约 100 G / 天 100万*100条*1K/ 1024/ 1024=约100G/天 100万∗100条∗1K/1024/1024=约100G/天
  • 2)Hive数仓分层:
    • ods与dwd层:采用LZO压缩+列式存储,每天100G数据压缩存储后两层共计: 10 G ∗ 2 = 20 G 10G*2=20G 10G∗2=20G
    • dws层聚合不压缩:50G
    • 再加上HDFS分布式存储的3个副本,共计:

70 G ∗ 3 = 210 G 70G*3=210G 70G∗3=210G

  • 3)半年内不扩容服务器来算: 210 G ∗ 180 天 = 约 37 T 210G* 180天=约37T 210G∗180天=约37T

  • 4)预留20%~30%Buf: 37 T / 0.7 = 53 T 37T/0.7=53T 37T/0.7=53T

  • 5)kafka中:每天100G数据,两个副本,预留7天,预留30%空间
    100 G ∗ 2 ∗ 7 / 0.7 = 2 T 100G*2*7/0.7=2T 100G∗2∗7/0.7=2T

  • 6)flume忽略不计

  • 7)业务数据:

    • 按照每天下单10万,每人每天10条,每条1K: 10 万 ∗ 10 ∗ 1 K / 1 0 6 = 1 G 10万*10*1K/10^6=1G 10万∗10∗1K/106=1G
    • 算上3层数仓存储、3个副本、180天扩容周期、30%预留

1 G ∗ 3 层 数 仓 ∗ 3 副 本 ∗ 180 天 / 0.7 = 约 2 T 1G*3层数仓*3副本*180天/0.7=约2T 1G∗3层数仓∗3副本∗180天/0.7=约2T

  • 7)日志数据存储周期30天: 100 G ∗ 30 = 3 T 100G*30=3T 100G∗30=3T
  • 8)共计 53+2+2+3=60T
  • 结论:大致需要8T*8台服务器

6.测试集群规划

需要考虑的问题:
1、测试服务器多少台;
2、测试环境什么样;
3、测试数据哪里来;
4、如保证写的SQL正确:
5、测试之后如何上线

测试集群规划:

  • 尽量将耗内存的服务分开安装
  • 客户端服务放到一起
  • Flume与Kafka安装对应起来


另外还需要考虑的问题:
1、实现一个需求需要多长时间;
2、项目三年内迭代
3、当前版本是多少;
4、每天做什么

大数据数仓项目总结(一)需求、技术选型、框架版本、服务器、集群规模相关推荐

  1. 【大数据数仓项目集群配置 一】

    本文用于记录我的第一次内网大数据集群配置过程. 本篇主要实现基础配置. 配置使用的软件版本和脚本参考自尚硅谷,链接如下: 链接: https://www.bilibili.com/video/BV1r ...

  2. Python + 大数据 - 数仓实战之智能电商分析平台

    Python + 大数据 - 数仓实战之智能电商分析平台 1. 项目架构 2. 数据仓库维度模型设计-事实表 事实表的特征:表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一 ...

  3. 大数据数仓建模(3)

    大数据数仓建模(3) 2.2.6 人员配置参考 1.旁敲侧击的问你到底做过没有 2.你们大概规模,数据量 1整体架构 属于研发部/技术部/数据部/基础平台部,我们属于大数据组,其他还有后端项目组,前端 ...

  4. 大数据/数仓面试灵魂30问

    1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 2.如何建设数据中台?可简单说下理解与思路 3.数据仓库.数据中台.数据湖的理解 4.传统数仓的程度(建模工具 ...

  5. 大数据/数仓面试灵魂30问(转)

    1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 2.如何建设数据中台?可简单说下理解与思路 3.数据仓库.数据中台.数据湖的理解 4.传统数仓的程度(建模工具 ...

  6. Python+大数据-数仓实战之滴滴出行(一)

    Python+大数据-数仓实战之滴滴出行(一) 1. 项目架构图 1.1 数据流程处理 1.2 数仓分层 1.3 创建数据库 在Hive中创建数据库-- 创建ods库 create database ...

  7. 大数据数仓高级面试题整理

    大家好,给大家整理了一下大数据数仓高级面试题,希望大侠们能够喜欢. 数仓高内聚低耦合是怎么做的 定义 高内聚:强调模块内部的相对独立性,要求模块内部的元素尽可能的完成一个功能,不混杂其他功能,从而使模 ...

  8. Python+大数据-数仓实战之滴滴出行(二)

    Python+大数据-数仓实战之滴滴出行(二) 1. 数据转移 #验证sqoop是否工作 /export/server/sqoop-1.4.7/bin/sqoop list-databases \ - ...

  9. 滴滴出行大数据数仓实战

    我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励. 2021年「博客之星」参赛博主:Maynor大数据 (感谢礼品.红包免费送!) https://bbs.csdn.ne ...

最新文章

  1. LeetCode中等题之简易银行系统
  2. 坚持使用Override 注解(36)
  3. 联想服务器 重装系统u盘启动,联想_Lenovo BIOS Setup Utility 设置U盘启动教程
  4. 计算机格式化后数据恢复的基础,用DiskGenius恢复误删除或误格式化后的文件
  5. Rightmost Digit
  6. Windows CE File System [2/2]
  7. phpmyadmin 安装 配置
  8. iView 一周年了,同时发布了 2.0 正式版,但这只是开始...
  9. CNN基本步骤以及经典卷积(LeNet、AlexNet、VGGNet、InceptionNet 和 ResNet)网络讲解以及tensorflow代码实现
  10. python爬虫分析_Python爬虫解析网页的4种方式
  11. 使用 Task 简化异步编程
  12. 《设计模式详解》创建型模式 - 原型模式
  13. phpMyAdmin登录时指定服务器ip和端口的方法
  14. 关于maven各种报错
  15. Matrix Cookbook 公式推导
  16. 对于超前,滞后,超前滞后使用范围
  17. 《C Primer Plus》第二章——C语言概述(程序示例与解释,提高程序可读性,函数的定义与使用,调试,关键字,复习题与编程练习)
  18. 手机无法被计算机识别,手机usb无法被电脑识别怎么办_电脑无法识别手机usb设备的解决方法...
  19. 海思HI3516 MIPI屏幕调试笔记
  20. 大数据时代,数据实时同步解决方案的思考—最全的数据同步总结

热门文章

  1. Web 通信 之 长连接、长轮询(long polling)
  2. CST仿真学习 2021-10-12
  3. java mysql重要吗_干了三年的Java,你竟然还不会MySQL性能优化
  4. 为什么说天天P图是一款人工智能App
  5. HIT CSAPP 程序人生(Hello‘s P2P)
  6. AI笔记: 计算机视觉之照明模型和颜色模型
  7. vivo手机总是发烫,教你这样设置,瞬间降温
  8. 哈希表(如何打造一个工业级的哈希表)
  9. Java 递归遍历文件
  10. 树莓派udev不能自动挂载_英伟达:抢占‘树莓派市场,发布基于云的自动驾驶仿真平台...