00:00
好,接下来我们来详细看一下容量到期多队列的一个配置需求,那需求一这里面有两个小需求哈,第一个需求呢,叫default队列占总内存的40%,而且这个队列呢,如果说他可以抢占别人的资源,或者借用别人资源的时候,最多可以占用到60%。那比如说他自己是40%,那别他不够的时候,是不是可以跟别个队列借呀,那借的话最多能借到60%啊,是这个含义哈。啊,那还有队列呢,占总内存资源的60%,最大资源容量也是最多可以借到80%,这是第一个小需求,那第二需求呢,是配置这个优先级啊,我们后面再讲啊。行,那首先来看一下我们目前这个队列。打开。目前是不是就一个队列啊,Default队列,哎,目前没有任务啊,提交那把它打开。对吧,你展开就能看到它的详细信息啊,这是它目前的总容量,占所有资源的100%。行,那下面我就配置一下参数。
01:00
啊,我们需要配置呢,是在这个呃,容量调速器这个配置文件里面修改如下内容哈,嗯,这个内容啊,这么配不好配。CDETC啊来这里面,这里面有一个它啊把它它它呢,我给他不在这里面配啊,我给他下载下去。Size。下载到桌面。然后用这个notepad加加去配啊,这样会好一点。打开。右键。打开。OK,打开之后呢,我们一个一个往下看,上面这个呢,目前不用改它这个值啊,啊,目前我们也不用改啊,后面再给大家说。嗯,下面往下走走。不用改。调度器入,哎,从这开始往下改啊,说雅安调度器下面有一个容量调器,容量调器呢,是不是所有的队列都从根目录开始啊,哎,根目录下呢,有一个队列,队列叫default,那现在我们是不是增加了一个have?那这个我把这个给你截过来吧哈。
02:04
照着去配要好一些。行,这是我们要配的,那这里面加了一个have队列有了,那还有说这个调度器啊,容量调度器,下面这个root,下面这个default队列,它的总容量默认情况下100%没问题,但是现在它变成多少,是不是要求变成40%啊好,那这块呢就改成。事实,那事实的同时,我现在配置的是root下的default,那你还得怎么办呢?复制一下。再来一个。你看就这么修改,哎,这个default有啥,那你have就有啥就行了,那只不过呢,它变成了60。是吧,你看这块要求是60。那再往下走,下面来到这个参数,说雅安调度器容量调度器route default user limit factor啥意思呢?这哪些,这个像这个队列里面啊,提交任务的时候,这个用户能占到总资源的多少?比如说我这是一个default队列,是总资源40%啊好,那这个用户如果设置为一的话,他最多的时候是可以把这个default队列的40%资源全部用了。
03:10
啊,于是把这个队列所有资源都可以耗尽,咱不就说了吗,一个用户如果说提交的不好的话,会把整个队列资源占好啊,这个全占没,那就这个参数来控制的。那如果你要想修改的话,那是零到1.0,比如说0.5最多能占用总资源的50%,那你配置成0.5啊,现在这里面我就不配了啊,这是default。那下面这个呢,是have。啊,那这俩呢,都可以占用整个队列资源的所有资源。再往下下面呢,说这个雅安调度器容量,调度器入的下面default最大的容量。哎,你看这就是这个参数了,对应的那default最大的资源容量呢,比如说可以占到你root根目录下的总资源的60%。比如说你可以从别个队列借掉20%,你原来是40吧,借20%,那同时再来。
04:02
Default有啥have就有啥,那只不过呢这块呢,它比它差数要多一些,变成80%。再往下说这个容量代器下面,哎,这个root default,它当前的状态是运行状态,那这呢是必须让它运行啊。比如说启动,那启动的话,那have我也让他启动,那就改一下have。就搞定了对吧,那再往下走,下面说这个调度器啊,Root下面有一个啊submit application什么意思,像你这个队列提交任务,那是所有用户都能提交吗。哎,默认是星,表示所有用户都能提交。对吧,那如果说你想设置只让root用户啊,让艾特硅谷用户提交的话,那就把这个地方把这个名称写在这儿。就可以了。OK,那现在呢,这是default的可以。那如这个have,当然也可以。诶,如果你想改的话呢,比如说这改成艾特硅谷,那就艾特硅谷账号,账号他能登录,别人登录不了啊,就是提交不了任务。
05:06
那下面再来。下面仍然是啊,管控default下面也就是说administrator队列,比如说对这个队列进行操作权限相当于是一个管理员权限。那默认哪些用户有呢,所有用户。啊,你也可以进行一个配置好,那这个管理员用户就是对这个队列进行查看。删除杀死。啊,对吧,取消等等都可以由他来操作。那这个。Default。改一下,改成have啊,也是have的,所有用户也可以进行相关操作,那再来下面呢,这个呢是application啊,这个mark property相当于是一个啊,这个是提交任务的优先级,哪些用户可以设置这个队列的优先级。啊,后面我们会讲一个需求,需求二不就是设置队列优先级吗?那谁能设置,你要设置艾特Google,那就只有艾特硅可以配置,其他的不可以配置。那行,那这里面我们就所有用户都可以哈。
06:04
嗯,这个呢,叫还有用户OK,配置账号优先级,那再往下下面有个这个参数。叫雅恩调度器default marks application lifetime。是你这个任务最大的一个生命周期。什么意思呢?那这个参数啊啊,我先给你配置好之后再给你解释啊。他呢,你就default you have you。然后下面还有一个哈,这俩参数一一起解释,它这个也是default有吧,对吧。那我这个have也有。OK吧,这俩参数改完之后,下面就不用配了啊,下面你看就不是这个对应的呃,容量调度器入的下面的这个参数了啊,就是整个调度器的一个参数啊,不用配了,那我回来我们看笔记。哎,这俩参数给你在这解解释啊。解释这俩参数之前,先看一下这个事儿。说提交一个任务的时候啊,可以设置这个任务的一个执行时间。
07:04
你这个任务执行多久?执行一个小时还是执行俩小时,那怎么设置呢?有一个命令叫雅n application AP PID啊,这个哪一个任务具体的ID号,然后杠up time啊,这个uptime啊,Lifetime剩下多长时间,这个时间是可以设置,你设置一个小时,那它就只能执行一个小时,到一个小时之后,这个任务立即被杀死。啊,是这个参数。那个同学说,海哥,我没设置过这个参数啊,哎,如果你没有设置这个参数的话,它默认这个执行时间会走,这个参数叫default left。能懂意思吧,比如说这个默认时间,假如说我执行五分钟。我这块设置了五分钟的话,那他就执行五分钟,如果如果说我设置负一什么意思,你可以一直执行,我不设限随便用。啊,你这个任务执行多久就执行多久啊实际含义哈,好,那上面这个最大参数什么意思呢。还有一个s application lifetime。
08:01
刚才你看我这地方可以指定这个任务的运行时间,那指定的话,那我是无限的指定吗。比如说我指定一个这个一年,我让这个任务制定一年行吗?不行是因为这个参数受限于他。假如说这块我设置你这个最大这个任务执行时间不能超过两天。那你甚至一年,那这是无线网。听懂意思,哎,不设置的话,那他默认走的是这个,你这个是比如说五分钟,那我就这个任务执行五分钟自动杀死。哎,如果设置的话呢,那你不能超过我这个设置的对象值。能理解了吧,哎,这是这两个参数的一个含义哈。好,那这个参数改完之后呢,我们把它这个保存一下CTRLS。关掉。关掉之后我们还得上传到这个集群上哈,那怎么上传呢。RM-RF,哎,软件代器删掉。删掉之后把它直接拖拽过来。关闭。
09:00
这就有了,那你检查一下啊,VM。是吧,看一下是不是我们配的。这里面你看这地方有have吧,啊有have啊,那就说明没问题,是我配的,那是我们配的话呢,分发一下SNC哎。OK,嗯,GPS一下。看看当前,当前任务正在执行对吧?哎,正在执行,正在执行的时候,如果说我不重新启动集群,那我可以怎么办呢?我可以执行这样命令。叫雅RM格的in refresh还记得命令干嘛的吗?这块。是不是更新你雅安队列的相关配置啊,记住哈,它更新的是队列配置,你这么刷新是没问题的,如果你更新的是这个雅安这个set这个参数。那你就得重启一下牙。啊,这是个级别不一样啊,那行,那就比如说这样啊,我刷新一下。嗯,刷新之前你看一下这个页面啊,这个页面目前是不是只有depo队列啊。
10:02
刷新,刷新完毕之后再回来。走。看到了吗?这里面就有一个have队列和default队列。哎,就这么两个了啊,那行,那你看一下这个have。看一下这款产品。是吧,60%,80%吧,最大80%啊,默认是60%,那你看一下depot。关了啊发对吧,40%,60%,哎。一个运行情况比较好配置哈,那配置完之后呢,那我们得测试一下,看看这个任务能不能执行对吧?嗯,退出来。嗯。那还多法加啊。如果说我不进行队列的设置,默认这个任务会执行在哪里面思考一下。做默认找地方的。还多方,嗯,一米五六次,那这块呢,我现在啊,我把我这个价包我提交到哪里呢。杠咋地?提交到map。Reduce。点照吧,第2EE。
11:03
嗯。啊q name,我这个呢,我给他指定,我指定给他提交到have里面,然后。Input路径下面output。五肯定没有可以吧,哎,这样的情况那好执行。嗯,我是不是有参数写错了。QEU。忘了一个word。Word。对吧,哎,沃尔count杠大D参数,把这个队列提交到have走。执行,他在执行的时候啊,我们赶紧回到这刷新一下,看是不是在还有队列你在执行啊,是不是正在执行啊,那占他执行了占用资源多少,使用了这个队列资源的数27.8%,那个资源是不是在空闲啊。哎,这就是这个队列哈。再刷新。刷新,哎,现在占多少,占多了吧,哎41.7了啊。那还是挺耗的,哎,又又回来了啊,又回来了。
12:02
哎,结束了,哎,这就是这个任务的一个运行情况啊,这application回到这,这就是我们刚才提交到了是have队列,默认走的是default队列。嗯。这是配置的这个多容量调度器啊。行,那这是除了这种方式啊,除了这种方式之外,配置指定队列还有一种方式啊,可以配置。还记得这个吗?如果是你自己写的程序,你可以在这个。com文件里面set map啊,Job qui直接把它设成have啊,没有必要说在这个命令行上啊,每次都得指定。那效果是一样的啊,那这个我就不给大家演示了。
我来说两句