這將是一套完整詳細且持續(xù)更新的、長期維護的 原創(chuàng) Flink系列教程、文檔,其中會包含各種商用實例詳解、Flink源碼講解、機制剖析、周邊組件講解等,旨在幫助開發(fā)者快速融入Flink開發(fā),或作為工具文檔參閱。也希望更多的開發(fā)者可以參與到大數據相關的技術討論中來,共同商討疑難雜癥,豐富社區(qū)?!M際
本文標題: 基于 Standalone 模式部署 Flink 服務
文章作者: 盡際
發(fā)布時間: 2019年07月25日 - 23:38:30
最后更新: 2019年07月25日 - 23:38:30
原始鏈接:
許可協(xié)議: 署名-非商業(yè)性使用-禁止演繹 4.0 國際 轉載請保留原文鏈接及作者。
二、基于 Standalone 模式部署 Flink 服務
通過上一篇文章,我們已經下載了Flink 1.8.1版本的安裝包到本地磁盤:
- flink-1.8.1-bin-scala_2.11.tgz
- flink-shaded-hadoop-2-uber-2.7.5-7.0.jar
然后將其上傳至虛擬機中。
接下來,開始部署 Flink 服務。在此過程中,會穿插Flink相關概念的講解。
2.1 基于 Standalone 模式部署 Flink 服務
本教程會基于兩種模式(Standalone 和 YARN)部署 Flink 服務。
本章首先使用 Standalone 模式部署 Flink 服務。Standalone 是 Flink 自帶的服務管理模式,不需要依賴于其他分布式組件,也不需要提前安裝其他第三方服務,從而達到開箱即用的效果。
2.1.1 Flink 服務介紹
在部署 Flink 服務之前,我們需要提前了解如下兩個基本概念:
-
客戶端(Client)
向 Flink 集群提交 Job 的客戶端。并可以持續(xù)與 Flink 集群進行 RPC 通信,從而持續(xù)獲取 Job 的運行狀態(tài)。
-
主服務(JobManager)
Flink 主服務 的名稱為 JobManager。它是一個 Java 進程。
該服務所在的節(jié)點(宿主機)稱之為 Flink 主節(jié)點(Master)。
該服務主要用來接收用戶(Client 端)提交的Flink Job(數據分析任務),并將 Job 調度分配到從服務上運行。
-
從服務(TaskManager)
Flink 從服務 的名稱為 TaskManager,它也是一個Java進程。
該服務所在的節(jié)點(宿主機)稱之為 Flink 從節(jié)點(Woker)。
該服務主要用來運行 JobManager 派發(fā)過來的 Flink Job。
在部署 Flink 服務階段,暫且不需要了解太多關于任務運行的概念。后續(xù)再慢慢展開介紹。此處將展示 Flink 服務的官方架構如圖2-1 所示,讀者暫且粗略了解即可。
-
圖2-1 Flink 服務架構圖Flink 服務架構圖.png
2.1.2 基于 Standalone 模式部署服務
了解了 Flink 服務的基本概念后,開始根據如下步驟部署服務吧。
在本例中,將在 3 臺虛擬機中部署的 Flink 服務如表2-1 所示。
-
表2-1 Standalone 模式下部署的 Flink 服務的分布
linux01 linux02 linux03 JobManager - - - TaskManager TaskManager
-
解壓 Flink 壓縮包
將Flink壓縮包上傳至第一臺虛擬機的 ~/softwares/installations 目錄后,使用如下命令進行解壓:
$ tar -zxf tar -zxf ~/softwares/installations/flink-1.8.1-bin-scala_2.11.tgz -C ~/modules/ -
修改配置文件
-
修改flink-conf.yaml文件
修改 conf 目錄下的 flink-conf.yaml 配置文件,涉及到修改的內容如下所示:
jobmanager.rpc.address: linux01該項配置是指將筆者所使用的第一臺虛擬機作為 Master 節(jié)點,即,第一臺機器會開啟 Flink 的JobManager服務。
提示:如果Master和Worker機器上沒有配置JAVA_HOME環(huán)境變量,需要在 flink-conf.yaml 中通過 env.java.home 變量指定JAVA的安裝目錄。
-
-
修改slaves文件
修改 conf 目錄下的 slaves 配置文件,修改后的內容如下所示:
linux02 linux03該文件中的每一行是一個 IP 或 主機名,代表稍后會在這些節(jié)點上開啟 TaskManager 服務。
-
合理配置依賴包
-
添加 Flink-Table 依賴包
在生產環(huán)境中,開發(fā)者開發(fā)的 Flink 應用程序可能會伴隨 Table API 的操作(支持以 SQL 的方式進行數據分析),因此,開發(fā)者需要將 Flink 安裝目錄下的 opt 中的 flink-table_2.11-1.8.1.jar 包拷貝到 lib 目錄中。操作命令如下所示:
$ pwd /home/admin/modules/flink-1.8.1 $ cp -a opt/flink-table_2.11-1.8.1.jar lib/ -
添加 Hadoop 依賴包
將之前下載好的 flink-shaded-hadoop-2-uber-2.7.5-7.0.jar 包移動至 Flink 安裝目錄的 lib 目錄中,使 Flink 能夠支持對 Hadoop 的操作。操作命令如下所示:
$ pwd /home/admin/modules/flink-1.8.1 $ cp -a ~/softwares/installations/flink-shaded-hadoop-2-uber-2.7.5-7.0.jar ./lib/
以上操作完成后,即可看到 lib 目錄下的內容如下所示:
$ ll lib/ flink-dist_2.11-1.8.1.jar flink-shaded-hadoop-2-uber-2.7.5-7.0.jar flink-table_2.11-1.8.1.jar log4j-1.2.17.jar slf4j-log4j12-1.7.15.jar -
-
分發(fā) Flink 安裝目錄
以上步驟配置完成后,即可分發(fā)該安裝包到其他節(jié)點,操作命令如下:
$ pwd /home/admin/modules scp -r flink-1.8.1/ admin@linux02:/home/admin/modules/ scp -r flink-1.8.1/ admin@linux03:/home/admin/modules/提示:在進行上述操作時,最好配置完成集群各個節(jié)點之間的 SSH 無秘鑰訪問。其中 scp -r 表示遠程分發(fā)目錄到后面的節(jié)點對應目錄中。分發(fā)完成后,即可在其他節(jié)點對應目錄中查看到 Flink 安裝包。
-
啟動 Flink 服務
接下來,即可啟動 Flink 集群,操作命令如下:
$ pwd /home/admin/modules/flink-1.8.1 $ bin/start-cluster.sh Starting cluster. Starting standalonesession daemon on host linux01. Starting taskexecutor daemon on host linux02. Starting taskexecutor daemon on host linux03.稍等片刻,我們即可通過 jps 分別查看到 3 臺節(jié)點的進程如下:
----------------admin@linux01----------------- 4132 Jps 4038 StandaloneSessionClusterEntrypoint ----------------admin@linux02----------------- 3057 Jps 2951 TaskManagerRunner ----------------admin@linux03----------------- 2977 TaskManagerRunner 3032 Jps現在,可以通過瀏覽器,訪問 Flink Master 節(jié)點的地址進入后臺管理頁面,查看啟動的集群服務。
后臺頁面默認地址如下:
http://linux01:8081提示:如果在 Windows 中通過瀏覽器訪問虛擬機中的頁面服務,可以通過虛擬機的 IP 地址訪問如果想要通過虛擬機的主機名訪問,則需要將虛擬機的 IP 地址與虛擬機的主機名配置到 Windows 中的 C:/windows/system32/driver/etc/hosts文件中。查看到的頁面效果如圖2-2 所示。
-
圖2-2 Flink 后臺管理頁面Flink 后臺管理頁面.png
2.2 基于 Standalone 模式提交 Flink Job
完成上述部署后,可通過運行官方提供的一個案例來檢測集群是否能夠正常工作。運行官方案例的命令如下:
$ pwd
/home/admin/modules/flink-1.8.1
$ bin/flink run ./examples/batch/WordCount.jar
正常情況下,提交上述命令后,前往 Flink 后臺管理頁面,即可看到如圖2-3 所示內容。
-
圖2-3 提交的 Flink Job提交Flink Job.png
在上述提交 Job 的命令中,是最簡化的形式,開發(fā)者在提交任務時,還可以通過其他參數配置 Job 運行時的資源、狀態(tài)、功能等信息。我們將在后續(xù)的章節(jié)中進行說明。
2.3 本章小結
本章基于 Standalone 模式部署了 Flink 服務,在此過程中,忽略了配置文件中的若干可配置項,并簡述了相關概念。目的在于先將集群環(huán)境梳理清楚,完成集群搭建,循序漸進捋清前置知識。下一章,我們將基于 YARN 模式部署 Flink 服務。


