00:00
好,接下来呢,我们讲一下这个雅安的工作机制。呃,他的工作机制呢,是在你无论在面试当中。开发当中还好一点啊,主要是面试当中会问的是非常非常高频的啊。无论是在笔试题当中。还是在活动上啊,就是面试题当中。不一样的啊。都会去问你这个。能不能说的清楚啊,其实非常简单啊,你只要捋顺了这个思路就OK了啊,别看这一张图,你看到处都是线,到处都是这个文字。我来看一下吧,看看好多东西是不是已经讲过N多遍了。看一下左侧这块MR程序提交到客户端所在的节点。那你看下面这段代码什么时候。这么点味包comp?提交是吧,哎,提交作业,那提交的内容,你这个价包在at个股啊,达点价啊等等啊,在任何位置表示情况。的地方。也是logo的位置啊。然后呢,启动的是雅安。
01:01
那一切准备工作完事之后干什么事情呢?申请application。这个。那你这一申请跟谁呢?Manager就给你返回一个。提交路径和。这个job的ID。这个我们之前看过吧。播,那路径是本地的,是不是也有同样同样的一个ID啊。返回来,返回回来之后。你是不是就要相应的将你所需的资源提交到这个路径上,那这个路径呢,就是HDS啊。这个后面加上ID对应job的资源。那这里面包括鞋店。配置文件。只不过现在的路径变成了。没有任何变化吧,啊就是这样的啊好,那提交上来之后。资源提交完毕,申请运行master,他是干嘛的?
02:04
整个把资源状态的一个协调是吧。好,申请运营商。那你这一申请啊,它就变成了一个任务。不是说你一申请我要运行它这个集群就立刻会给你,给你相应的一台服务器让你去运行。因为在这个集群上是不是运行着很多很多任务啊。所以说他的资源也是很紧张的啊,不会说立刻就想要你,除非他非常闲啊。查了一下啊,假如说这里面有呃,几千个任务在排队。那对不起,你这个只能打包成一个任务,这叫等待,等待这个任务放到哪里呢?放到任务的队列。队列结构的知道吧。先进先出站呢。先进后出,OK。那它会进入到他的一个任务队列里面去。
03:01
那这个任务队列呢,一会儿我们会讲,其实就。一个调度策略。其实这里面稍微多说一点,它默认只是容量调度器。那不管怎么说,放到这个队列里去了。那这时候就有一个note。他现在正在空结。捕捉到了,那好,就由你来领任务。他去这里面去把这个任务领回来。运行。那你领到这个任务之后,任务呢,是需要相应的资源才能运行的。那这个资源由谁创建的?因为你运行任务肯定需要CPU,需要内存,是不是需要网络需要IO啊,哎等等这些情况啊,他分配完这个相应的资源之后,启动了对应的。你说经过这一圈才把它请出来?那启动了起来,它之后我们就熟了吧,它会去读切片信息,是不是决定开多少个。
04:01
那拍是吧。所以说开起来它之后。他就要上这里面去下载相应他需要的资源。他要看一下。多少个界面?有几个界面,我就起几个map。他看完这个疾病信息之后。他就要申请。外太。你要拍几个拍?那假如说你这两个斜面,你是不得。开两个麦的,那这两个麦克是你说开就开的吗?是不是还得有人家老大说的话,哎,得给你分配箱的资源,那好,这个任务又打包上到这个队列里面去了。那这对列哎,正好又有两台服务器,资源比较闲。那么他们就把这个任务领下来了,那领下来一样,你这个任务想运行是不是都需要支援呢?啊,需要CPU,需要内存啊等等。
05:00
他们都领完相应的这个资源之后,然后呢,这个由这个APP啊。统一发生这个启动脚本。看到这个卖太就。那ma的后续的工作你就很熟了吧?在map探索里面干什么?做RAID读取文件。读完了之后是map进行业务逻辑处理啊。之后,然后是收集阶段啊。然后呢,溢血阶段对吧,溢血,然后还有什么胃病,是不是合并啊合。大家都熟了。那卖之后,哎。最终卖阶段结束之后,要把排好序的。内容分别放到不同的分群里面去吧。分区,这是零号分区,这是一号分区。说前面不管你经过多少几个阶段,最终把数据放到这个磁盘上。就是那个,呃。之中有个out文件是吧?还有个ex文件吗?好,那就是这个。
06:02
那你所有的ma结束之后,由谁来申请?开启这个态势呢。他是清楚的,哪一个任务有没有结束。他一结束之后,他又会向这个容器申请。开启先W的。那正好这两台。那显着呢?那就先让创建容器开启reduce。那么reduce test的数据来源哪呢?从map阶段进行拷啊拷对应分区的数据过来进行。那最后算完之后。结束。香港。其实是非常顺的啊,非常顺的一条线路。
07:00
我再来一遍。首先呢,左侧呢,这也是我非常熟悉的代码,也是照提交啊。For complic。那提交的时候呢,就会创建一个雅安专头,如果是本地的话,就是local专。那好,那他要跟这个集群进行申请,说我要运行这个道。那你上manager呢,根据情况一看,哎,正好,那你可以把这个资源放到这个路径,加上这个job ID。那这个呢,客户端也比较听话,拿到这个路径之后,哎,就把这个路径拼成最全的一个路径,向这个路径上进行传递资源。那这样呢,我们非常熟悉,有切片,有配置文件,有加包。啊,这会儿就不得不传加高了。传过来之后呢,资源提交完毕,申请运行mmr。也就是说整个这个job资源状态协调的老大。那你提交他这个matter,他可不会立刻想要你。
08:03
因为这里面有很多job等待运行。那怎么办呢?哎,我先把你放到这个任务的队列里面去。那一旦有相应的空闲的机器啊。或者这个资源不是特别紧张的。能够有条件运行你这个任务的人,他就。把这个任务定下来。领到text之后,你这个task想运行。呢,必须需要内存,CPU没有它转。那申请完之后就启动了2IP8。MRMR起来之后,他要根据。鞋垫信息。决定开几个。我把这东西下载下来。然后再次申请。你看呢,这个切片呢,正好需要两个map test。那就开呗。
09:01
因为我正好有两台机器。目前状态OK。啊,可以领到这个任务那里。连来一样,这里面需要对这个。任务分配相应的CPU啊,内存。其实价高是相当于拷贝下来的啊。那一切准备就绪之后,由他来发起说启动运行。那他们呢,就开始独立的进行。互不相干。那运算完之后就会把数据写到磁盘上。分好区,排好期,放在这儿。等待reduce的处理。那reduce呢,这里面哎,设置了两个分区。可以开两个。那两个reduce呢,那它开启的时候也需要相当支援啊,其实。是他也要跟他一个申请。申请回来之后。拿到了。现在容器。
10:00
在这里面开启video。那radio它的数据来源。就是对应的数据。这就是整个这个延安的工作机制。简单啊。九号结束。
我来说两句