货拉拉基于混合云的大数据成本管控体系建设实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 货拉拉基于混合云的
大数据成本管控体系建设实践
王海华
2.
3. 自我介绍
王海华
货拉拉大数据架构师/基础架构负责人
• 8年以上大数据架构经验
• 涉及大数据平台产品架构/安全/稳定性/云原生等方向
• 负责过几千到几万台大规模大数据集群和架构
Apache Hive/Spark/Alluxio contributor
4. 目
录
1 背景和挑战
2 大数据成本管控体系
3 存储成本优化
4 计算成本优化
5 总结与未来展望
5. 1
背景和挑战
6. 货拉拉介绍
8+ 352 760万 58万
业务线 国内城市 月活用户 月活司机
3+ 1000+ 10PB+ 20K+
IDC 机器数 存储量 日均任务数
7. 货拉拉-大数据
大数据使命:驱动业务数智化,助力公司业务持续增⻓
辅助决策类应用
应用层
服务层
数据
应用
经营分析
赋能业务类应用
用户分析
实时报表
平台层
&数仓
集市层
用户集市
用户集市
DIM
IDP数据集成开发
数据接入平台
基础层 大数据
基础平台
数据
云服务
标签画像体系
…… 特征体系
司机集市
司机集市
DWB明细数据整合层 主数据库
DWB
DWT
基础整合层
明细数据层 DWD明细数据层
数据治理平台
……
指标体系 元数据管理
DIM维表层 数据质量管理
数据安全管理
数据成本管理
数据湖接入(T+1、近实时、实时)
ODS贴源数据层
离线数据接入
实时数据接入
埋点数据接入
特征平台
AI平台
数据资产
DWS公共汇总服务层
DWS公共汇总服务层
⻜流实时开发
AB Test
快速报表
数据仓库
BQ数据即席查询
接入层
数据上报
……
数据智能支撑工具
快捷分析
用户画像
数据研发平台
智能广告投放
数据服务工具
数据应用支撑服务工具
大数据分析平台
大数据分析平台 可视化大屏
数据工具箱
可视化
数据工具箱
自助分析
多维分析
固定报表
自助分析
固定报表
预警/告警监控
指标库管理
智能营销
鹰眼监控
数据对账
数据链路监控
离线计算(Hive/Spark/Presto/...) 实时计算(Flink) OLAP多维分析(Druid/CK/Doris)
资源管理(YARN/K8S) 离线存储(HDFS/OBS) 在线存储(Hbase/ES)
数据⻔户
权限
⻔户
中心
首⻚
权限
中心
知识库
知识库
个人
中心
个人
中心
内容
管理
内容
管理
建议
反馈
建议
反馈
8. 背景和挑战
场景多样性
01
数据资产多样性
02
03
成本管控挑战
9. 背景和挑战-场景多样性
流量/计算量
离线
实时
在线
0
12
24
时间
10. 背景和挑战-数据资产多样性
数据资产类型
各类表
数据接口
实时任务
离线任务
报表
Hive表
指标
特征
标签
11. 背景和挑战-成本管控挑战
1. 成本和单均成本⻜速增⻓?不可控
2. 成本是谁花出去的?不知道
3. 成本使用合理不合理?不清楚
12. 背景和挑战-成本管控思路
数据资产梳理
成本预算管控和辅助治理能力
具备基本成本管控能力
成本运营
存储和计算深度优化能力
!"#$%&
助力公司和用户成本进一步降低
基于健康度的成本运营能力
成本分摊
预算申请和管
控
深度优化
保持存储和计算资源保持在健康水位
辅助治理
13. 2
成本管控体系
14. HLL大数据成本管控体系
成本管控体系
禁止新建任务
禁止生产操作
降低预算申请
治理收益榜单
资产健康分
红黑榜
惩罚措施
徽章展示
优秀治理个人评选
激励措施
持续运营
预算申请
健康度提升
资源
预算
预算使用跟踪
预算预警和限
制
辅助
治理
成本目标
预算控制
技术优化
离线
存储
计算
任务
数据压缩
数据归档
数据生命周期
任务下线
资源优化
数据资产度量
成本(个人/部⻔)
资源池
离线计算资源 离线存储资源 离线计算 离线存储
实时计算资源 在线存储资源 实时计算 在线存储
健康分(个人/部⻔)
任务
计算健康
分
存储健康分
15. 预算管控流程
HLL大数据成本管控体系
预算管控流程
月度复盘
成本
分摊
开始
根据单量调整目标
预算
是否超预算
资源测算
预算申请
预算审核
预算申请和确认
是
预算预警
季度复盘
连续3个月超
预算?
是
降低预算申请
禁止新建任务
成本治理
预算跟踪与预警
年终复盘
禁止新建表
预算限制
结束
16. 预算预警与限制
HLL大数据成本管控体系
预算预警与限制
! 年度预算拆分到月度预算
! 超出月度预算,进行预算预警
! 连续一个季度超出月度预算,
执行预算限制措施
!
治理达标后限制解除
17. 数据资产度量
HLL大数据成本管控体系
数据资产度量
任务
优化
资源
优化
场景
存储
治理
冷热
分层
成本
运营
服务层 成本明细 资源使用明细 成本账单 存储健康分 任务健康分 平台
数仓层 租户成本汇总表 租户资源汇总表 在线存储明细 离线存储明细 分区热度统计表 报表信息表
计算引擎Metrics
表 YARN App信息
表 离线任务信息表 实时任务信息表 文件热度统计表 ...
数据源层
基础
设施
存储 计算 监控
计算引擎 运维 ...
数据
资产
...
离线任务 报表 标签
实时任务 指标 ...
18. 3
存储成本优化
19. HLL大数据成本管控体系
存储成本问题
HLL大数据离线存储现状
表数量大
17W+ Hive表
增速快
4PB/月自然增⻓
冷数据量大
约33%数据90天内无访问
没有做数据生命周期、冷热分层管理
20. HLL大数据成本管控体系
存储冷热分层
存储治理思路
冷热分层
分区粒度
数据温度分层
建能力
数据归档管理
数据温度展示
数据生命周期管理
做治理
冷数据归档
数据生命周期治理
无用无效表下线删除
21. HLL大数据成本管控体系
存储冷热分层
存储冷热分层
冷热分层
归档收益曲线
收益占比
热 15%
存储策略
Cache
(n >= 1000)
温 25%
温
度
(3 <= n < 1000)
冷 10%
(0 < n <= 2)
最近90天访问次数
标准存储
冰 50%
(n=0)
n: 分区90天内被访问次数
归档存储
归档或删除
22. 存储冷热分层技术架构
HLL大数据成本管控体系
存储冷热分层技术架构
冷热分层管理
Presto
SQL
分区级热度统
计
...
文件级热度统计
数据温度展示
merge
分区热度
归档状态管理
SQL查询事件
DML
平台数仓
AuditLog
存储层
数据归档
归档恢复
AuditLog
归档/恢复
数据生命周管理
23. 数据归档能力
HLL大数据成本管控体系
存储归档能力
生命周期: 保留最近n天的分区,n天之前
的分区将被回收
建表时设置生命
周期和归档周期
归档周期: n天之前的冷数据将被归档
如何选择数据当前时间?
当前时间
180天前
! 分区表 =
Max(分区修改时间,分区业务时间pt=YYYYMMDD)
180天数据生命周期
! 非分区表 =
Max(表最后修改时间, 表最后访问时间)
90天数据归档周期
90天前
已删除
时间
已归档
标准存储
冷
热
24. HLL大数据成本管控体系
存储优化治理
存储优化治理
生命周期治理
冰冷数据归档
存储优化治理
文件压缩格式
算法升级
存量生命周期治理
增量生命周期回收
存量归档
增量归档
snappy -> zlib
zlib -> zstd(进行中)
存储空间大于1T的表治理
空间增⻓TOP 100的表治理
日空间增⻓>=10G表的治理
专项深度治理
无用无效表下线、删除
存储空间>=500GB表治理
新增表空间增⻓TOP100治理
ODS永久生命周期全量表治理
...
25. HLL大数据成本管控体系
存储优化收益
存储优化收益
优化前
优化后
◆ 存储优化明显:
• 优化前: 存储线性快速增⻓
• 优化后: 存储8个月零增⻓并持
续下降
◆ 累计节省了54%的存储成本
26. 4
计算成本优化
27. 弹性资源管理
HLL大数据成本管控体系
存储优化收益
弹性计算资源管理-背景
离线集群资源趋势
夜晚/白天、大促/春节的资源
波峰波谷特征明显
不同类型资源(离线/实时/在线)
资源特征不同
实时集群资源趋势
高优离线
任务分布集中 (0点-6点之间)
按照高峰期资源需求
集群固定大小无法弹性
28. 弹性资源管理-思路
自研弹性扩缩容服务实现高低峰资源弹
性管理
• 降低 低峰期资源浪费
• 不影响 高优作业稳定性
目标
手段
利用公有云按需/竞价类型实例实现弹性
资源池
YARN 调度改造实现高优作业保障
29. 弹性资源池
实例类型
单位成本
稳定性
高
公有云预留实例
1.0(基准)
高
高
1.5
公有云按需实例
收费粒度
总结
天级别 现生产主力实例类型,适合做固
定保障资源池
分钟 有一天内分时弹性能力,成本优
势一般,稳定性和云库存有保障
适合做弹性保障资源池
分钟 成本优势大,需克服稳定性问
题,库存无保障
适合做弹性非保障资源池,需要
被抢占后补偿策略
天/月
高
低
0.2-0.8(跟
公有云竞价实例
商务折扣有
关)
弹性能力
分钟
低
分钟
预留实例
按需实例
竞价实例
集群不同类型实例数量变化
方案
充分利用公有云提供多种
实例类型各自优势
组合形成弹性资源池
• 保障资源池
• 非保障资源池
弹性实例高峰扩容,低峰
竞价实例
临时扩容
低峰缩容
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
缩容
高峰扩容
20
21
22
23
24
时间
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
30. 弹性资源管理-架构
Spock弹性服务实现扩缩容
1 策略和机制
自动化运维平台对接公有云
2
弹性资源池
YARN优先级调度支持不同
3
实例类型和高优任务优先调
度保障资源池
31. 弹性资源管理-成果
原集群资源量
优化后集群资源量
优化后集群成本
! 集群成本 下降20%~30%
资源节省
资源节省
! 高优作业 稳定性不受影响
遗留问题:解决集群逻辑资源
0
2
4
6
8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46
时间
利用率低问题,未解决 物理
利用率低问题
32. 计算超卖
解决问题:逻辑资源使用率高,物理
资源使用率较低问题
方案
根据集群逻辑资源打满情况下确认
1
物理资源水位有超卖空间
2 确认机器目标物理使用率
3 YARN dynamic resource 刷新机
器逻辑资源实现超卖
4 观察CPU利用率和Linux OOM情
况,持续调整最佳拆卖比例
效果
• 离线和实时集群逻辑资源超卖25%
• 任务运行时间无明显影响
33. 计算超卖
问题和解决思路
➢ 内存 Linux OOM问题
● 任务受影响严重问题
● 重要Container 被 OOM kill问题
➢ 任务运行时间影响
● 机器负载高导致任务变慢
后继改进
➢ 通过持续观察内核日志分析OOM
频率和机器分布,观察超卖临界
点
➢ 设置 AM/NM oom_adj为-1000实
现 OOM 保护
➢ 局部物理负载触发YARN NM
unhealthy反压机制来降低负载
➢ 考虑更多的资源维度
● Disk/Network/Kernel/...
➢ 基于逻辑Slot的调度机制 -> 基于真实物理负载的资源调度机制
34. 计算任务内存优化
方案
1 参数灰度能力:
分队列参数个性化能力
核心队列 4G 4G 4G ...
普通队列 4G 4G 4G ...
2 修改Container默认声明内存:
container内存优化
普通队列: 1C4GB -> 1C2GB
核心队列: 1C4GB -> 1C3GB
效果
• Hive任务资源消耗降低15%+
• 任务运行时间无明显影响
核心队列
普通队列
3G
2G
3G
2G
2G
3G
2G
3G
2G
...
2G
...
35. 5
总结与展望
36. 总结
预算和管控
持续运营
01
数据资产度量与成本分摊
健康分与红黑榜
成本预算申请和定期跟踪 激励措施
成本预警与限制 惩罚措施
02
04
辅助治理 技术优化
数据冷热分层 弹性资源管理
计算任务浪费、业务价值 计算超卖与内存优化
数据生命周期与归档能力
03
存储压缩算法升级zstd
37. 一些思考
成本目标实现靠体系化建设才能收益最大化
保姆式运动式治理 VS 自助式治理
技术优化 VS 成本限额
场景个性化、持续精进
38. 未来展望
大数据云原生:极致的弹性
在离线混部、离在线混部
成本的深度分摊和价值判断
39.
40.