并行度设置
其中keyBy不能设置会报错,因为keyBy不属于一个常规的任务算子,不需要做计算,只是做一个规则匹配,按照字段第一个进行合并,其他的算子都可以用setParallelism()进行设置并行度(为一个任务的subtask的的个数)
将流式计算的WordCount进行打包
如果遇到错误可以更改一下maven的版本,与自己版本相对应进行打包
上传Jar到页面任务中
任务提交
查看任务状态
这里的任务只是一种提交的状态,并没有真正的启动任务,当资源不够会一直转圈圈(其中parallelism为任务的并行度,keyby为hash不在任务中)
程序一直created,表示slots资源不够
最后将会失败(提交任务时 先要将nc -lk 7777 打开 不然会直接failed)
重新配置slots
停掉flink
进入到conf目录下修改flink-conf.yaml,并分发
启动集群提交任务
测试
小结
测试可得,若任务并行度为1 slots为1 task为2 ,则任务也会提交成功,虽然只有一个slots 有两个task 但是这个slots会进行共享,但是如果task中的并行度为2时 任务提交将会不成功,由于默认情况下,Flink 允许子任务共享 slot,即使它们是不同任务的子任务。 这样的结果是,一个 slot 可以保存作业的整个管道。而Task Slot 是静态的概念,是指 TaskManager 具有的并发执行能力,如果task中的parallelism并行度为2时,slot并不具备这样的共享