大数据平台治理资源成本化

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 大数据平台治理资源成本化

前言

”三分靠技术,七分靠管理“这句话可能大家都听说过,事实上背后是涉及到了一系列的方法论,可能业界听过什么程序猿到了一定年龄就转管理岗这个其实是事实。放到大数据平台治理上,这个完全适用的。我们做一个平台化的治理,需要的衡量清楚局部和整体的关系,做到优化的整体化,而不是追求局部优化。所以不管在任何时候,我们都需要看到我们全局的状况,找出资源大头,再精准打击,首要条件的事情便是资源成本化。

大数据平台资源成本衡量

成本的消耗其实来源很多,涉及到网络带宽,交换机,路由器等器材,机柜租用,以及本身的CPU价格,内存价格都有。但是我们需要怎么去衡量我们的平台成本呢,实际情况是,我们不需要真正把实际确定花费多少钱算得那么精准,而是给平台上面可用于优化和治理的信息进行量化就可以,对于一个大数据平台而言,主要针对两个资源就可以,那就是存储和计算。得到一个资源模型,再按照总的成本去进行分摊即可。

存储成本计算

成本=(存储r1+计算r2)

r1和r2是用来分摊时候的资源系数,也就是可以拿到比例值即可

存储成本

存储成本比较直接,物理表对应的存储即可,比如一个TB=100块钱,那么1GB就是10块钱。需要注意的点有下问题:

1.hdfs上面的存储会出现类似多副本*10或者3的存储,也会出现eccode编码之后的1.5倍的存储,那么这种时候怎么去计算呢?

2.视图是不占用存储的,这种时候是不是存储是0呢?

3.我的是外部表这种时候如果很多表都怪在同一个目录下面,那么这种时候共享一份存储,那么这个时候怎么计算呢?

4.我的表cache到了ssd上面,也是占用存储,那么这两个介质上面的是不是都算呢?

仔细一想,就发现计算存储这个事情好像也没那么直接,所以这个时候我们要明白这个时候本身的目标是什么,我们的目标其实是期望反应到资产成本的存储积数,本身的一生就是我们其实期望未来用户是可以下线掉资产的,在一套干净,整齐的资产范围之外,我不希望乱七八糟的资产也进来,所以这种时候我们其实会需要把这种不占用存储的资产也计算成本,未来可以看到的是哪怕下线一个无用的视图,那么也是可以看到成本在下降。面对一系列的问题,我的回答是 一份存储即可,不管是多副本还是单副本,我们都期望是资产占用的成本是相同的单位存储价格 去治理的,所以即使你有10个副本,我依然按照一份存储单位进行计算。

计算成本

计算成本其实在我们实践中被挑战过很多,因为涉及到引擎的不一样,所以资源计算有点不一样,在Yarn的计算体系下,CPU和内存的消耗其实就是核心关注的事情,另一个角度来说,不管是Hive、Spark、Flink等部署在Yarn上,对应资源分配来说,我们都是可以统一到对内存的分配上来,所以核心的考量是关注以上两者的消耗情况。对于资源来说,我们直接是采用资源占用多久来进行衡量,所以是 资源消耗= Core*时间,换算之后我们叫做CU,我们根据CU进行定价。

Hive成本的计算

Hive的任务其实最后的转换成了mapreduce的模型,我们分析一下资源模型:

根据资源消耗分析,我们按照如下公式进行换算

作业消耗
cpu消耗=map个数x时间+reduce个数x时间 ,
内存消耗=mapreduce.map.memory.mbxtask个数+
mapreduce.reduce.memory.mbxreduce个数
Master需要占用一份,则+1即可

yarn中的内存配置如下

mapreduce.map.memory.mb=256m
mapreduce.reduce.memory.mb=256m

当然实际情况会被任务内部配置做调整改变,但是总体是这个逻辑,每个任务配置从log中进行提取,我们就得到了hive的资源模型

Spark作业成本计算

Spark计算本身也是按照内存和CPU的消耗计算, Spark的作业模型我们分解如下

,Spark资源成本计算模型如下:

作业消耗
cpu消耗=task个数*时间,
内存消耗=Worker个数xexecutor-memory
Master需要占用一份,则+1即可

但是,有些问题!!!

最开始的话确实是这样去做的,在Hive的任务比较多的时候问题不大,但是随着平台做优化升级,整个平台逐步把任务切换到Spark引擎下,这个时候资源计算发生改变。

首先一点,hive作业对内存消耗其实不大,平台默认也就1g,后面资源升级,调整成了2g,资源消耗也还好,作业对资源的控制还是维系在一个正比关系。但是加了Spark之后,由于内存是executor-memory参数控制的,这个到了Spark默认配置一度上调6g->8g,有的干到了20g,25g,因为内存和成本就是一个系数,所以原有的成本体系一度崩塌了。

基于这种情况,考虑到实际的成本和引擎不一样,所以并没有去统一去进行对待。而是按照实际的消耗去评估作业的切换方式。

写在后面的话

实际情况来说,对于Yarn来说,本身的Vcore占用的时间和Memory消耗是准确些的,但是实际没有落地这样去实施,原因是平台间隔离比较大,yarn中打印的日志量缺少关联信息,所以其实是一个开发工作量,并没有直接使用。

另外,资源成本换算的成本目标是业务口径,用于知道使用团队的资源使用情况,进行换算是可以满足实际场景的。

最后一点,实际作业成本还有一些资源消耗比较难输出资源情况,例如adhoc的查询,spark sts作业,presto 等,还有一些因素是调度成本和数据扫描成本,综合的下来业务方本身不感知,而且会导致用户使用被很大程度限制!综合考量才是符合实际要求的解法。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
2月前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
41 0
|
2月前
|
存储 SQL 分布式计算
闲侃数仓优化-大数据治理和优化
闲侃数仓优化-大数据治理和优化
41 0
|
11天前
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之等待上游执行的任务是否会占用资源组的资源
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
11天前
|
JSON 分布式计算 大数据
MaxCompute产品使用问题之pyODPS3如何引用udf资源的函数
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
机器学习/深度学习 分布式计算 监控
在大数据模型训练中,关键步骤包括数据收集与清洗、特征工程、数据划分;准备分布式计算资源
【6月更文挑战第28天】在大数据模型训练中,关键步骤包括数据收集与清洗、特征工程、数据划分;准备分布式计算资源,选择并配置模型如深度学习架构;通过初始化、训练、验证进行模型优化;监控性能并管理资源;最后保存模型并部署为服务。过程中要兼顾数据隐私、安全及法规遵守,利用先进技术提升效率。
17 0
|
10天前
|
存储 分布式计算 DataWorks
MaxCompute产品使用问题之dataworks仅支持maxcompute上面的数据治理吗
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
11天前
|
分布式计算 算法 大数据
MaxCompute操作报错合集之使用mf时,为什么还是把独享调度资源占满了
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
11天前
|
SQL 分布式计算 MaxCompute
MaxCompute操作报错合集之通过UDF(用户定义函数)请求外部数据库资源并遇到报错,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
11天前
|
存储 分布式计算 大数据
MaxCompute产品使用问题之购买包年包月资源可以让同一个地域下的两个项目共用吗
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
2月前
|
SQL 分布式计算 数据挖掘
阿里云MaxCompute携手华大基因打造精准医疗应用云平台,十万基因组计算成本降低至1000美金以内
华大基因是中国最领先的基因科技公司,华大基因为消除人类病痛、经济危机、国家灾难、濒危动物保护、缩小贫富差距等方面提供分子遗传层面的技术支持。让我们结合maxcompute的技术特点,看看如何助力华大基因。
2025 13