国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式

這篇具有很好參考價(jià)值的文章主要介紹了【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1)集群角色

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

2)Flink 集群搭建

2.1.集群?jiǎn)?dòng)

集群規(guī)劃:

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

具體安裝部署步驟如下:

1、下載并解壓安裝包

(1)下載安裝包 flink-1.17.0-bin-scala_2.12.tgz,將該 jar 包上傳到 hadoop102 節(jié)點(diǎn)服務(wù)器的 /opt/software 路徑上。

(2)在 /opt/software 路徑上解壓 flink-1.17.0-bin-scala_2.12.tgz 到 /opt/module 路徑上。

[atguigu@hadoop102 software]$ tar -zxvf flink-1.17.0-bin-scala_2.12.tgz -C /opt/module/

2、修改集群配置

(1)進(jìn)入 conf 路徑,修改 flink-conf.yaml 文件,指定 hadoop102 節(jié)點(diǎn)服務(wù)器為 JobManager

[atguigu@hadoop102 conf]$ vim flink-conf.yaml
修改如下內(nèi)容:
# JobManager節(jié)點(diǎn)地址.
jobmanager.rpc.address: hadoop102
jobmanager.bind-host: 0.0.0.0
rest.address: hadoop102
rest.bind-address: 0.0.0.0
# TaskManager節(jié)點(diǎn)地址.需要配置為當(dāng)前機(jī)器名
taskmanager.bind-host: 0.0.0.0
taskmanager.host: hadoop102

(2)修改 workers 文件,指定 hadoop102、hadoop103 和 hadoop104 為 TaskManager

[atguigu@hadoop102 conf]$ vim workers
修改如下內(nèi)容:
hadoop102
hadoop103
hadoop104

(3)修改 masters 文件

[atguigu@hadoop102 conf]$ vim masters
修改如下內(nèi)容:
hadoop102:8081

(4)另外,在 flink-conf.yaml 文件中還可以對(duì)集群中的 JobManager 和 TaskManager 組件進(jìn)行優(yōu)化配置,主要配置項(xiàng)如下:

  • jobmanager.memory.process.size:對(duì) JobManager 進(jìn)程可使用到的全部?jī)?nèi)存進(jìn)行配置,包括 JVM 元空間和其他開銷,默認(rèn)為 1600M,可以根據(jù)集群規(guī)模進(jìn)行適當(dāng)調(diào)整。
  • taskmanager.memory.process.size:對(duì) TaskManager 進(jìn)程可使用到的全部?jī)?nèi)存進(jìn)行配置,包括 JVM 元空間和其他開銷,默認(rèn)為 1728M,可以根據(jù)集群規(guī)模進(jìn)行適當(dāng)調(diào)整。
  • taskmanager.numberOfTaskSlots:對(duì)每個(gè) TaskManager 能夠分配的 Slot 數(shù)量進(jìn)行配置,默認(rèn)為1,可根據(jù) TaskManager 所在的機(jī)器能夠提供給 Flink 的 CPU 數(shù)量決定。所謂 Slot 就是 TaskManager 中具體運(yùn)行一個(gè)任務(wù)所分配的計(jì)算資源。
  • parallelism.default:Flink 任務(wù)執(zhí)行的并行度,默認(rèn)為 1。優(yōu)先級(jí)低于代碼中進(jìn)行的并行度配置和任務(wù)提交時(shí)使用參數(shù)指定的并行度數(shù)量。

關(guān)于 Slot 和并行度的概念,我們會(huì)在下一章做詳細(xì)講解。

3、分發(fā)安裝目錄

(1)配置修改完畢后,將Flink安裝目錄發(fā)給另外兩個(gè)節(jié)點(diǎn)服務(wù)器。

[atguigu@hadoop102 module]$ xsync flink-1.17.0/

(2)修改hadoop103的 taskmanager.host

[atguigu@hadoop103 conf]$ vim flink-conf.yaml
修改如下內(nèi)容:
# TaskManager節(jié)點(diǎn)地址.需要配置為當(dāng)前機(jī)器名
taskmanager.host: hadoop103

(3)修改hadoop104的 taskmanager.host

[atguigu@hadoop104 conf]$ vim flink-conf.yaml
修改如下內(nèi)容:
# TaskManager節(jié)點(diǎn)地址.需要配置為當(dāng)前機(jī)器名
taskmanager.host: hadoop104

4、啟動(dòng)集群

(1)在hadoop102 節(jié)點(diǎn)服務(wù)器上執(zhí)行 start-cluster.sh 啟動(dòng) Flink 集群:

