00:00
那接下来我们关注的重点就是怎么定位反压节点。也就是说咱们一个作业里面有那么多个子,那么多个处理流程,到底是哪个环节出现了问题。咱们要。来找到问题的根源所在,那么一般找这个问题,咱们有两种方式,第一个呢,通过flink自带的word UI啊,咱们去定位到呃,出问题的算子。第二一个,咱们可以通过flink自带的一个指标系统去查看相关的指标,分析出谁是罪魁祸首。那我们先来看一下UI的吧,咱们还是提交的案例。这个呢,还是那个UVDEMO对吧,我内存给小一点啊,给两个G。咱们直接拷过来提交啊。提交上之后咱们等待。打开word UI给大家看一下。
01:08
任路已经跑起来了,那接下来呢?大家注意看,这是一个作业,大概就是一个作业图对吧。那我们可以看到现在的颜色是不是都是一个蓝色底啊。好,那我们稍等一会儿。你看现在颜色变了。那么大家注意,像这种颜色背景不一样,表示的是一个繁忙程度,还有反压程度。像这种。这个是不是有反应了。对吧,那这种通过不同的颜色区分,那我们直观来看的一个状态的话,这个是一三版本才有的,那么如果你是一三以前,那你看到的通通都是这个蓝色的啊,那这个时候怎么办呢?也简单,咱们随便点一个扇子啊,比如说扇子。点一下这里呢,是不是有一个反这个标签对吧,那在这里我们能看到当前算子,如果你是以前版本啊,在这里能看到,那它是反压率在零到十之间是OK的。
02:13
啊,它是OK绿色的,那么如果是十到50还是多少啊,那么头一页吧。啊对,0.5~0.1~0.5为漏,漏的话,它是应该是一个黄的啊,这边会显示一个漏黄色的背景,那如果是大于50%。那这边就显示的是一个红底,现在是绿底对吧,它就是红底,那里面的字就是一个亥。啊,咱们找个有反压的,你看就像这样子,嗨。这个就是咱们通过web UI看一个反压状态的一个方式,那好,那除此之外这么多个算子,谁是问题啊。接下来就就是这个问题,到底谁才是那个凶手,罪魁祸首对吧?那么大家注意,咱们flink是不是有一一项优化,叫什么操作链对吧。
03:10
所以叫operator check operator train是不是会将多个可能将几个算子它们合并在一起啊?合并在一起在页面图上或UI上看,是不是就是一个方块啊?对吧,比如说他俩可能合在一起,那可能对外就只有一个方块了。那这个时候是不是不方便去定位问题,所以如果您要精确的定位的话,还是建议你先怎么样把操作链打散,那我在这边已经是打散一个状态了啊,Disable掉了,我把操作链禁用了,那接下来就是一个扇子一个框,一个扇子一个框就很明显了。那接下来我们找什么呢?来我放大一点,大家看一下啊。从这里我们可以看到,反利率85,反力89。D,好,再往后看三。零零。
04:02
零后面蓝色的肯定都没问题对吧,那至少我们可以看到反压是。这两个有吧,这两个是不是产生了反应啊。我放大一点,你看这里是89呢。或者咱们看指标明显一点,你看第一个反压了,第二个反压了,第三个OK,第四个OK,第五个OK,第六个OK,第七个OK,第八个OK好。也就是说,他俩反应了。从他开始没反应啊,那罪魁祸首一般是谁呢?那么大家注意,一般就两种情况。啊,咱们编个号一般是他的问题。为啥呀,他能力不行。是不是导致他的上游都被他堵死了?对吧。是他自己不行,导致上面被堵死了,就像大家开车的时候,你想想在高速,比如说节假日是不是特别堵啊?啊,你永远不知道前面啊,比如说你堵的很厉害,你永远不知道最前面是什么问题,是发生事故了还是啊在修路啊,还是怎么样,还是有人在并排龟速行驶。
05:11
对吧,那对于假设是没有事故,没有修路,但就是因为最前面的车它行驶的比较慢。导致后面慢慢慢慢的那种效应产生堵车了。那这个时候。对于车来讲,他是不是觉得没堵啊,这高速很通畅啊,完全不堵啊,但是对于其他的来讲,是不是全被堵死了。对吧。所以一般呢,罪魁祸首呢,我说一般啊,就是第一个为OK的算子。第一个OK。那么还有一那不一般是什么情况呢?也不一定说第一个OK,就是罪魁祸首,也可能呢,他是罪魁祸首。他是瓶颈也有可能。
06:01
第一个法尼亚的扇子,为什么呢?你想想,如果咱们用的是flat map这种扇子。Ma表是不是支持一进多出啊。对吧,大家应该能想明白了,那么如果呢,我是一条数据进来,然后我出去100条,假设我是做一些什么分支判断呢?要分离,呃,要把它区分开啊,然后解析一条进来,解析成了100条,那你看这是不是一个数据膨胀的问题?那对于他来讲,是不是才是罪魁祸首啊?对吧,它也会导致下游的反压吧。那这种情况就反过来了,跟这种现象就不一样了,它就变成什么呢?呃,比如说这个是OK,我举个例子,然后呢,这里是呃反压。然后他后面的一溜。全是反的。对吧,因为对比如说这个就是咱们刚才讲的flat map啊,一进100条出。那对于他来讲,他的输入是不是正常的,但从他的输出开始是不是特别量特别大呀,是不是可能导致后面反压,这个时候这种场景第一个反压的算子。
07:11
第一个反压的算子就是根源所在啊,那么如果是咱们现在这种情况,上游都是反,那就找第一个OK的算子就行了啊,就方向是不一样啊。那怎么确定呢?通常来讲啊,就是。上游都是反尼压,然后找第一个OK的扇子,这种比较常见啊,这种比较常见,那如果你要进一步的确认说到底是哪一种情况,那你要结合指标来判断啊,结合这个MAS。具体来判断。
我来说两句