大数据数仓项目总结(一)需求、技术选型、框架版本、服务器、集群规模
文章目录
- 一.需求描述
- 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=2T6)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、每天做什么
大数据数仓项目总结(一)需求、技术选型、框架版本、服务器、集群规模相关推荐
- 【大数据数仓项目集群配置 一】
本文用于记录我的第一次内网大数据集群配置过程. 本篇主要实现基础配置. 配置使用的软件版本和脚本参考自尚硅谷,链接如下: 链接: https://www.bilibili.com/video/BV1r ...
- Python + 大数据 - 数仓实战之智能电商分析平台
Python + 大数据 - 数仓实战之智能电商分析平台 1. 项目架构 2. 数据仓库维度模型设计-事实表 事实表的特征:表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一 ...
- 大数据数仓建模(3)
大数据数仓建模(3) 2.2.6 人员配置参考 1.旁敲侧击的问你到底做过没有 2.你们大概规模,数据量 1整体架构 属于研发部/技术部/数据部/基础平台部,我们属于大数据组,其他还有后端项目组,前端 ...
- 大数据/数仓面试灵魂30问
1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 2.如何建设数据中台?可简单说下理解与思路 3.数据仓库.数据中台.数据湖的理解 4.传统数仓的程度(建模工具 ...
- 大数据/数仓面试灵魂30问(转)
1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 2.如何建设数据中台?可简单说下理解与思路 3.数据仓库.数据中台.数据湖的理解 4.传统数仓的程度(建模工具 ...
- Python+大数据-数仓实战之滴滴出行(一)
Python+大数据-数仓实战之滴滴出行(一) 1. 项目架构图 1.1 数据流程处理 1.2 数仓分层 1.3 创建数据库 在Hive中创建数据库-- 创建ods库 create database ...
- 大数据数仓高级面试题整理
大家好,给大家整理了一下大数据数仓高级面试题,希望大侠们能够喜欢. 数仓高内聚低耦合是怎么做的 定义 高内聚:强调模块内部的相对独立性,要求模块内部的元素尽可能的完成一个功能,不混杂其他功能,从而使模 ...
- Python+大数据-数仓实战之滴滴出行(二)
Python+大数据-数仓实战之滴滴出行(二) 1. 数据转移 #验证sqoop是否工作 /export/server/sqoop-1.4.7/bin/sqoop list-databases \ - ...
- 滴滴出行大数据数仓实战
我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励. 2021年「博客之星」参赛博主:Maynor大数据 (感谢礼品.红包免费送!) https://bbs.csdn.ne ...
最新文章
- LeetCode中等题之简易银行系统
- 坚持使用Override 注解(36)
- 联想服务器 重装系统u盘启动,联想_Lenovo BIOS Setup Utility 设置U盘启动教程
- 计算机格式化后数据恢复的基础,用DiskGenius恢复误删除或误格式化后的文件
- Rightmost Digit
- Windows CE File System [2/2]
- phpmyadmin 安装 配置
- iView 一周年了,同时发布了 2.0 正式版,但这只是开始...
- CNN基本步骤以及经典卷积(LeNet、AlexNet、VGGNet、InceptionNet 和 ResNet)网络讲解以及tensorflow代码实现
- python爬虫分析_Python爬虫解析网页的4种方式
- 使用 Task 简化异步编程
- 《设计模式详解》创建型模式 - 原型模式
- phpMyAdmin登录时指定服务器ip和端口的方法
- 关于maven各种报错
- Matrix Cookbook 公式推导
- 对于超前,滞后,超前滞后使用范围
- 《C Primer Plus》第二章——C语言概述(程序示例与解释,提高程序可读性,函数的定义与使用,调试,关键字,复习题与编程练习)
- 手机无法被计算机识别,手机usb无法被电脑识别怎么办_电脑无法识别手机usb设备的解决方法...
- 海思HI3516 MIPI屏幕调试笔记
- 大数据时代,数据实时同步解决方案的思考—最全的数据同步总结
热门文章
- Web 通信 之 长连接、长轮询(long polling)
- CST仿真学习 2021-10-12
- java mysql重要吗_干了三年的Java,你竟然还不会MySQL性能优化
- 为什么说天天P图是一款人工智能App
- HIT CSAPP 程序人生(Hello‘s P2P)
- AI笔记: 计算机视觉之照明模型和颜色模型
- vivo手机总是发烫,教你这样设置,瞬间降温
- 哈希表(如何打造一个工业级的哈希表)
- Java 递归遍历文件
- 树莓派udev不能自动挂载_英伟达:抢占‘树莓派市场,发布基于云的自动驾驶仿真平台...