[atguigu@hadoop102 flink-1.17.0]$ bin/start-cluster.sh

(2)查看進(jìn)程情況:

[atguigu@hadoop102 flink-1.17.0]$ jpsall 
=============== hadoop102 ===============
4453 StandaloneSessionClusterEntrypoint
4458 TaskManagerRunner
4533 Jps
=============== hadoop103 ===============
2872 TaskManagerRunner
2941 Jps
=============== hadoop104 ===============
2948 Jps
2876 TaskManagerRunner

jpsall 腳本:

#!/bin/bash

for host in hadoop102 hadoop103 hadoop104
do
        echo ============ $host ===========
        ssh $host jps $@ | grep -v Jps
done

5、訪問(wèn) Web UI

啟動(dòng)成功后,同樣可以訪問(wèn) http://hadoop102:8081 對(duì)flink集群和任務(wù)進(jìn)行監(jiān)控管理。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

這里可以明顯看到,當(dāng)前集群的 TaskManager 數(shù)量為 3;由于默認(rèn)每個(gè) TaskManager 的 Slot 數(shù)量為 1,所以總 Slot 數(shù)和可用 Slot 數(shù)都為 3。

2.2.向集群提交作業(yè)

在上一章中,我們已經(jīng)編寫讀取 socket 發(fā)送的單詞并統(tǒng)計(jì)單詞的個(gè)數(shù)程序案例。本節(jié)我們將以該程序?yàn)槔?,演示如何將任?wù)提交到集群中進(jìn)行執(zhí)行。具體步驟如下。

1、環(huán)境準(zhǔn)備

在 hadoop102 中執(zhí)行以下命令啟動(dòng) netcat。

[atguigu@hadoop102 flink-1.17.0]$ nc -lk 7777

2、程序打包

