大数据集群资源预估规划【适用于面试与工作集群规划】

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 大数据集群资源预估规划【适用于面试与工作集群规划】

我们在实际工作,或者面试中,经常会遇到这么一个问题,集群该如何规划,一台机器多少磁盘,多少内存,多少core等。

关于公司集群规模,有的几台,有的几百或有的则几千台,那么这几百几千机器他们的配置是怎么样的?

这里先说下大概,对于大多数公司来说,集群有的10来台,而对于电信行业,一个地方的可能有几百台,对于一线互联网集群规模就比较大一些,上千台是比较常见的。    

那么如果我们要搭建大数据平台,集群该如何规划?这是我们初步搭建集群的时候,首次遇到的问题。

对于需要多少台机器,其实这个问题,不能一刀切的回答,具体情况具体分析。虽然一开始我们不知道多少台机器,但是我们可以知道影响的关键因素?

那就是数据的增量是多少?

数据的增量,这里我们来说下数据增量:

其实数据的增量不同的公司,也是不一样的,有的公司数据增量也就是几个G,而有的公司数据增量1T以上,比如物联网大数据。除了数据增量,还有其它影响因素,比如使用的计算组件,使用MapReduce和Spark,Flink在内存的使用上,肯定是有区别的。再比如QPS也影响着系统的资源分配。

除了影响因素,那么我们预估集群包含些步骤?

1.判断计算数据增量大小



如何计算数据量得大小,这个其实很多企业已有相关得系统,只不过数据得处理更换为大数据。所以数据增量已经非常明确。如果我们不知道增量是多少,那么我们就需要计算下。

如每天1亿请求,每个大概2KB,则增量为190G。

计算过程:

2KB转换为G=2/1024/1024

(2/1024/1024)*100000000约等于190G

2.QPS计算与评测


QPS这里我们首先需要计算大概是多少,同时我们需要评测一台物理机大概能支撑多少QPS。

QPS或许我们有些成员比较陌生,可以参考

记一次性能优化,单台4核8G机器支撑5万QPS

https://www.aboutyun.com/blog-61-4365.html

我们或许听说过,如果新浪微博明星发微博,比如结婚,离婚等事件,那么新浪就要顶不住了,就需要临时增加服务器,所以导致新浪程序员假期加班。其中原因之一就是QPS过多,导致服务器压力增大。

假如集群1亿的请求,对于一些网站而言,比如About云社区,电商社区等,一般0点到上午8点请求量很小。一般高峰期为上午10点,下午4,5点请求量比较大,当然每个社区或者电商时间点,有所区别。

也就是80%的数据( 0.8亿)会在其余16个小时(8点-24点)涌入,20%时间( 3小时内)涌入:

QPS= 80 000 000/ (10800)约等于7407条。

即预估结果集群需要在业务最高峰期抗住 7407/s的QPS。

上面是我们评估在高峰期QPS。如果资源充足,让高峰期QPS控制在集群能承载的总QPS的30%左右是比较安全的策略,即应设计集群承载QPS上限为2万~3万/s 才是安全的。

对于物理机,我们可以进行测试,一般来说一台物理机可稳定支持4万QPS。关于QPS测试方法很多种,比如WRK

QPS性能测试工具WRK的简明教程

https://www.aboutyun.com/blog-61-4366.html
更多我们可以自己搜索。

3.存储预估


存储的预估,这里其实还是涉及到我们是如何对待这些数据的,比如有些数据有效期是一年,有的则是长期存储等。这里我们就以长期存储保留。对于时间上来说,一般是三年内不需要增加磁盘。

我们就以数据增量为190G来计算,对于大数据存储,比如hdfs存储副本默认为3,那么190G*3=570G,也就是说一天大概存储570G。

570G*3*365=624150G大概为609T。也就是就存储来说大概需要609T的磁盘。但是一般集群存储不超过80%,609T/0.8大概需要760T。

如果一台机器是20T,那么我们需要38台机器。

4.内存估算


内存估算,内存的估算其实这个是没有绝对标准,有的公司使用Flink处理物联网数据,只用了几台不到10G的机器就可以处理。所以内存的估算其实不同的组件,执行多少任务,多少实时任务,离线任务、算法模型等,区别比较大。

