跟 Airflow 一樣,Flink 的運作架構是有為分散式處理設計過的,不過這裡就不深談,我們先以本地 (單機) 模式來運作吧。
首先,請先確認你有安裝 java 11 版,在 1.15 版之後,有要求至少要在 java 11 以上。
再來,到 Downloads | Apache Flink 下載你要的版本並解壓縮。Connector 的話之後會有其他方法使用,這裡先跳過。假設我們抓的是最新的 1.17.1:
$ tar -xzf flink-1.17.1-bin-scala_2.12.tgz
$ cd flink-1.17.1-bin-scala_2.12
在這個資料夾中,會附帶一些腳本,讓我們方便快速啟動。
$ ./bin/start-cluster.sh
正常來說,你就會看到相關 log 告訴你 flink 啟動了
Starting cluster.
Starting standalonesession daemon on host.
Starting taskexecutor daemon on host.
同樣的,Flink 也提供了 Web UI 來了解當前狀態,預設會是 localhost:8081,你應該會看到這樣的畫面:
恭喜你成功啟動了!
附帶一提,Flink 也提供了終止腳本,你可以執行下面這個script 來停止這個 service。
$ ./bin/stop-cluster.sh
那要叫 Flink 執行工作的話,可以在 Web UI 上傳 jar 檔後指示 class 完整 package,這個我們之後再談。
也可以在 bash 下指令,例如:
$ ./bin/flink run examples/streaming/WordCount.jar
這個是官方提供的範例,會計算文件裡的詞彙字數。
這種做法,比較常用在你有一台或數台機器,可以啟動一個 Flink 集群後,另外寫好程式包成 jar 檔,另外上傳給集群執行。
但很明顯的,如果想開發程式的話,你應該不會想每寫一點點就打包一個 jar,再上傳到 flink 內看看結果。所以我們明天就來談談怎麼在 IDE 內啟動並開發 Flink。