(1)在我們編寫的 Flink 入門程序的 pom.xml 文件中添加打包插件的配置,具體如下:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<excludes>
<exclude>com.google.code.findbugs:jsr305</exclude>
<exclude>org.slf4j:*</exclude>
<exclude>log4j:*</exclude>
</excludes>
</artifactSet>
<filters>
<filter>
<!-- Do not copy the signatures in
the META-INF folder.
Otherwise, this might cause
SecurityExceptions when using the JAR. -->
<artifact>*:*</artifact>
<excludes>
<exclude>METAINF/*.SF</exclude>
<exclude>METAINF/*.DSA</exclude>
<exclude>METAINF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers combine.children="append">
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesRes
ourceTransformer">
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

(2)插件配置完畢后,可以使用 IDEA 的 Maven 工具執(zhí)行 package 命令,出現(xiàn)如下提示即表示打包成功。

-------------------------------------------------------------------
[INFO] BUILD SUCCESS
------------------------------------------------------------------- 

打包完成后,在 target 目錄下即可找到所需 JAR 包,JAR 包會(huì)有兩個(gè),F(xiàn)linkTutorial-1.0-SNAPSHOT.jar 和 FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar,因?yàn)榧褐幸呀?jīng)具備任務(wù)運(yùn)行所需的所有依賴,所以建議使用 FlinkTutorial-1.0-SNAPSHOT.jar。

3、在 Web UI 上提交作業(yè)

(1)任務(wù)打包完成后,我們打開 Flink 的 WEB UI 頁(yè)面,在右側(cè)導(dǎo)航欄點(diǎn)擊“Submit New Job”,然后點(diǎn)擊按鈕“+ Add New”,選擇要上傳運(yùn)行的 JAR 包,如下圖所示。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

JAR 包上傳完成,如下圖所示:

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

(2)點(diǎn)擊該 JAR 包,出現(xiàn)任務(wù)配置頁(yè)面,進(jìn)行相應(yīng)配置。

主要配置程序入口主類的全類名,任務(wù)運(yùn)行的并行度,任務(wù)運(yùn)行所需的配置參數(shù)和保存點(diǎn)路徑等,如下圖所示,配置完成后,即可點(diǎn)擊按鈕“Submit”,將任務(wù)提交到集群運(yùn)行。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

(3)任務(wù)提交成功之后,可點(diǎn)擊左側(cè)導(dǎo)航欄的“Running Jobs”查看程序運(yùn)行列表情況。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

(4)測(cè)試

① 在 socket 端口中輸入 hello

[atguigu@hadoop102 flink-1.17.0]$ nc -lk 7777
hello

② 先點(diǎn)擊 Task Manager,然后點(diǎn)擊右側(cè)的 192.168.10.104 服務(wù)器節(jié)點(diǎn)

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

③ 點(diǎn)擊 Stdout,就可以看到 hello 單詞的統(tǒng)計(jì)

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

注意:如果 hadoop104 節(jié)點(diǎn)沒(méi)有統(tǒng)計(jì)單詞數(shù)據(jù),可以去其他 TaskManager 節(jié)點(diǎn)查看。

(5)點(diǎn)擊該任務(wù),可以查看任務(wù)運(yùn)行的具體情況,也可以通過(guò)點(diǎn)擊“Cancel Job”結(jié)束任務(wù)運(yùn)行。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

4、命令行提交作業(yè)

除了通過(guò) WEB UI 界面提交任務(wù)之外,也可以直接通過(guò)命令行來(lái)提交任務(wù)。這里為方便起見,我們可以先把 jar 包直接上傳到目錄 flink-1.17.0 下

(1)首先需要啟動(dòng)集群。

[atguigu@hadoop102 flink-1.17.0]$ bin/start-cluster.sh

(2)在 hadoop102 中執(zhí)行以下命令啟動(dòng) netcat。

[atguigu@hadoop102 flink-1.17.0]$ nc -lk 7777

(3)將 flink 程序運(yùn)行 jar 包上傳到/opt/module/flink-1.17.0 路徑。

(4)進(jìn)入到 flink 的安裝路徑下,在命令行使用 flink run 命令提交作業(yè)。

[atguigu@hadoop102 flink-1.17.0]$ bin/flink run -m hadoop102:8081 -c com.atguigu.wc.SocketStreamWordCount ./FlinkTutorial-1.0-SNAPSHOT.jar

這里的參數(shù) -m 指定了提交到的 JobManager,-c 指定了入口類。

(5)在瀏覽器中打開 Web UI,http://hadoop102:8081 查看應(yīng)用執(zhí)行情況。用 netcat 輸入數(shù)據(jù),可以在 TaskManager 的標(biāo)準(zhǔn)輸出(Stdout)看到對(duì)應(yīng)的統(tǒng)計(jì)結(jié)果。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

(6)在 /opt/module/flink-1.17.0/log 路徑中,可以查看 TaskManager 節(jié)點(diǎn)。

[atguigu@hadoop102 log]$ cat flink-atguigu-standalonesession-0-hadoop102.out
(hello,1)
(hello,2)
(flink,1)
(hello,3)
(scala,1)

3)部署模式

在一些應(yīng)用場(chǎng)景中,對(duì)于集群資源分配和占用的方式,可能會(huì)有特定的需求。Flink 為各種場(chǎng)景提供了不同的部署模式,主要有以下三種:會(huì)話模式(Session Mode)、單作業(yè)模式(Per-Job Mode)應(yīng)用模式(Application Mode)。

它們的區(qū)別主要在于:集群的生命周期以及資源的分配方式;以及應(yīng)用的 main 方法到底在哪里執(zhí)行——客戶端(Client)還是 JobManager。

3.1.會(huì)話模式(Session Mode)

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

3.2.單作業(yè)模式(Per-Job Mode)

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

3.3.應(yīng)用模式(Application Mode)

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

這里我們所講到的部署模式,相對(duì)是比較抽象的概念。實(shí)際應(yīng)用時(shí),一般需要和資源管理平臺(tái)結(jié)合起來(lái),選擇特定的模式來(lái)分配資源、部署應(yīng)用。接下來(lái),我們就針對(duì)不同的資源提供者的場(chǎng)景,具體介紹 Flink 的部署方式。

3.4.Standalone 運(yùn)行模式(了解)

獨(dú)立模式是獨(dú)立運(yùn)行的,不依賴任何外部的資源管理平臺(tái);當(dāng)然獨(dú)立也是有代價(jià)的:如果資源不足,或者出現(xiàn)故障,沒(méi)有自動(dòng)擴(kuò)展或重分配資源的保證,必須手動(dòng)處理。所以獨(dú)立模式一般只用在開發(fā)測(cè)試或作業(yè)非常少的場(chǎng)景下。

3.4.1.會(huì)話模式部署

我們?cè)诘?2)節(jié)用的就是 Standalone 集群的會(huì)話模式部署。

提前啟動(dòng)集群,并通過(guò) Web 頁(yè)面客戶端提交任務(wù)(可以多個(gè)任務(wù),但是集群資源固定)。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

3.4.2.單作業(yè)模式部署

Flink 的 Standalone 集群并不支持單作業(yè)模式部署。因?yàn)閱巫鳂I(yè)模式需要借助一些資源管理平臺(tái)。

3.4.3.應(yīng)用模式部署

應(yīng)用模式下不會(huì)提前創(chuàng)建集群,所以不能調(diào)用 start-cluster.sh 腳本。我們可以使用同樣在 bin 目錄下的 standalone-job.sh 來(lái)創(chuàng)建一個(gè) JobManager。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

具體步驟如下:

(0)環(huán)境準(zhǔn)備。在 hadoop102 中執(zhí)行以下命令啟動(dòng) netcat。

[atguigu@hadoop102 flink-1.17.0]$ nc -lk 7777

(1)進(jìn)入到 Flink 的安裝路徑下,將應(yīng)用程序的 jar 包放到 lib/目錄下。

[atguigu@hadoop102 flink-1.17.0]$ mv FlinkTutorial-1.0-SNAPSHOT.jar lib/

(2)執(zhí)行以下命令,啟動(dòng) JobManager。

[atguigu@hadoop102 flink-1.17.0]$ bin/standalone-job.sh start --job-classname com.atguigu.wc.SocketStreamWordCount

這里我們直接指定作業(yè)入口類,腳本會(huì)到 lib 目錄掃描所有的 jar 包。

(3)同樣是使用 bin 目錄下的腳本,啟動(dòng) TaskManager。

[atguigu@hadoop102 flink-1.17.0]$ bin/taskmanager.sh start

(4)在 hadoop102 上模擬發(fā)送單詞數(shù)據(jù)。

[atguigu@hadoop102 ~]$ nc -lk 7777
hello

(5)在 hadoop102:8081 地址中觀察輸出數(shù)據(jù)

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

(6)如果希望停掉集群,同樣可以使用腳本,命令如下。

[atguigu@hadoop102 flink-1.17.0]$ bin/taskmanager.sh stop
[atguigu@hadoop102 flink-1.17.0]$ bin/standalone-job.sh stop

3.5.YARN 運(yùn)行模式(重點(diǎn))

YARN 上部署的過(guò)程是:客戶端把 Flink 應(yīng)用提交給 Yarn 的 ResourceManager,Yarn 的 ResourceManager 會(huì) 向 Yarn 的 NodeManager 申 請(qǐng) 容 器 。 在 這 些 容 器 上 , Flink 會(huì) 部 署 JobManager 和 TaskManager 的實(shí)例,從而啟動(dòng)集群。Flink 會(huì)根據(jù)運(yùn)行在 JobManger 上的作業(yè)所需要的 Slot 數(shù)量動(dòng)態(tài)分配 TaskManager 資源。

3.5.1.相關(guān)準(zhǔn)備和配置

在將 Flink 任務(wù)部署至 YARN 集群之前,需要確認(rèn)集群是否安裝有 Hadoop,保證 Hadoop 版本至少在 2.2 以上,并且集群中安裝有 HDFS 服務(wù)。

具體配置步驟如下:

(1)配置環(huán)境變量,增加環(huán)境變量配置如下:

$ sudo vim /etc/profile.d/my_env.sh
HADOOP_HOME=/opt/module/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath` 

(2)啟動(dòng) Hadoop 集群,包括 HDFS 和 YARN。

[atguigu@hadoop102 hadoop-3.3.4]$ start-dfs.sh
[atguigu@hadoop103 hadoop-3.3.4]$ start-yarn.sh

(3)在 hadoop102 中執(zhí)行以下命令啟動(dòng) netcat。

[atguigu@hadoop102 flink-1.17.0]$ nc -lk 7777

3.5.2.會(huì)話模式部署

YARN 的會(huì)話模式與獨(dú)立集群略有不同,需要首先申請(qǐng)一個(gè) YARN 會(huì)話(YARN Session)來(lái)啟動(dòng) Flink 集群。具體步驟如下:

1、啟動(dòng)集群

(1)啟動(dòng) Hadoop 集群(HDFS、YARN)。

(2)執(zhí)行腳本命令向 YARN 集群申請(qǐng)資源,開啟一個(gè) YARN 會(huì)話,啟動(dòng) Flink 集群。

[atguigu@hadoop102 flink-1.17.0]$ bin/yarn-session.sh -nm test

可用參數(shù)解讀:

  • -d:分離模式,如果你不想讓 Flink YARN 客戶端一直前臺(tái)運(yùn)行,可以使用這個(gè)參數(shù),
    即使關(guān)掉當(dāng)前對(duì)話窗口,YARN session 也可以后臺(tái)運(yùn)行。
  • -jm(–jobManagerMemory):配置 JobManager 所需內(nèi)存,默認(rèn)單位 MB。
  • -nm(–name):配置在 YARN UI 界面上顯示的任務(wù)名。
  • -qu(–queue):指定 YARN 隊(duì)列名。
  • -tm(–taskManager):配置每個(gè) TaskManager 所使用內(nèi)存。

注意:Flink1.11.0 版本不再使用-n 參數(shù)和-s 參數(shù)分別指定 TaskManager 數(shù)量和 slot 數(shù)量,YARN 會(huì)按照需求動(dòng)態(tài)分配 TaskManager 和 slot。所以從這個(gè)意義上講,YARN 的會(huì)話模式也不會(huì)把集群資源固定,同樣是動(dòng)態(tài)分配的。

YARN Session 啟動(dòng)之后會(huì)給出一個(gè) Web UI 地址以及一個(gè) YARN application ID,如下所示,用戶可以通過(guò) Web UI 或者命令行兩種方式提交作業(yè)。

2022-11-17 15:20:52,711 INFO org.apache.flink.yarn.YarnClusterDescriptor [] -Found Web Interface hadoop104:40825 of application
'application_1668668287070_0005'.
JobManager Web Interface: http://hadoop104:40825

2、提交作業(yè)

(1)通過(guò) Web UI 提交作業(yè)

這種方式比較簡(jiǎn)單,與上文所述 Standalone 部署模式基本相同。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

(2)通過(guò)命令行提交作業(yè)

① 將 FlinkTutorial-1.0-SNAPSHOT.jar 任務(wù)上傳至集群。

② 執(zhí)行以下命令將該任務(wù)提交到已經(jīng)開啟的 Yarn-Session 中運(yùn)行。

[atguigu@hadoop102 flink-1.17.0]$ bin/flink run-c com.atguigu.wc.SocketStreamWordCount FlinkTutorial-1.0-SNAPSHOT.jar

客戶端可以自行確定 JobManager 的地址,也可以通過(guò)-m 或者-jobmanager 參數(shù)指定 JobManager 的地址,JobManager 的地址在 YARN Session 的啟動(dòng)頁(yè)面中可以找到。

③ 任務(wù)提交成功后,可在 YARN 的 Web UI 界面查看運(yùn)行情況。hadoop103:8088。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

從上圖中可以看到我們創(chuàng)建的 Yarn-Session 實(shí)際上是一個(gè) Yarn 的 Application,并且有唯一的 Application ID。

④ 也可以通過(guò) Flink 的 Web UI 頁(yè)面查看提交任務(wù)的運(yùn)行情況,如下圖所示。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

3.5.3.單作業(yè)模式部署

在 YARN 環(huán)境中,由于有了外部平臺(tái)做資源調(diào)度,所以我們也可以直接向 YARN 提交一個(gè)單獨(dú)的作業(yè),從而啟動(dòng)一個(gè) Flink 集群。

(1)執(zhí)行命令提交作業(yè)。

[atguigu@hadoop102 flink-1.17.0]$ bin/flink run -d -t yarn-per-job-c com.atguigu.wc.SocketStreamWordCount FlinkTutorial-1.0-SNAPSHOT.jar

注意:如果啟動(dòng)過(guò)程中報(bào)如下異常。

Exception in thread “Thread-5” java.lang.IllegalStateException:Trying to access closed classloader. Please check if you store
classloaders directly or indirectly in static fields. If thestacktrace suggests that the leak occurs in a third party library
and cannot be fixed immediately, you can disable this check withthe configuration ‘classloader.check-leaked-classloader’.
atorg.apache.flink.runtime.execution.librarycache.FlinkUserCodeClassLoaders

解決辦法:在 flink 的/opt/module/flink-1.17.0/conf/flink-conf.yaml 配置文件中設(shè)置

[atguigu@hadoop102 conf]$ vim flink-conf.yaml
classloader.check-leaked-classloader: false

(2)在 YARN 的 ResourceManager 界面查看執(zhí)行情況。

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

點(diǎn)擊可以打開 Flink Web UI 頁(yè)面進(jìn)行監(jiān)控,如下圖所示:

【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式,Flink,flink,大數(shù)據(jù),#flink集群搭建,#flink部署,#flink運(yùn)行模式,#flink1.17,#flink1.17教程

(3)可以使用命令行查看或取消作業(yè),命令如下。

[atguigu@hadoop102 flink-1.17.0]$ bin/flink list -t yarn-per-job -Dyarn.application.id=application_XXXX_YY
[atguigu@hadoop102 flink-1.17.0]$ bin/flink cancel -t yarn-per-job -Dyarn.application.id=application_XXXX_YY <jobId>

這里的 application_XXXX_YY 是當(dāng)前應(yīng)用的 ID,是作業(yè)的 ID。注意如果取消作業(yè),整個(gè) Flink 集群也會(huì)停掉。

3.5.4.應(yīng)用模式部署

應(yīng)用模式同樣非常簡(jiǎn)單,與單作業(yè)模式類似,直接執(zhí)行 flink run-application 命令即可。

1、命令行提交

(1)執(zhí)行命令提交作業(yè)。

[atguigu@hadoop102 flink-1.17.0]$ bin/flink run-application -t yarn-application -c com.atguigu.wc.SocketStreamWordCount FlinkTutorial-1.0-SNAPSHOT.jar

(2)在命令行中查看或取消作業(yè)。

[atguigu@hadoop102 flink-1.17.0]$ bin/flink list -t yarnapplication -Dyarn.application.id=application_XXXX_YY
[atguigu@hadoop102 flink-1.17.0]$ bin/flink cancel -t yarnapplication -Dyarn.application.id=application_XXXX_YY <jobId>

2、上傳 HDFS 提交

可以通過(guò) yarn.provided.lib.dirs 配置選項(xiàng)指定位置,將 flink 的依賴上傳到遠(yuǎn)程。

(1)上傳 flink 的 lib 和 plugins 到 HDFS 上

[atguigu@hadoop102 flink-1.17.0]$ hadoop fs -mkdir /flink-dist
[atguigu@hadoop102 flink-1.17.0]$ hadoop fs -put lib/ /flink-dist
[atguigu@hadoop102 flink-1.17.0]$ hadoop fs -put plugins/ /flink-dist

(2)上傳自己的 jar 包到 HDFS

[atguigu@hadoop102 flink-1.17.0]$ hadoop fs -mkdir /flink-jars
[atguigu@hadoop102 flink-1.17.0]$ hadoop fs -put FlinkTutorial-1.0-SNAPSHOT.jar /flink-jars

(3)提交作業(yè)

[atguigu@hadoop102 flink-1.17.0]$ bin/flink run-application -t yarn-application -Dyarn.provided.lib.dirs="hdfs://hadoop102:8020/flink-dist" -c com.atguigu.wc.SocketStreamWordCount hdfs://hadoop102:8020/flink-jars/FlinkTutorial-1.0-SNAPSHOT.jar

這種方式下,flink 本身的依賴和用戶 jar 可以預(yù)先上傳到 HDFS,而不需要單獨(dú)發(fā)送到集
群,這就使得作業(yè)提交更加輕量了。

3.6.K8S 運(yùn)行模式(了解)

容器化部署是如今業(yè)界流行的一項(xiàng)技術(shù),基于 Docker 鏡像運(yùn)行能夠讓用戶更加方便地對(duì)應(yīng)用進(jìn)行管理和運(yùn)維。容器管理工具中最為流行的就是 Kubernetes(k8s),而 Flink 也在最近的版本中支持了 k8s 部署模式?;驹砼c YARN 是類似的,具體配置可以參見官網(wǎng)說(shuō)明,這里我們就不做過(guò)多講解了。

3.7.歷史服務(wù)器

運(yùn)行 Flink job 的集群一旦停止,只能去 yarn 或本地磁盤上查看日志,不再可以查看作業(yè)掛掉之前的運(yùn)行的 Web UI,很難清楚知道作業(yè)在掛的那一刻到底發(fā)生了什么。如果我們還沒(méi)有 Metrics 監(jiān)控的話,那么完全就只能通過(guò)日志去分析和定位問(wèn)題了,所以如果能還原之前的 Web UI,我們可以通過(guò) UI 發(fā)現(xiàn)和定位一些問(wèn)題。

Flink 提供了歷史服務(wù)器,用來(lái)在相應(yīng)的 Flink 集群關(guān)閉后查詢已完成作業(yè)的統(tǒng)計(jì)信息。我們都知道只有當(dāng)作業(yè)處于運(yùn)行中的狀態(tài),才能夠查看到相關(guān)的 WebUI 統(tǒng)計(jì)信息。通過(guò)History Server 我們才能查詢這些已完成作業(yè)的統(tǒng)計(jì)信息,無(wú)論是正常退出還是異常退出。

此外,它對(duì)外提供了 REST API,它接受 HTTP 請(qǐng)求并使用 JSON 數(shù)據(jù)進(jìn)行響應(yīng)。Flink任務(wù)停止后,JobManager 會(huì)將已經(jīng)完成任務(wù)的統(tǒng)計(jì)信息進(jìn)行存檔,History Server 進(jìn)程則在任務(wù)停止后可以對(duì)任務(wù)統(tǒng)計(jì)信息進(jìn)行查詢。比如:最后一次的 Checkpoint、任務(wù)運(yùn)行時(shí)的相關(guān)配置。

1、創(chuàng)建存儲(chǔ)目錄

hadoop fs -mkdir -p /logs/flink-job

2、在 flink-config.yaml 中添加如下配置

jobmanager.archive.fs.dir: hdfs://hadoop102:8020/logs/flink-job
historyserver.web.address: hadoop102
historyserver.web.port: 8082
historyserver.archive.fs.dir: hdfs://hadoop102:8020/logs/flink-job
historyserver.archive.fs.refresh-interval: 5000

3、啟動(dòng)歷史服務(wù)器

bin/historyserver.sh start

4、停止歷史服務(wù)器

bin/historyserver.sh stop

5、在瀏覽器地址欄輸入:http://hadoop102:8082 查看已經(jīng)停止的 job 的統(tǒng)計(jì)信息文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-800230.html

到了這里,關(guān)于【Flink-1.17-教程】-【二】Flink 集群搭建、Flink 部署、Flink 運(yùn)行模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Flink-1.17-教程】-【四】Flink DataStream API(5)轉(zhuǎn)換算子(Transformation)【分流】

    所謂 “分流” ,就是將一條數(shù)據(jù)流拆分成完全獨(dú)立的兩條、甚至多條流。也就是基于一個(gè) DataStream ,定義一些篩選條件,將符合條件的數(shù)據(jù)揀選出來(lái)放到對(duì)應(yīng)的流里。 其實(shí)根據(jù)條件篩選數(shù)據(jù)的需求,本身非常容易實(shí)現(xiàn):只要針對(duì)同一條流多次獨(dú)立調(diào)用 .filter() 方法進(jìn)行篩選

    2024年01月24日
    瀏覽(17)
  • 【Flink-1.17-教程】-【四】Flink DataStream API(2)轉(zhuǎn)換算子(Transformation)【基本轉(zhuǎn)換算子、聚合算子】

    【Flink-1.17-教程】-【四】Flink DataStream API(2)轉(zhuǎn)換算子(Transformation)【基本轉(zhuǎn)換算子、聚合算子】

    數(shù)據(jù)源讀入數(shù)據(jù)之后,我們就可以使用各種轉(zhuǎn)換算子,將一個(gè)或多個(gè) DataStream 轉(zhuǎn)換為新的 DataStream。 map 是大家非常熟悉的大數(shù)據(jù)操作算子,主要用于將數(shù)據(jù)流中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,形成新的數(shù)據(jù)流。簡(jiǎn)單來(lái)說(shuō),就是一個(gè) “一 一映射”,消費(fèi)一個(gè)元素就產(chǎn)出一個(gè)元素 。 我們只

    2024年01月23日
    瀏覽(19)
  • 【Flink-1.17-教程】-【四】Flink DataStream API(3)轉(zhuǎn)換算子(Transformation)【用戶自定義函數(shù)(UDF)】

    用戶自定義函數(shù)( user-defined function , UDF ),即用戶可以根據(jù)自身需求,重新實(shí)現(xiàn)算子的邏輯。 用戶自定義函數(shù)分為: 函數(shù)類 、 匿名函數(shù) 、 富函數(shù)類 。 Flink 暴露了所有 UDF 函數(shù)的接口,具體實(shí)現(xiàn)方式為接口或者抽象類,例如 MapFunction 、 FilterFunction 、 ReduceFunction 等。所

    2024年01月23日
    瀏覽(22)
  • 深入解讀 Flink 1.17

    深入解讀 Flink 1.17

    摘要:本文整理自阿里云技術(shù)專家,Apache Flink PMC Member Committer、Flink CDC Maintainer 徐榜江(雪盡) 在深入解讀 Flink 1.17 的分享。內(nèi)容主要分為四個(gè)部分: Flink 1.17 Overview Flink 1.17 Overall Story Flink 1.17 Key Features Summary Flink 1.17 版本完成了 7 個(gè) FLIP,累計(jì)貢獻(xiàn)者 170+,解決 600+Issue 以及

    2024年02月17日
    瀏覽(20)
  • Flink 1.17.0集群搭建

    Flink 1.17.0集群搭建

    集群角色分配 Hostname IP Role hadoop01 192.168.126.132 JobManager TaskManager hadoop02 192.168.126.133 TaskManager hadoop03 192.168.126.134 TaskManager 下載flink安裝包 https://archive.apache.org/dist/flink/flink-1.17.0/ ?上傳至hadoop01并解壓: ?修改conf/flink-conf.yaml(從flink1.16版本開始,需要修改以下配置) 修改conf/

    2024年02月12日
    瀏覽(23)
  • Flink集群運(yùn)行模式--Standalone運(yùn)行模式

    Flink集群運(yùn)行模式--Standalone運(yùn)行模式

    ?申明: 未經(jīng)許可,禁止以任何形式轉(zhuǎn)載,若要引用,請(qǐng)標(biāo)注鏈接地址。 全文共計(jì)2391字,閱讀大概需要3分鐘 ??更多學(xué)習(xí)內(nèi)容, 歡迎??關(guān)注??【文末】我的個(gè)人微信公眾號(hào):不懂開發(fā)的程序猿 個(gè)人網(wǎng)站:https://jerry-jy.co/ 掌握Standalone集群搭建的過(guò)程。 掌握Flink的三種部署

    2024年02月15日
    瀏覽(25)
  • Flink--2、Flink部署(Yarn集群搭建下的會(huì)話模式部署、單作業(yè)模式部署、應(yīng)用模式部署)

    Flink--2、Flink部署(Yarn集群搭建下的會(huì)話模式部署、單作業(yè)模式部署、應(yīng)用模式部署)

    ?????????????????????? 星光下的趕路人star的個(gè)人主頁(yè) ?????????????????????? 你必須贏過(guò),才可以說(shuō)不在乎輸贏 Flink提交作業(yè)和執(zhí)行任務(wù),需要幾個(gè)關(guān)鍵組件: 客戶端(Client):代碼由客戶端獲取并做轉(zhuǎn)換,之后提交給

    2024年02月09日
    瀏覽(23)
  • 尚硅谷大數(shù)據(jù)Flink1.17實(shí)戰(zhàn)教程-筆記03【Flink運(yùn)行時(shí)架構(gòu)】

    尚硅谷大數(shù)據(jù)Flink1.17實(shí)戰(zhàn)教程-筆記03【Flink運(yùn)行時(shí)架構(gòu)】

    尚硅谷大數(shù)據(jù)技術(shù)-教程-學(xué)習(xí)路線-筆記匯總表【課程資料下載】 視頻地址:尚硅谷大數(shù)據(jù)Flink1.17實(shí)戰(zhàn)教程從入門到精通_嗶哩嗶哩_bilibili 尚硅谷大數(shù)據(jù)Flink1.17實(shí)戰(zhàn)教程-筆記01【Flink概述、Flink快速上手】 尚硅谷大數(shù)據(jù)Flink1.17實(shí)戰(zhàn)教程-筆記02【Flink部署】 尚硅谷大數(shù)據(jù)Flink1.17實(shí)

    2024年02月16日
    瀏覽(44)
  • Flink 集群部署模式

    Flink 集群部署模式

    Flink支持多種集群部署模式,以滿足不同場(chǎng)景和需求。以下是Flink的主要集群部署模式: 會(huì)話模式(Session Mode) : 在會(huì)話模式下,用戶首先啟動(dòng)一個(gè)長(zhǎng)期運(yùn)行的Flink集群,然后在這個(gè)會(huì)話中提交多個(gè)作業(yè)。 集群資源在啟動(dòng)時(shí)就已經(jīng)確定,提交的作業(yè)會(huì)競(jìng)爭(zhēng)集群中的資源,直到

    2024年03月19日
    瀏覽(35)
  • 尚硅谷大數(shù)據(jù)Flink1.17實(shí)戰(zhàn)教程-筆記02【Flink部署】

    尚硅谷大數(shù)據(jù)Flink1.17實(shí)戰(zhàn)教程-筆記02【Flink部署】

    尚硅谷大數(shù)據(jù)技術(shù)-教程-學(xué)習(xí)路線-筆記匯總表【課程資料下載】 視頻地址:尚硅谷大數(shù)據(jù)Flink1.17實(shí)戰(zhàn)教程從入門到精通_嗶哩嗶哩_bilibili 尚硅谷大數(shù)據(jù)Flink1.17實(shí)戰(zhàn)教程-筆記01【Flink概述、Flink快速上手】 尚硅谷大數(shù)據(jù)Flink1.17實(shí)戰(zhàn)教程-筆記02【Flink部署】 尚硅谷大數(shù)據(jù)Flink1.17實(shí)

    2024年02月11日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包