00:00
好,接下来我们来看一下容量调度器,一个多队列配置。那首先大家思考一个问题啊,在生产环境下怎么创建多队列?怎么创,那第一个事儿,你看一下这个刚才咱们这个集群啊。刚才咱们这个集群。关注了。打开它,打开这个地方,你会发现这个调度器里面默认只有一个default队列,那生产环境下它能满足企业开发要求吗?比如说我一下子要提交100个任务。那100个任务你只有一个队列,那我这个并发度是不是有点太低了,相当于就是一个FIFA队列吗?那怎么办呢?那我就要创建多个队列。那大家再思考,那我创建多个队列,那我怎么创建这个队列名称啊。对吧,啊怎么命名呢。那有部分企业呢,是按照这个你这个任务啊,在哪个框架里面运行,我就给你创建几个队列,比如说我这个框架这个任务呢,可以在have里面运行,那我就创建一个have。
01:05
那还有一些任务由Spark任务,那我就放在Spark里面,那flink的任务放在flink里面,那我创建这么几个队列,那这种是有的啊有的。但是呢,大家再思考哈,那我即使这么去创建,那我也就是mmr,再加个MR对吧,Mr have sparkli啊,四个队列。那能满足我生产环境要求吗?中小型公司够了,那如果是大型公司,我可能一下子有1万个任务,那1万个任务除以四,每一个队列里面执行的任务数是不是还是非常多呀?对吧,还是不一定能满足细节要求。那另一种这个创建队列的方式呢,就是按照业务模块。哎,比如说我这个部门啊,是专门处理这个登录注册的,那我就创建一个登录注册的模块,哎,你处理购物车的,那我就处理一个购物加这个创建购物车模块啊队列,然后下单的业务部门一的,业务部门二的。那这样队列就多了,哎,相互之间也没有相互这个影响。
02:04
哎,能懂我这意思吗?哎,这种是在企业里面属于主流的创建队列这种方式。OK。那创建多列有什么好处,你说这么这这么创建有什么好处呢?嗯,就担心啊,你们这个啊,可能现在你们是比较菜鸟对吧,哎,刚一毕业的时候那个啊,技术实力比较差,去企业里面呢,写了一个非常牛逼的代码叫递归死循环。把所有的资源直接耗尽。有这种可能性吗?嗯,那整个集群就全瘫痪了。那你说这个就来一个实习生,就把你们整个这个公司大数据集群干瘫了,这个说出去像一个笑话是吧,但是这种事情呢,确实有发生了啊,包括前一阵子在咱那个大数据一个讨论群里面,嗯,一个学生说海哥,你你那个海哥之前说过一个,说写了一个地归神循环,把所有集群这个耗尽了,当时还以为是一个笑话。啊,他去公司里面就干了这么一件事,直接把整个集群。
03:00
等他了。啊,这就是真实发生的事情哈。那当然他不是故意的哈,肯定不是故意的,嗯,但是就是呢,嗯一不小心,嗯也没办法啊,没考虑那么多,那下面再来看,那除了这个好处之外,还有什么好处呢?还可以这种降级使用,比如说咱们这种像双11。或者618的时候。是不数据量会猛增啊。你数据量猛增,就即使你把所有整个集群所有的资源全耗上,那也满足不了企业的这个要求,比如说这种情况啊。在生长往下呢,这是一个集群,哎,我这里面跑了很多一个任务啊,很多任务刚才说了咱们已经创建了一个多队列,对吧?哎,多个队列。对不对,那能够解决一定的并发程度,但是双11和618来了。你吧。我这里面我提前肯定要考虑增加机器啊。
04:01
增加服务器,比如说105。嗯,多一点吧,一直到。120行吧,哎,中间画了好多这个意思啊。行吧,嗯,这样这样去啊,省略我增加了这么多台服务器。嗯,这样。但是。这个由于今天这个销售火爆啊,骸骨人参丸卖爆了,卖爆仓了。那我还是处理不了,所以说我要想把这个队列里面所有的任务都执行了,这个是我完成不了的任务,这队列里面有比如说有十个队列。那你是老板怎么办?那我是不是要优先保证说哪几个任哪几个队列的任务是最重要的,最核心的,比如说前三个吧,嗯,二前三个任务必须保证。那其他七个队列的任务是一些辅助任务,我是不是可以选择性放弃啊?
05:02
对吧?哎,至少在今天这一时刻,我不去计算它,等我后面有时间的时候,我再慢慢的去处理后续的指标,这不就可以了吗。哎,这叫降级啊叫。哎,降级使用,哎非常灵活,那你有了这个多队列就非常灵活了,比如说业务部门一的任务必须优先保障。那好,那他的资源全给他,那其他队列是不是就可以停掉了,好,那还有资源呢,那业务部门二再保证一下,然后下单的保证啊,购物车的保证,最后这个登录注册的啊,你要没有资源干掉。哎,可以这样去配置。行,这就是多队列的一个好处啊。
我来说两句