赞
踩
https://blog.csdn.net/qq_29726869/article/details/82757381
任务描述
测试公司内部Spark集群能承受多少并发量
Spark集群分配参数
节点数:5
cpu:20核
内存:40g
硬盘:500g
每台节点分配参数
cpu:4核
内存:8g
硬盘:100g
测试案例(通过spark集群自带WEBUI进行监控任务提交运行状态)
1.编写测试程序1,无限循环通过Spark restful API 提交任务到spark集群运行,每个任务申请worker数1个,cpu:1核,内存:1g,driver端 cpu:核,内存1g,程序只提交spark任务不进行任务读取文件和处理分析操作,申请到资源就立马释放
2.编写测试程序2,条件同上,然后每个任务读取指定文件进行分词计数,并且上一个任务提交后休眠1-2秒再进行提交下一个任务
3.编写测试程序3,提交2个任务,第一个任务先提交并申请spark集群所有资源,然后提交第二个任务,第二个任务也要获取spark集群所有资源
4.编写测试程序4,提交2个任务,第一个任务先提交并申请spark集群50%资源,然后提交第二个任务,第二个任务也要获取spark集群50%资源
5.编写测试程序5,提交2个任务,第一个任务先提交并申请spark集群70%资源,然后提交第二个任务,第二个任务也要获取spark集群70%资源
测试目的:
1.测试公司内部Spark集群同一时间能运行多少个spark任务
2.多个spark任务若能同时进行,执行速度怎么样
3.在spark集群无资源可申请的同时又有任务提交,spark集群会采取怎么操作
4.若提交一个任务,spark集群只能满足其一部分申请,这个任务该如何进行
测试结果
测试案例1:
提交任务速度太快,当提交到20个任务的时候,spark集群资源完全分配完,后续任务直接卡死
(一个任务最少要占两个CPU,一个driver端cpu,一个worker占用的cpu,提交任务时先申请driver端,延迟1-2秒后再去申请这个driver端的worker节点)
后续任务卡死的原因:
spark集群的所有cpu都分配给前20个任务的driver端了,没有多余的资源去分配给其他任务,也没有一点资源为前20个任务继续分配worker节点,结果就卡死了
测试案例2:
当提交到10个任务的时候,spark集群完全分配完,后续任务进入等待状态,当前10个任务中有某个任务执行结束了,后续任务就会按序号继续申请spark资源进行运行
测试案例3
第一个任务占用完spark集群所有资源,第二个任务直接进入等待状态,等待第一个任务执行完再进行申请资源
测试案例4
两个任务可以一起运行在spark集群上
测试案例5
第一个任务申请70%资源,第二个任务继续申请到30%资源,一起运行在spark集群上,当第一个任务结束后,spark集群会继续分配多出来的资源给第二个任务
备注:公司内部集群配置只适合测试环境,为保证提交的任务都能快速运行(分配4核4g)建议同时运行任务不超过4-5个.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。