一般实时任务占用的资源都是固定的,可以根据业务个数估算。离线任务可以根据ETL任务数和任务资源配置情况估算,计算资源离线和实时同时启用的时候不能超过资源90%。实时任务资源占用需要小于50%,如果数据增量为190G,实时任务7407/s的QPS,一分钟窗口444420*(2/1024/1024)=0.85G,有的设置5分钟窗口,那么大概是4.25G。如果离线任务,可以把1/4的数据放到内存,那就就需要47.5G的内存。如果二者同时运行,按照不超过90%来计算,需要57.5G。

上面只是单纯的从实时和离线单任务来计算,可以选择64G内存。

5.CPU估算


CPU和内存比例,一般为1:2或者1:4,当然具体需要看有多少线程。

我们以Kafka为例:

Kafka进程里面大概有多少线程:

feeda80d9bb59e81ebee5660fe2f6cd2.png1个Accept线程

  • 默认的3个Process线程(一般会设置为9个)
  • 默认的8个RequestHandler工作线程(可以设置为32个)
  • 清理日志的线程
  • 感知Controller状态的线程
  • 副本同步的线程

估算下来Kafka内部有100多个线程

实际计算

4个cpu core,一般来说几十个线程,在高峰期CPU几乎都快打满了。

8个cpu core,也就能够比较宽裕的支撑几十个线程繁忙的工作。所以Kafka的服务器一般是建议16核,基本上可以hold住一两百线程的工作。当然如果可以给到32 cpu core那就最好不过了!【参考】

总结


上面其实结果并不重要,重要的是我们是如何计算的,大家可以根据自己的环境和需求来估算大概需要的配置和机器数目。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
15天前
|
存储 负载均衡 Java
Elasticsearch集群面试系列文章一
【9月更文挑战第9天】Elasticsearch(简称ES)是一种基于Lucene构建的分布式搜索和分析引擎,广泛用于全文搜索、结构化搜索、分析以及日志实时分析等场景。
62 7
|
2月前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
101 0
|
2月前
|
资源调度 分布式计算 Hadoop
揭秘Hadoop Yarn背后的秘密!它是如何化身‘资源大师’,让大数据处理秒变高效大戏的?
【8月更文挑战第24天】在大数据领域,Hadoop Yarn(另一种资源协调者)作为Hadoop生态的核心组件,扮演着关键角色。Yarn通过其ResourceManager、NodeManager、ApplicationMaster及Container等组件,实现了集群资源的有效管理和作业调度。当MapReduce任务提交时,Yarn不仅高效分配所需资源,还能确保任务按序执行。无论是处理Map阶段还是Reduce阶段的数据,Yarn都能优化资源配置,保障任务流畅运行。此外,Yarn还在Spark等框架中展现出灵活性,支持不同模式下的作业执行。未来,Yarn将持续助力大数据技术的发展与创新。
31 2
|
3月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之使用API调用ODPS SQL时,出现资源被定时任务抢占,该怎么办
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
运维 关系型数据库 MySQL
面试题MySQL问题之MySQL集群的单点失效如何解决
面试题MySQL问题之MySQL集群的单点失效如何解决
93 2
|
3月前
|
消息中间件 分布式计算 DataWorks
MaxCompute产品使用合集之如何在DataWorks中引用MC资源
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
3月前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之PyODPS Python类的开发如何用MC的资源
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
2月前
|
分布式计算 大数据 Hadoop
最快方式搭建docker大数据 测试集群
【8月更文挑战第5天】快速搭建Docker大数据测试集群可采用预构建镜像与Compose文件、利用云服务如AWS的ECS、自动化工具如Ansible或参考在线教程。只需简单配置如内存分配及路径,运行`docker-compose up`即可启动含NameNode、DataNode等组件的Hadoop集群。根据需求与资源选择合适方法。
|
3月前
|
机器学习/深度学习 分布式计算 大数据
MaxCompute产品使用合集之如何查看空间资源、CPU和内存以及存储空间容量
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。

热门文章

最新文章

下一篇
无影云桌面