(一)集群规划
节点序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
NameNode | 1 | 1 | ||||||||
DataNode | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||
ResourceManager | 1 | 1 | ||||||||
NodeManager | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||
ZooKeeper | 1 | 1 | 1 | |||||||
Kafka | 1 | 1 | 1 | |||||||
Flume | 1 | 1 | 1 | |||||||
HIVE | 1 | 1 | ||||||||
MySQL | 1 | 1 | ||||||||
Spark | 1 | 1 | ||||||||
Flink | 1 | 1 | ||||||||
HBase | 1 | 1 | 1 | |||||||
DolphinScheduler | 1 | 1 | 1 |
节点序号 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
---|---|---|---|---|---|---|---|---|---|
Redis | 1 | 1 | 1 | ||||||
ClickHouse | 1 | 1 | 1 | ||||||
ElasticSearch | 1 | 1 | 1 |
- 节点类型 分为 管理节点(NameNode、ResourceManager…) 和 工作节点(DataNode、NodeManager…)
- 客户端(HIVE、Spark等)集中在一起,便于访问
- 内存消耗较大(HBase、NameNode、Redis、ClickHouse等)的要分开
- ZooKeeper、Kafka 、Flume数据传输较紧密,放一起
- 其它待补充:Azkaban(作业调度)、Zabbix(服务器监控)、Atlas(元数据管理)…
(二)设备
用途 | 内存(GB) | CPU | 磁盘(TB) | 数量 | CPU与内存配比 |
---|---|---|---|---|---|
生产-大数据 | 128 | 16核32线程 | 8 | 20 | 1:4 |
生产-日志服务器 | 16 | 4核8线程 | 2 | 3 | 1:2 |
生产-算法 | 64 | 16核(GPU) | 2 | 1 | 1:2 |
CPU与内存配比 | 类型 | 应用 |
---|---|---|
1:2 | 计算型 | 个人电脑;低并发量的Web服务 |
1:4 | 通用型 | 高并发量的Web服务 |
1:8 | 内存型 | 大数据 |
物理机需要机房(场地费、电费…)和机房运维人员
规模较小的情况下,物理机总成本高于云主机
初创企业首选云主机,大企业可选物理机
涉密数据(例如金融)首选物理机
建议大数据集群CPU与内存配比为1比6~8
(三)数据量
-
每天:百万 日活,十万订单
-
百万日活
每个活跃用户约100条日志,每条日志约1KB
每天日志条数 ≈ 1百 x 1百万 ≈ 1亿
每天日志数据量 ≈ 1KB x 1亿 ≈ 100GB -
十万订单
每个订单约10行数据,每行数据约1KB
每天订单数据量 ≈ 1KB x 10 x 100,000 ≈ 1GB -
每天数据量 ≈ 100GB + 1GB ≈ 100GB
补充:
近年的普通电商,没有各种乱七八糟的让人沉浸的短视频、段子、游戏等,下单率通常在9%
如果电商中融入让人沉迷于刷的短视频,流量会提升而下单率会下降
下单后不一定付款,下单后付款率大概90%(折算付款率8.1%)
(四)硬盘
- 预留空间:30%
HDFS
-
HDFS副本数:3
LZO压缩+Parquet列式存储:10G=>1G -
ODS层每天 ≈ 100G x 3 / 10 ≈ 30G
数仓分层 | 磁盘占用 | 备注 |
---|---|---|
ODS层 | 30G | 压缩+列式存储+副本策略(100=>30) |
DWD层 | 30G | 压缩+列式存储+副本策略(100=>30) |
DWS+DWT层 | 140G | 列式存储+副本策略 |
ADS | 忽略不计 | 不使用压缩,不使用列式存储 |
-
日志数据+业务数据
数仓一年 ≈ 200G/天 x 360天 ≈ 72T
硬盘一年 ≈ 72T / (1-0.3) ≈ 100T -
仅业务数据(MySQL)
数仓一年 ≈ 7T
硬盘一年 ≈ 10T
Kafka
-
保存时间:3天
副本数:2 -
Kafka数据量 ≈ 100GB x 2 x 3 ≈ 600GB
硬盘建议:1T
日志服务器
- 保存时间:30天
数据量 ≈ 100G/天 x 30天 ≈ 3T
硬盘建议:5T
(五)峰值分析
- 流量分布:遵循 二八原则
- 预热期:流量(大幅)上升,付款率下降
- 开售期:流量上升,订单(大幅)上升,付款率上升
按秒
平 均 每 秒 日 志 数 据 量 ≈ 100 G B 60 × 60 × 24 ≈ 1.2 M B 平均每秒日志数据量 \approx \frac{100GB}{60 \times 60 \times 24} \approx 1.2MB 平均每秒日志数据量≈60×60×24100GB≈1.2MB
高 峰 期 每 秒 日 志 数 据 量 ≈ 平 均 每 秒 数 据 量 × 10 ≈ 12 M B 高峰期每秒日志数据量 \approx 平均每秒数据量 \times 10 \approx 12MB 高峰期每秒日志数据量≈平均每秒数据量×10≈12MB
按小时
高峰时段 | 低谷时段 |
---|---|
22、23点 | 3、4、5点 |
活动 | 流量高峰时段 | 订单高峰时段 | 备注 |
---|---|---|---|
无 |