00:00
现在已经知道了怎么样启动一个flink集群,然后在上面打包作业之后去做作业的提交,这些我们都完成了,但是这种方式呢,是利用了这个flink给我们提供的web UI,然后直接在上面点点点就把它提交了啊,看起来很简单,确实也很方便,一般情况只要大家会这么做就可以了,但是有些同学呢,可能就觉得,哎,这种方式不够专业啊,那所以我们接下来还要给大家说一说怎么样用命令行去做作业的一个提交,当然前提我们需要把当前的集群先启动起来,启动起来之后你可以在web UI上去提交,也可以在命令行里面提交。好,然后这里面需要给大家说的是,那前面我们已经在运行的这一个job,如果说我想把它停掉,能不能停掉呢。啊,这个其实是可以停掉的,我这里可以直接cancel一下就可以了,这里边有一个很大的cancel job这样的一个按钮,所以只要这里1.ok确定。
01:00
大家看到这里就变成了一个cancel的,现在running job里边没有了,Complete jobs里边啊,大家看,最早的一个我们是fail掉的啊,第二个是cancel掉的。现在我们再看overview里边。Task slo又变成了二,然后接下来现在我们就是既然已经把它cancel掉了,那现在资源又释放了啊,那现在我们可以继续去做一个处理了,直接在命令行里边做一个提交,那这个要提交的话,如果在这个杜甫102上提交,我得有这个抓包啊,我们现在抓包是还还放在当前的这个主机上的,是吧?啊,所以如果要是考虑到这一点的话,我们还是做一个传输吧。目前我这里边是用到了一个小工具Z。大家也可以用其他的这个FTP工具啊,我们做一个连接,做一个文件传输,当前的抓包是在projects tutorial target,在这对。
02:05
我们现在希望把它直接放在。为了简单起见啊,我们直接放在这个flink根目录下吧,直接把它拖过去。好,OK,现在有了啊。大家看一下现在这个。In 1.0 snap short点已经放在这里了,然后接下来啊,那就可以去做一个任务的提交了,当然这里边还有另外一个问题是,呃,大家大家可能会想到,就是说这里边如果直接在这儿提交的话,那会。呃,我们把这个提交上去之后,现在没有NC对不对,没有启动这个,那肯定会提交失败的啊,所以在这儿的话,呃,这个如果你在这里边起了这个NC的话,又会把当前的这个页面占着,你还得重新启动一个这个呃,Terminal,然后再去敲,好像有点麻烦,那我能不能在其他的这个机器上直接去做一个做一个提交呢?诶我们可以试一试啊,大家可以看到在这并下边,然后我去做提交,提交命令行,提交的时候用什么呢?直接用并下面的flink。
03:12
Flink后边跟flink是说啊,就是运行去提交一个作业,让他去运行,说这里大家需要注意啊,如果说我们直接在照manager这台主机上去run的话,那是没有问题,你什么参数都不加,它默认就是呃,提交到我们当前指定我这里启动的这个集群上的,那如果说现在你在别的一些客户端啊,其他外部的一些机器上去做连接的时候呢?啊,那就最好要加上一个对应的指定到底提交到哪个集群。这里用的是杠M,杠M后边跟的是。哈杜普102,也就是当前集群job manager的。主机名和端口号8081,所以大家其实知道这个8081是一个web页面,呃,Web UI的一个给我们开放的一个端口啊,也是我们去提交一个作业的一个入口,就相当于是我们的一个rest接口啊,一个一个可用的一个外部提交的一个接口接入点,然后接下来后面呢,大家还记得我们之前提交的时候需要有哪些参数吗?
04:23
Entry class parallelism啊,那现在也一样,那就是。入口内啊C。com.at硅谷Wc.stream world count,然后另外呃,这里边还有一个并行度,那当然就是杠P对吧?Parael-P2。最后所有的参数都提交完了,那还要把当前的炸包指定到这里,对吧?啊,就在当前目录下,这个有个问题哈,路103没有这个炸包对吧,这个就稍微麻烦一点啊。
05:02
连接一下。还得重新传一下。OPT下边modulelink。把它去提交。好后大家可以看到这里边他说job has been submitted with job ID啊,这里还还有一个job ID对吧?啊,然后这里边它就放在这儿了,因为前面我们没有,就是让他做这一个后台执行,所以大家看这里边它相当于是一个挂起的一个状态,诶那那我们看一下他这样提交是真的提交了吗?看一下running job。大家看这里果然多了一个兆,对不对啊,就是在我在103上也可以提交这客户端,无所谓你在哪里去提交都是可以的,只要我指定当前提交的哪个集群对吧,弹度102,然后把这些对应的东西标上去就可以了,诶所以这个很好理西,我既然可以在主机上去从这个呃,Web UI页面去提交,我当然也可以在录103去提交啊啊,只不过我们用的是命令行而已嘛,这个没没什么区别啊好,这里面我们看一看,点开看一看,大家看一下这个job ID。
06:11
注意一下啊,尾号是AA3542。我们看一下是不是就是这个job ID啊,哎,所以这个就看的非常的明显,然后当前呢,这里当然目前是没有任何的这个数据啊,因为杜102这里NC这里还没给数呢。如果我们要是输入的数据的话。这里当然就可以看到对应的这个输出了,对吧?啊再看诶这里稍微有一点延迟啊,没有那么快啊,我们看到这里面就就多了。呃,Source这里多了两条数据,Flat map,这里边就是。传输出去的啊,多了四条数据,为什么它是四呢?啊,因为我们不是打散了嘛,对吧,这里边输入一行,然后打散成两个单词,那当然就变成两倍了啊,那如果看这个task manager里边的输出的话,大家看到这里边是不是又多了一次WORD1FLINK1和。
07:10
以及这里的。HELLO1HELLO2跟之前的。结果一模一样,我们用这个命令行也是可以去做提交的。啊,这就是我们当前的这个状态啊,啊,然后另外前面我们还提到了,运行之后它是不是这个资源就少了呢?哎,确实是这样的,当前运行之后呢,哎,当前的task slot已经变成零了啊,所以我们自然想到了这个时候啊,假如说我要。假如说还要再去执行一个,再去运行一个,交一个作业,那是不是就执行提交不了了呢?啊啊,那那有同学可能想我这里可以先把这个退了啊,我这里退出来直接CTRLC退出来的话,当前的这一个作业是不是就取消掉了呢?大家要需要注意一下啊,其实这只是客户端向集群去提交作业的一个过程,其实把作业提交完了之后,这个炸包就直接已经传上去了,就相当于我们把这个作业已经传上去了,那其实跟当前的客户端就没关系了呀,所以我们这里把这个客户端退出来没有任何的影响。
08:18
当前这里该运行该让还是在让的一个状态。哦,那那如果说这里要真正的取消的话,那当然是应该在这里要cancel它才可以对吧?啊,所以接下来我们先看一下,如果我要继续再去做一个提交,我还是继续这里重新再去提交一次,这会有什么区别呢?啊,那这里我就不要这个并行度是二了。我就直接什么都不加,大家知道什么都不加,这是并行度是一对不对,我们看这里直接报错了。Job manager,这里边在在报各种错对吧,然后大家其实可以看到这里的这一行,其实就告诉了我们这个信息,这说的是什么呢?Could not acquire the minimum required resources,获取不到最小需要去运行的资源,所以为什么它运行不了呢?诶,这就是我们说的嘛,这个task slot就是资源,你现在只有零了,那当然现在就就运行不了了,而且大家看这里边我们多了一个F调的一个。
09:18
刚才提交的job,大家看它这里的这个task就相对来讲就少一些,总共只有两个。大家看这里边它只有总共只有两个任务,我们之前那个是有五个任务,对不对?诶当前我兵行度低的话,他这个提交上来之后,任务本来就少,但是你少也没用啊,一点资源都没有,资源是零,那肯定还是要feel的啊,所以要想执行它的话,我们就必须要把之前的资源释放,释放的话当然就是你这里可以去把它做一个cancel啊,那这样cancel的话又是web UI上做做操作了,我们不想这么去去做,那我能不能直接在命令行里边直接去做操作呢?当然也是可以的,命令行里边如果想要去做一个cancel的话,怎么去cancel呢?同样还是flink。
10:08
啊,那那这里边大家就会想到flink,这就不是wrong了,那应该是flink cancel,那link cancel,你直接cancel的话,他到底是cancel谁呢?所以后边要加上一个。哎,大家可以直接在这先先试着敲一下啊啊,你你如果直接这么敲的话,他就告诉你了,这里边必须要去确认一个drop ID,所以我们在后边把之前的那个job ID直接copy过来就可以。现在我们来cancel一下,直接cancel掉了好。然后接下来我们看一眼,大家看这里边已经变成cancel的一个状态了,然后再看这里running当然就没有了啊,Complete,这里有fail掉的,有cancel掉的,这里都能看得到啊,这就是我们当前的用命令行去做操作的这个过程。
我来说两句