Flink 使用介紹相關(guān)文檔目錄
作業(yè)提交方式
參考鏈接:YARN | Apache Flink
Flink作業(yè)提交的方式分為application模式昔字,per-job模式和session模式绒尊。
per-job模式
在Yarn創(chuàng)建一個Flink集群管搪,然后在提交任務(wù)客戶端所在機器本地運行作業(yè)jar的main方法,提交生成的JobGraph到Flink集群的JobManager糠溜。如果附帶--detached
參數(shù),提交的作業(yè)被accept的時候宝踪,客戶端會停止運行(命令行不用一直開著钞澳,生產(chǎn)環(huán)境必須愈污。開發(fā)測試時可不帶--detached
參數(shù),通過命令行查看運行日志)轮傍。
實際生產(chǎn)中推薦使用此模式暂雹。每個作業(yè)都使用單獨的Flink集群,它們消耗的資源是互相隔離的创夜,一個作業(yè)的崩潰不會影響到其他作業(yè)杭跪。
flink run -t yarn-per-job --detached /path/to/job.jar
注意:per-job模式已在1.15版本中廢棄,不建議使用驰吓。
session模式
首先啟動Flink Yarn Session涧尿,它是一個常駐與Yarn的Flink集群。啟動成功后檬贰,無論是否有作業(yè)執(zhí)行姑廉,或者作業(yè)是否執(zhí)行完畢,該session始終保持運行翁涤。啟動yarn session的方法如下:
export HADOOP_CLASSPATH=`hadoop classpath`
./bin/yarn-session.sh --detached
yarn-session支持的相關(guān)參數(shù)解釋:
- -d/--detached: Detach模式庄蹋,session啟動成功后client停止運行。不用保持控制臺一直開啟迷雪。
- -s: 指定每個TaskManager的slot個數(shù)限书。
- -nm: Application名稱
- -jm: Job Manager 容器的內(nèi)存
- -tm: Task Manager 容器的內(nèi)存
- -t: 傳送文件至集群,使用相對路徑章咧。程序中讀取文件仍使用相對路徑
- -qu: 指定使用的Yarn隊列
- -nl: 指定使用的標(biāo)簽資源
提交作業(yè)到Y(jié)arn session:
flink run -t yarn-session \
-Dyarn.application.id=application_XXXX_YY \
/path/to/job.jar
停止Flink Yarn session可以通過Yarn UI的kill按鈕倦西。當(dāng)然也可以通過如下方式:
echo "stop" | ./bin/yarn-session.sh -id application_XXXXX_XXX
注意:一個Flink Yarn Session可以同時跑多個Flink作業(yè)。
application模式
和per-job模式類似赁严,提交一次任務(wù)會在Yarn運行一個Flink集群扰柠。不同之處為作業(yè)jar包的main方法在Yarn集群的JobManager上運行,而不是提交作業(yè)的client端運行疼约。作業(yè)執(zhí)行完畢后卤档,F(xiàn)link on yarn集群會被關(guān)閉。
flink run-application -t yarn-application /path/to/job.jar
application模式的好處是Flink yarn集群可以直接從HDFS上查找并下載作業(yè)jar以及所需依賴程剥,避免了從client機器上傳劝枣。
flink run-application -t yarn-application \
-Dyarn.provided.lib.dirs="hdfs://myhdfs/my-remote-flink-dist-dir" \
hdfs://myhdfs/jars/my-application.jar
其中yarn.provided.lib.dirs
為Flink作業(yè)所需依賴包的地址。
注意:從Flink1.12開始使用
-t
參數(shù)替代-m
參數(shù)织鲸。使用-t
之后原先的ynm
舔腾,yqu
等參數(shù)不在生效。需要使用-D
指定搂擦。
- -Dyarn.application.name=指定app name
- -Dyarn.application.queue=指定提交的隊列
- -Dyarn.application.node-label=指定使用的標(biāo)簽資源