Flink 本地單機/集羣環境搭建(Linux系統)

目錄

準備工作

單節點安裝

集羣安裝

運行 flink示例程序

將 JobManager / TaskManager 實例添加到集羣(擴展)


準備工作

本文簡述 Flink在 Linux中安裝步驟,和示例程序的運行。需要安裝 JDK1.8 及以上版本。

下載地址:下載Flink 的二進制包 https://flink.apache.org/downloads.html

點進去後,選擇如下鏈接:

解壓 flink-1.10.1-bin-scala_2.12.tgz ,我這裏解壓到 soft 目錄

[root@hadoop1 softpackage]# tar -zxvf flink-1.10.1-bin-scala_2.12.tgz -C ../soft/

單節點安裝

解壓後進入Flink的 bin 目錄執行如下腳本即可

[root@hadoop1 bin]# ./start-cluster.sh 
Starting cluster.
Starting standalonesession daemon on host hadoop1.
Starting taskexecutor daemon on host hadoop1.

 進入 Flink 頁面看看,如果沒有修改配置中的端口,默認是8081

集羣安裝

集羣安裝分爲以下幾步:(注意:hadoopx 都是我配置了 /etc/hosts 域名的)bin
【1】將hadoop1 中解壓的 Flink 分發到其他機器上,同時我也配置了免密登錄SSH(也可以手動複製low)。xsync鏈接

[root@hadoop1 soft]# xsync flink-1.10.1

  執行完後,我們就可以在 hadoop2和 hadoop3中看到 flink
 
【2】選擇 hadoop1作爲 master節點,然後修改所有機器 conf/flink-conf.yaml(修改hadoop1分發即可)jobmanager.rpc.address密鑰以指向您的主節點。您還應該通過設置 jobmanager.heap.sizetaskmanager.memory.process.size鍵來定義允許 Flink在每個節點上分配的最大主內存量。這些值以 MB爲單位。如果某些工作節點有更多的主內存要分配給 Flink系統,則可以通過在這些特定節點上設置 taskmanager.memory.process.sizetaskmanager.memory.flink.sizeconf / flink-conf.yaml覆蓋默認值。

jobmanager.rpc.address = master主機名

【3】修改 master 的conf/slaves 提供集羣中所有節點的列表,這些列表將用作工作節點。我的是 hadoop2和 hadoop3。類似於 HDFS配置,編輯文件 conf / slaves並輸入每個輔助節點的IP /主機名。每個工作節點稍後都將運行 TaskManager。

hadoop2
hadoop3

以上示例說明了具有三個節點(主機名 hadoop1作爲master,hadoop2 和 hadoop3 作爲 worker)的設置,並顯示了配置文件的內容。Flink目錄必須在同一路徑下的每個工作線程上都可用。您可以使用共享的 NFS(網絡文件系統)目錄,也可以將整個Flink目錄複製到每個工作節點。特別是:

  • 每個JobManager的可用內存量(jobmanager.heap.size),
  • 每個TaskManager的可用內存量(taskmanager.memory.process.size並查看內存設置指南),
  • 每臺計算機可用的CPU數(taskmanager.numberOfTaskSlots),
  • 集羣中的CPU總數(parallelism.default
  • 臨時目錄(io.tmp.dirs

【4】在 master上啓動集羣(第一行)以及執行結果。下面的腳本在本地節點上啓動JobManager,並通過SSH連接到slaves文件中列出的所有輔助節點,以在每個節點上啓動 TaskManager。現在,您的 Flink系統已啓動並正在運行。現在,在本地節點上運行的 JobManager將在配置的 RPC端口上接受作業。要停止Flink,還有一個 stop-cluster.sh腳本。

[root@hadoop1 flink-1.10.1]# bin/start-cluster.sh 
Starting cluster.
Starting standalonesession daemon on host hadoop1.
Starting taskexecutor daemon on host hadoop2.
Starting taskexecutor daemon on host hadoop3.

【5】Flink 界面展示 :或者通過 jps命令查看服務也可行。

運行 flink示例程序

批處理示例:提交 Flink的批處理 examples程序:也可以在頁面中進行提交,但是作爲一名NB的程序員就使用命令

[root@hadoop1 flink-1.10.1]# bin/flink run examples/batch/WordCount.jar

執行上面的命令後,就會顯示如下信息,這是 Flink提供的examples下的批處理例子程序,統計單詞個數。

[root@hadoop1 flink-1.10.1]# bin/flink run examples/batch/WordCount.jar 
Executing WordCount example with default input data set.
Use --input to specify file input.
Printing result to stdout. Use --output to specify output path.
Job has been submitted with JobID 99f4c579947a66884ec269ddf5f5b0ed
Program execution finished
Job with JobID 99f4c579947a66884ec269ddf5f5b0ed has finished.
Job Runtime: 795 ms
Accumulator Results: 
- b70332353f355cf0464b0eba21f61075 (java.util.ArrayList) [170 elements]


(a,5)
(action,1)
(after,1)
(against,1)
(all,2)
(and,12)
(arms,1)
(arrows,1)
(awry,1)
(ay,1)
(bare,1)
(be,4)
(bear,3)
(bodkin,1)
(bourn,1)
(but,1)
(by,2)
(calamity,1)
(cast,1)
(coil,1)
(come,1)
(conscience,1)
(consummation,1)
(contumely,1)
(country,1)
(cowards,1)
(currents,1)
......

得到結果,這裏統計的是默認的數據集,可以通過--input --output指定輸入輸出。我們可以在頁面中查看運行的情況:

流處理示例:啓動nc服務器:

[root@hadoop1 flink-1.10.1]# nc -lk 9000

提交 Flink的批處理 examples程序:

[root@hadoop1 flink-1.10.1]# bin/flink run examples/streaming/SocketWindowWordCount.jar  --hostname hadoop1  --port 9000

這是 Flink提供的 examples下的流處理例子程序,接收 socket數據傳入,統計單詞個數。在nc端隨意寫入單詞

[root@hadoop1 flink-1.10.1]# nc -lk 9000
g
s

進入slave 節點(hadoop2,hadoop3),進入Flink 安裝目錄輸入如下命令,查看實時數據變化

[root@hadoop2 flink-1.10.1]# tail -f log/flink-*-taskexecutor-*.out
s : 1
 : 2
w : 1
d : 1
g : 1
d : 1

  停止Flink

[root@hadoop1 flink-1.10.1]# bin/stop-cluster.sh

在 Flink的 web中查看運行的 job

將 JobManager / TaskManager 實例添加到集羣(擴展)

您可以使用bin/jobmanager.sh bin/taskmanager.sh 腳本將 JobManager和 TaskManager實例添加到正在運行的集羣中。添加JobManager(確保在要啓動/停止相應實例的主機上調用這些腳本)

[root@hadoop1 flink-1.10.1]# bin/jobmanager.sh ((start|start-foreground) [host] [webui-port])|stop|stop-all

添加任務管理器

[root@hadoop1 flink-1.10.1]# bin/taskmanager.sh start|start-foreground|stop|stop-all

 
---架構師資料,關注公衆號獲取----

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章