1. 程式人生 > >Flink1.7從安裝到體驗

Flink1.7從安裝到體驗

本文實戰Flink1.7的安裝和Demo執行過程;

步驟介紹

  1. 準備工作;
  2. 下載Flink1.7;
  3. 安裝Flink1.7;
  4. 啟動Flink1.7;
  5. 體驗Flink1.7;

準備工作

以下是本次實戰的環境資訊:

  1. 作業系統:CentOS Linux release 7.5.1804
  2. JDK:1.8.0_191
  3. nc工具:7.50(安裝命令是yum install nmap-ncat.x86_64

注意:

  1. 我在vmware的ubuntu16上試過,啟動後Managers、Slots、Available Task Slots的數量都為零,但在實體機器上是沒有問題的;
  2. CentOS請注意關閉防火牆;

下載Flink1.7

  1. 在Flink官網下載,地址是:https://flink.apache.org/downloads.html
  2. 如下圖,選擇紅框中的版本:
    在這裡插入圖片描述

安裝Flink1.7

Flink1.7的安裝很簡單,解壓即可,如下所示:

  1. 下載的Flink安裝包檔案是flink-1.7.0-bin-hadoop28-scala_2.11.tgz,放在此位置:/usr/local/work
  2. 在/usr/local/work目錄下執行命令tar -zxvf flink-1.7.0-bin-hadoop28-scala_2.11.tgz
    解壓,會生成一個資料夾:flink-1.7.0

啟動Flink1.7

  1. 在資料夾flink-1.7.0下執行命令./bin/start-cluster.sh即可啟動Flink,啟動資訊如下:
[[email protected] flink-1.7.0]# ./bin/start-cluster.sh 
Starting cluster.
Starting standalonesession daemon on host vostro.
Starting taskexecutor daemon on host vostro.
  1. 在flink-1.7.0/log目錄下可以看到名為flink-root-standalonesession-0-vostro.log
    的日誌檔案(您的檔名和我這裡略有不同,vostro是我的主機名,root是當前賬號),內容如下:
2018-12-16 16:51:00,658 INFO  org.apache.flink.runtime.dispatcher.DispatcherRestEndpoint    - Rest endpoint listening at localhost:8081
2018-12-16 16:51:00,658 INFO  org.apache.flink.runtime.dispatcher.DispatcherRestEndpoint    - http://localhost:8081 was granted leadership with leaderSessionID=00000000-0000-0000-0000-000000000000
2018-12-16 16:51:00,658 INFO  org.apache.flink.runtime.dispatcher.DispatcherRestEndpoint    - Web frontend listening at http://localhost:8081.
2018-12-16 16:51:00,760 INFO  org.apache.flink.runtime.rpc.akka.AkkaRpcService              - Starting RPC endpoint for org.apache.flink.runtime.resourcemanager.StandaloneResourceManager at akka://flink/user/resourcemanager .
2018-12-16 16:51:00,777 INFO  org.apache.flink.runtime.rpc.akka.AkkaRpcService              - Starting RPC endpoint for org.apache.flink.runtime.dispatcher.StandaloneDispatcher at akka://flink/user/dispatcher .
2018-12-16 16:51:00,803 INFO  org.apache.flink.runtime.resourcemanager.StandaloneResourceManager  - ResourceManager akka.tcp://[email protected]:6123/user/resourcemanager was granted leadership with fencing token 00000000000000000000000000000000
2018-12-16 16:51:00,804 INFO  org.apache.flink.runtime.resourcemanager.slotmanager.SlotManager  - Starting the SlotManager.
2018-12-16 16:51:00,847 INFO  org.apache.flink.runtime.dispatcher.StandaloneDispatcher      - Dispatcher akka.tcp://[email protected]:6123/user/dispatcher was granted leadership with fencing token 00000000-0000-0000-0000-000000000000
2018-12-16 16:51:00,849 INFO  org.apache.flink.runtime.dispatcher.StandaloneDispatcher      - Recovering all persisted jobs.
2018-12-16 16:51:01,601 INFO  org.apache.flink.runtime.resourcemanager.StandaloneResourceManager  - Registering TaskManager with ResourceID a0692f62811e0452256484a5e46ec5ed (akka.tcp://[email protected]:40228/user/taskmanager_0) at ResourceManager
2018-12-16 17:19:09,663 INFO  org.apache.flink.runtime.entrypoint.ClusterEntrypoint         - RECEIVED SIGNAL 15: SIGTERM. Shutting down as requested.
2018-12-16 17:19:09,663 INFO  org.apache.flink.runtime.blob.TransientBlobCache              - Shutting down BLOB cache
2018-12-16 17:19:09,668 INFO  org.apache.flink.runtime.blob.BlobServer                      - Stopped BLOB server at 0.0.0.0:35234
  1. 我的機器IP地址為192.168.1.103,因此在瀏覽器訪問http://192.168.1.103:8081,可以見到如下資訊:
    在這裡插入圖片描述

至此,Flink1.7安裝、部署、啟動完成;

體驗Flink1.7

  1. 在機器上執行以下命令連線本機9000埠:
nc -l 9000
  1. 在資料夾flink-1.7.0下執行以下命令,即可監聽本機9000埠,等待該埠的資料:
./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000
  1. 此時再去重新整理web頁面,可見如下資訊,新增了一個Job:
    在這裡插入圖片描述
  2. 在執行了nc -l 9000命令的視窗,輸入一些句子,每輸完一個就按下回車鍵,如下:
[[email protected] work]# nc -l 9000
hello flink world
aaa bbb ccc
flink start
start flink study, flink go

這樣就將上述字串傳送到本機9000埠;
5. 在flink-1.7.0/log目錄下,會有flink-root-taskexecutor-0-vostro.out檔案出現,您的檔名可能略有不同,其中vostro是我這邊的主機名,root是當前賬號,開啟這個檔案看看,出現以下內容:

[[email protected] work]# nc -l 9000
hello flink world
aaa bbb ccc
flink start
start flink study, flink go

可見任務已正常執行,每個句子中的單詞數量都被統計出來了;

至此,我們完成了Flink的初體驗,在後續的實戰中咱們再一起逐漸深入的體驗Flink這個強大的框架;