目錄
將 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.size
和taskmanager.memory.process.size
鍵來定義允許 Flink在每個節點上分配的最大主內存量。這些值以 MB爲單位。如果某些工作節點有更多的主內存要分配給 Flink系統,則可以通過在這些特定節點上設置 taskmanager.memory.process.size
或taskmanager.memory.flink.size
在 conf / 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
---架構師資料,關注公衆號獲取----