這將是一套完整詳細(xì)且持續(xù)更新的、長(zhǎng)期維護(hù)的 原創(chuàng) Flink系列教程烁焙、文檔,其中會(huì)包含各種商用實(shí)例詳解耕赘、Flink源碼講解骄蝇、機(jī)制剖析、周邊組件講解等操骡,旨在幫助開(kāi)發(fā)者快速融入Flink開(kāi)發(fā)九火,或作為工具文檔參閱。也希望更多的開(kāi)發(fā)者可以參與到大數(shù)據(jù)相關(guān)的技術(shù)討論中來(lái)册招,共同商討疑難雜癥岔激,豐富社區(qū)∈顷——盡際
本文標(biāo)題: 基于 Standalone 模式部署 Flink 服務(wù)
文章作者: 盡際
發(fā)布時(shí)間: 2019年07月25日 - 23:38:30
最后更新: 2019年07月25日 - 23:38:30
原始鏈接:
許可協(xié)議: 署名-非商業(yè)性使用-禁止演繹 4.0 國(guó)際 轉(zhuǎn)載請(qǐng)保留原文鏈接及作者虑鼎。
二、基于 Standalone 模式部署 Flink 服務(wù)
通過(guò)上一篇文章键痛,我們已經(jīng)下載了Flink 1.8.1版本的安裝包到本地磁盤(pán):
- flink-1.8.1-bin-scala_2.11.tgz
- flink-shaded-hadoop-2-uber-2.7.5-7.0.jar
然后將其上傳至虛擬機(jī)中炫彩。
接下來(lái),開(kāi)始部署 Flink 服務(wù)絮短。在此過(guò)程中江兢,會(huì)穿插Flink相關(guān)概念的講解。
2.1 基于 Standalone 模式部署 Flink 服務(wù)
本教程會(huì)基于兩種模式(Standalone 和 YARN)部署 Flink 服務(wù)丁频。
本章首先使用 Standalone 模式部署 Flink 服務(wù)杉允。Standalone 是 Flink 自帶的服務(wù)管理模式邑贴,不需要依賴(lài)于其他分布式組件,也不需要提前安裝其他第三方服務(wù)叔磷,從而達(dá)到開(kāi)箱即用的效果拢驾。
2.1.1 Flink 服務(wù)介紹
在部署 Flink 服務(wù)之前,我們需要提前了解如下兩個(gè)基本概念:
-
客戶(hù)端(Client)
向 Flink 集群提交 Job 的客戶(hù)端世澜。并可以持續(xù)與 Flink 集群進(jìn)行 RPC 通信独旷,從而持續(xù)獲取 Job 的運(yùn)行狀態(tài)。
-
主服務(wù)(JobManager)
Flink 主服務(wù) 的名稱(chēng)為 JobManager寥裂。它是一個(gè) Java 進(jìn)程嵌洼。
該服務(wù)所在的節(jié)點(diǎn)(宿主機(jī))稱(chēng)之為 Flink 主節(jié)點(diǎn)(Master)。
該服務(wù)主要用來(lái)接收用戶(hù)(Client 端)提交的Flink Job(數(shù)據(jù)分析任務(wù))封恰,并將 Job 調(diào)度分配到從服務(wù)上運(yùn)行麻养。
-
從服務(wù)(TaskManager)
Flink 從服務(wù) 的名稱(chēng)為 TaskManager,它也是一個(gè)Java進(jìn)程诺舔。
該服務(wù)所在的節(jié)點(diǎn)(宿主機(jī))稱(chēng)之為 Flink 從節(jié)點(diǎn)(Woker)鳖昌。
該服務(wù)主要用來(lái)運(yùn)行 JobManager 派發(fā)過(guò)來(lái)的 Flink Job。
在部署 Flink 服務(wù)階段低飒,暫且不需要了解太多關(guān)于任務(wù)運(yùn)行的概念许昨。后續(xù)再慢慢展開(kāi)介紹。此處將展示 Flink 服務(wù)的官方架構(gòu)如圖2-1 所示褥赊,讀者暫且粗略了解即可糕档。
-
圖2-1 Flink 服務(wù)架構(gòu)圖
2.1.2 基于 Standalone 模式部署服務(wù)
了解了 Flink 服務(wù)的基本概念后,開(kāi)始根據(jù)如下步驟部署服務(wù)吧拌喉。
在本例中速那,將在 3 臺(tái)虛擬機(jī)中部署的 Flink 服務(wù)如表2-1 所示。
-
表2-1 Standalone 模式下部署的 Flink 服務(wù)的分布
linux01 linux02 linux03 JobManager - - - TaskManager TaskManager
-
解壓 Flink 壓縮包
將Flink壓縮包上傳至第一臺(tái)虛擬機(jī)的 ~/softwares/installations 目錄后尿背,使用如下命令進(jìn)行解壓:
$ tar -zxf tar -zxf ~/softwares/installations/flink-1.8.1-bin-scala_2.11.tgz -C ~/modules/
-
修改配置文件
-
修改flink-conf.yaml文件
修改 conf 目錄下的 flink-conf.yaml 配置文件端仰,涉及到修改的內(nèi)容如下所示:
jobmanager.rpc.address: linux01
該項(xiàng)配置是指將筆者所使用的第一臺(tái)虛擬機(jī)作為 Master 節(jié)點(diǎn),即田藐,第一臺(tái)機(jī)器會(huì)開(kāi)啟 Flink 的JobManager服務(wù)荔烧。
提示:如果Master和Worker機(jī)器上沒(méi)有配置JAVA_HOME環(huán)境變量,需要在 flink-conf.yaml 中通過(guò) env.java.home 變量指定JAVA的安裝目錄汽久。
-
-
修改slaves文件
修改 conf 目錄下的 slaves 配置文件茴晋,修改后的內(nèi)容如下所示:
linux02 linux03
該文件中的每一行是一個(gè) IP 或 主機(jī)名,代表稍后會(huì)在這些節(jié)點(diǎn)上開(kāi)啟 TaskManager 服務(wù)回窘。
-
合理配置依賴(lài)包
-
添加 Flink-Table 依賴(lài)包
在生產(chǎn)環(huán)境中诺擅,開(kāi)發(fā)者開(kāi)發(fā)的 Flink 應(yīng)用程序可能會(huì)伴隨 Table API 的操作(支持以 SQL 的方式進(jìn)行數(shù)據(jù)分析),因此啡直,開(kāi)發(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 依賴(lài)包
將之前下載好的 flink-shaded-hadoop-2-uber-2.7.5-7.0.jar 包移動(dòng)至 Flink 安裝目錄的 lib 目錄中苍碟,使 Flink 能夠支持對(duì) 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 目錄下的內(nèi)容如下所示:
$ 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é)點(diǎn),操作命令如下:
$ 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/
提示:在進(jìn)行上述操作時(shí)抒钱,最好配置完成集群各個(gè)節(jié)點(diǎn)之間的 SSH 無(wú)秘鑰訪(fǎng)問(wèn)蜓肆。其中 scp -r 表示遠(yuǎn)程分發(fā)目錄到后面的節(jié)點(diǎn)對(duì)應(yīng)目錄中。
分發(fā)完成后谋币,即可在其他節(jié)點(diǎn)對(duì)應(yīng)目錄中查看到 Flink 安裝包仗扬。
-
啟動(dòng) Flink 服務(wù)
接下來(lái),即可啟動(dòng) 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.
稍等片刻早芭,我們即可通過(guò) jps 分別查看到 3 臺(tái)節(jié)點(diǎn)的進(jìn)程如下:
----------------admin@linux01----------------- 4132 Jps 4038 StandaloneSessionClusterEntrypoint ----------------admin@linux02----------------- 3057 Jps 2951 TaskManagerRunner ----------------admin@linux03----------------- 2977 TaskManagerRunner 3032 Jps
現(xiàn)在,可以通過(guò)瀏覽器诅蝶,訪(fǎng)問(wèn) Flink Master 節(jié)點(diǎn)的地址進(jìn)入后臺(tái)管理頁(yè)面退个,查看啟動(dòng)的集群服務(wù)。
后臺(tái)頁(yè)面默認(rèn)地址如下:
http://linux01:8081
提示:如果在 Windows 中通過(guò)瀏覽器訪(fǎng)問(wèn)虛擬機(jī)中的頁(yè)面服務(wù)调炬,可以通過(guò)虛擬機(jī)的 IP 地址訪(fǎng)問(wèn)如果想要通過(guò)虛擬機(jī)的主機(jī)名訪(fǎng)問(wèn)语盈,則需要將虛擬機(jī)的 IP 地址與虛擬機(jī)的主機(jī)名配置到 Windows 中的 C:/windows/system32/driver/etc/hosts文件中。
查看到的頁(yè)面效果如圖2-2 所示缰泡。
-
圖2-2 Flink 后臺(tái)管理頁(yè)面
2.2 基于 Standalone 模式提交 Flink Job
完成上述部署后刀荒,可通過(guò)運(yùn)行官方提供的一個(gè)案例來(lái)檢測(cè)集群是否能夠正常工作。運(yùn)行官方案例的命令如下:
$ pwd
/home/admin/modules/flink-1.8.1
$ bin/flink run ./examples/batch/WordCount.jar
正常情況下匀谣,提交上述命令后照棋,前往 Flink 后臺(tái)管理頁(yè)面资溃,即可看到如圖2-3 所示內(nèi)容武翎。
-
圖2-3 提交的 Flink Job
在上述提交 Job 的命令中,是最簡(jiǎn)化的形式溶锭,開(kāi)發(fā)者在提交任務(wù)時(shí)宝恶,還可以通過(guò)其他參數(shù)配置 Job 運(yùn)行時(shí)的資源、狀態(tài)趴捅、功能等信息垫毙。我們將在后續(xù)的章節(jié)中進(jìn)行說(shuō)明。
2.3 本章小結(jié)
本章基于 Standalone 模式部署了 Flink 服務(wù)拱绑,在此過(guò)程中综芥,忽略了配置文件中的若干可配置項(xiàng),并簡(jiǎn)述了相關(guān)概念猎拨。目的在于先將集群環(huán)境梳理清楚膀藐,完成集群搭建屠阻,循序漸進(jìn)捋清前置知識(shí)。下一章额各,我們將基于 YARN 模式部署 Flink 服務(wù)国觉。