前言
之前寫了不少 Flink 文章了,也有不少 demo,但是文章寫的時候都是在本地直接運行 Main 類的 main 方法,其實 Flink 是支持在 UI 上上傳 Flink Job 的 jar 包,然后運行得。最開始在第一篇 《從0到1學習Flink》—— Mac 上搭建 Flink 1.6.0 環境並構建運行簡單程序入門 中其實提到過了 Flink 自帶的 UI 界面,今天我們就來看看如何將我們的項目打包在這里發布運行。
准備
編譯打包
項目代碼就拿我之前的文章 《從0到1學習Flink》—— Flink 寫入數據到 ElasticSearch 吧,代碼地址是在 GitHub 倉庫地址:https://github.com/zhisheng17/flink-learning/tree/master/flink-learning-connectors/flink-learning-connectors-es6 ,如果感興趣的可以直接拿來打包試試水。
我們在整個項目 (flink-learning)pom.xml 所在文件夾執行以下命令打包:
mvn clean install
然后你會發現在 flink-learning-connectors-es6 的 target 目錄下有 flink-learning-connectors-es6-1.0-SNAPSHOT.jar 。
啟動 ES
注意你的 Kafka 數據源和 ES 都已經啟動好了, 清空了下 ES 目錄下的 data 數據,為了就是查看是不是真的有數據存入進來了。
提交 jar 包
將此文件提交到 Flinkserver 上,如下圖:
點擊下圖紅框中的"Upload"按鈕:
如下圖,選中剛剛上傳的文件,填寫類名,再點擊"Submit"按鈕即可啟動 Job:
查看運行結果
如下圖,在 Overview 頁面可見正在運行的任務:
你可以看到 Task Manager 中關於任務的 metric 數據
、日志信息以及 Stdout 信息。
查看 Kibana ,此時 ES 中已經有數據了:
我們可以在 flink ui 界面上的 overview cancel 這個 job,那么可以看到 job 的日志:
總結
本篇文章寫了下如何將我們的 job 編譯打包並提交到 Flink 自帶到 Server UI 上面去運行,也算是對前面文章的一個補充,當然了,Flink job 不僅支持這種模式的運行,它還可以運行在 K8s,Mesos,等上面,等以后我接觸到再寫寫。
本文原創地址是: http://www.54tianzhisheng.cn/2019/01/05/Flink-run/ , 未經允許禁止轉載。
關注我
微信公眾號:zhisheng
另外我自己整理了些 Flink 的學習資料,目前已經全部放到微信公眾號了。你可以加我的微信:zhisheng_tian,然后回復關鍵字:Flink 即可無條件獲取到。
Github 代碼倉庫
https://github.com/zhisheng17/flink-learning/
以后這個項目的所有代碼都將放在這個倉庫里,包含了自己學習 flink 的一些 demo 和博客
相關文章
1、《從0到1學習Flink》—— Apache Flink 介紹
2、《從0到1學習Flink》—— Mac 上搭建 Flink 1.6.0 環境並構建運行簡單程序入門
3、《從0到1學習Flink》—— Flink 配置文件詳解
4、《從0到1學習Flink》—— Data Source 介紹
5、《從0到1學習Flink》—— 如何自定義 Data Source ?
6、《從0到1學習Flink》—— Data Sink 介紹
7、《從0到1學習Flink》—— 如何自定義 Data Sink ?
8、《從0到1學習Flink》—— Flink Data transformation(轉換)
9、《從0到1學習Flink》—— 介紹Flink中的Stream Windows
10、《從0到1學習Flink》—— Flink 中的幾種 Time 詳解
11、《從0到1學習Flink》—— Flink 寫入數據到 ElasticSearch