並行度設置
其中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並不具備這樣的共享