本篇文章首發於頭條號Flink本地安裝和建立Flink應用,歡迎關注個人頭條號和微信公衆號「大數據技術和人工智能」(微信搜索bigdata_ai_tech)獲取更多幹貨,也歡迎關注個人CSDN博客。html
本篇介紹一下Flink本地環境搭建和建立Flink應用。java
Flink能夠在Linux、Mac OS X和Windows上運行,要求安裝Java 8.x。web
java -version java version "1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
#從官網下載頁面 http://flink.apache.org/downloads.html 下載Flink wget http://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.8.0/flink-1.8.0-bin-scala_2.11.tgz tar xzf flink-1.8.0-bin-scala_2.11.tgz cd flink-1.8.0 #啓動本地Flink羣集 ./bin/start-cluster.sh #中止本地Flink羣集 #./bin/stop-cluster.sh
啓動成功後能夠打開http://127.0.0.1:8081
看到Flink的web UI,以下圖所示。shell
本地安裝也能夠經過Flink源碼構建的方式,具體操做能夠參考Flink源碼分析-源碼構建。apache
使用nc
命令監聽指定端口。bash
nc -l 9002 #而後隨便輸入點東西,好比像下面這樣 #這些東西在提交SocketWindowWordCount Job以前或以後輸入都是能夠的 hello world word count hi flink ha ha
運行Flink測試example,這裏用Flink WordCount Job來測試一下。微信
#在源碼目錄下執行,指定9002端口,這個端口要和剛剛nc命令監聽的端口一致 ./build-target/bin/flink run ./build-target/examples/streaming/SocketWindowWordCount.jar --port 9002
查看SocketWindowWordCount Job的輸出。curl
#在源碼目錄下執行 tail -100f ./build-target/log/flink-*-taskexecutor-0-*.out #執行後輸出以下 hello : 1 world : 1 word : 1 count : 1 hi : 1 flink : 1 ha : 2
也能夠在Flink web UI裏查看輸出,以下圖所示。源碼分析
Flink能夠使用Maven和Gradle來構建,這裏只介紹使用Maven構建,要求使用Maven 3.x和Java 8.x。測試
#使用Maven建立 mvn archetype:generate \ -DarchetypeGroupId=org.apache.flink \ -DarchetypeArtifactId=flink-quickstart-java \ -DarchetypeVersion=1.8.0 \ -DgroupId=flink-demo \ -DartifactId=flink-demo \ -Dversion=0.1 \ -Dpackage=myflink \ -DinteractiveMode=false
若是沒有指定groupId
、artifactId
、version
、package
,在建立的過程當中會提示定義這幾個參數的值並確認,以下圖所示。
#使用官方提供的快速入門腳本建立 curl https://flink.apache.org/q/quickstart.sh | bash -s 1.8.0
建立好的項目結構以下
tree myflink/ . ├── pom.xml └── src └── main ├── java │ └── myflink │ ├── BatchJob.java │ └── StreamingJob.java └── resources └── log4j.properties
接下來就能夠開始開心愉快的coding啦^_^