Flink集群部署詳細(xì)步驟

1.下載Flink壓縮包

下載地址:http://flink.apache.org/downloads.html
CDH集群環(huán)境 hadoop2.6,Scala2.11,所以下載:flink-1.5.0-bin-hadoop26-scala_2.11.tgz

2.解壓

[root@hadoop2 opt]# tar -zxf flink-1.5.0-bin-hadoop26-scala_2.11.tgz
[root@hadoop2 opt]# cd flink-1.5.0

3.選擇一個(gè)master節(jié)點(diǎn), 配置conf/flink-conf.yaml

[root@hadoop2 flink-1.5.0]# vi conf/flink-conf.yaml 
# 設(shè)置jobmanager.rpc.address 配置項(xiàng)為該節(jié)點(diǎn)的IP 或者主機(jī)名
jobmanager.rpc.address: 10.108.4.202

4.配置slaves

將所有的worker節(jié)點(diǎn)(TaskManager)的IP或者主機(jī)名(一行一個(gè))填入conf/slaves 文件中。

[root@hadoop2 flink-1.5.0]# vi conf/slaves
10.108.4.203
10.108.4.204

5.啟動(dòng)flink集群

[root@hadoop2 flink-1.5.0]# bin/start-cluster.sh

6.停止flink集群

[root@hadoop2 flink-1.5.0]# bin/stop-cluster.sh

7. 查看更多可用的配置項(xiàng):

https://ci.apache.org/projects/flink/flink-docs-release-1.5/ops/config.html
以下都是非常重要的配置項(xiàng):
1、TaskManager總共能使用的內(nèi)存大小(taskmanager.heap.mb)
2、每一臺(tái)機(jī)器上能使用的 CPU 個(gè)數(shù)(taskmanager.numberOfTaskSlots)
3、集群中的總 CPU個(gè)數(shù)(parallelism.default)
4、臨時(shí)目錄(taskmanager.tmp.dirs)

以上就完成了一個(gè)簡(jiǎn)單的Flink集群。

添加JobManager或TaskManager實(shí)例到集群

可以使用bin/jobmanager.shbin/taskmanager.sh腳本為運(yùn)行中的集群添加JobManagerTaskManager實(shí)例

添加jobmanager:

bin/jobmanager.sh  ((start|start-foreground) cluster)  | stop | stop-all

添加taskmanager:

bin/taskmanager.sh start | start-foreground | stop | stop-all

生產(chǎn)中基本很少使用這種模式的,大多數(shù)都是基于YARN來進(jìn)行提交任務(wù),下面主要給出YARN的任務(wù)提交配置方式。


Flink On YARN

設(shè)置Hadoop環(huán)境變量:
[root@hadoop2 flink-1.5.0]# vi /etc/profile
export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH-5.13.3-1.cdh5.13.3.p0.2/lib/hadoop/etc/hadoop
查看使用方法:
[root@hadoop2 flink-1.5.0]# bin/yarn-session.sh -h

Usage:
   Required
     -n,--container <arg>   為YARN分配容器的數(shù)量 (=Number of Task Managers)
   Optional
     -D <property=value>             動(dòng)態(tài)屬性 
     -d,--detached                   以分離模式運(yùn)行作業(yè)
     -h,--help                       Yarn session幫助.
     -id,--applicationId <arg>       連接到一個(gè)正在運(yùn)行的YARN session
     -j,--jar <arg>                  Flink jar文件的路徑
     -jm,--jobManagerMemory <arg>    JobManager的內(nèi)存大小,driver-memory [in MB]
     -m,--jobmanager <arg>           Address of the JobManager (master) to which to connect. Use this flag to connect to a different JobManager than the one specified in the configuration.
     -n,--container <arg>            TaskManager的數(shù)量,相當(dāng)于executor的數(shù)量
     -nm,--name <arg>                設(shè)置YARN應(yīng)用自定義名稱 
     -q,--query                      顯示可用的YARN資源 (memory, cores)
     -qu,--queue <arg>               指定YARN隊(duì)列
     -s,--slots <arg>                每個(gè)JobManager的core的數(shù)量,executor-cores。建議將slot的數(shù)量設(shè)置每臺(tái)機(jī)器的處理器數(shù)量
     -st,--streaming                 在流模式下啟動(dòng)Flink
     -t,--ship <arg>                 在指定目錄中傳送文件(t for transfer)
     -tm,--taskManagerMemory <arg>   每個(gè)TaskManager的內(nèi)存大小,executor-memory  [in MB]
     -yd,--yarndetached              如果存在,則以分離模式運(yùn)行作業(yè) (deprecated; use non-YARN specific option instead)
     -z,--zookeeperNamespace <arg>   為高可用性模式創(chuàng)建Zookeeper子路徑的命名空間

1. 以集群模式提交任務(wù),每次都會(huì)新建flink集群

[root@hadoop2 flink-1.5.0]# ./bin/flink run -m yarn-cluster -c com.demo.florian.WordCount  $DEMO_DIR/target/flink-demo-1.0-SNAPSHOT.jar --port 9000

2.啟動(dòng)Session flink集群,提交任務(wù)

  1. 啟動(dòng)一個(gè)YARN session用2個(gè)TaskManager(每個(gè)TaskManager分配1GB的堆空間)
[root@hadoop2 flink-1.5.0]# ./bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 -s 2
  1. YARN session啟動(dòng)之后就可以使用bin/flink來啟動(dòng)提交作業(yè)
[root@hadoop2 flink-1.5.0]#  ./bin/flink run -c com.demo.florian.WordCount $DEMO_DIR/target/flink-demo-1.0.SNAPSHOT.jar --port 9000
用法: run [OPTIONS] <jar-file> <arguments>  
  "run" 操作參數(shù):  
     -c,--class <classname>           如果沒有在jar包中指定入口類,則需要在這里通過這個(gè)參數(shù)指定  

     -m,--jobmanager <host:port>      指定需要連接的jobmanager(主節(jié)點(diǎn))地址  
                                      使用這個(gè)參數(shù)可以指定一個(gè)不同于配置文件中的jobmanager  
     -p,--parallelism <parallelism>   指定程序的并行度。可以覆蓋配置文件中的默認(rèn)值。  

使用run 命令向yarn集群提交一個(gè)job。客戶端可以確定jobmanager的地址。當(dāng)然,你也可以通過-m參數(shù)指定jobmanager。jobmanager的地址在yarn控制臺(tái)上可以看到。

后臺(tái) yarn session

如果你不希望flink yarn client一直運(yùn)行,也可以啟動(dòng)一個(gè)后臺(tái)運(yùn)行的yarn session。使用這個(gè)參數(shù):-d 或者 --detached

在這種情況下,flink yarn client將會(huì)只提交任務(wù)到集群然后關(guān)閉自己。注意:在這種情況下,無法使用flink停止yarn session。
使用yarn 工具 來停止yarn session

yarn application -kill <applicationId> 

附著到一個(gè)已存在的session

下面命令可以附著到一個(gè)運(yùn)行中的flink yarn session:

[root@hadoop2 flink-1.5.0]#  ./bin/yarn-session.sh  -id <yarnAppId> 

附著到一個(gè)運(yùn)行的session使用yarn resourcemanager來確定job Manager 的RPC端口。
停止yarn session通過停止unix進(jìn)程(使用CTRL+C)或者在client中輸入stop

flink on yarn的故障恢復(fù)

flink 的 yarn 客戶端通過下面的配置參數(shù)來控制容器的故障恢復(fù)。這些參數(shù)可以通過conf/flink-conf.yaml 或者在啟動(dòng)yarn session的時(shí)候通過-D參數(shù)來指定。

  • yarn.reallocate-failed:這個(gè)參數(shù)控制了flink是否應(yīng)該重新分配失敗的taskmanager容器。默認(rèn)是true。

  • yarn.maximum-failed-containers:applicationMaster可以接受的容器最大失敗次數(shù),達(dá)到這個(gè)參數(shù),就會(huì)認(rèn)為yarn session失敗。默認(rèn)這個(gè)次數(shù)和初始化請(qǐng)求的taskmanager數(shù)量相等(-n 參數(shù)指定的)。

  • yarn.application-attempts:applicationMaster重試的次數(shù)。如果這個(gè)值被設(shè)置為1(默認(rèn)就是1),當(dāng)application master失敗的時(shí)候,yarn session也會(huì)失敗。設(shè)置一個(gè)比較大的值的話,yarn會(huì)嘗試重啟applicationMaster。

日志文件

在某種情況下,flink yarn session 部署失敗是由于它自身的原因,用戶必須依賴于yarn的日志來進(jìn)行分析。最有用的就是yarn log aggregation 。啟動(dòng)它,用戶必須在yarn-site.xml文件中設(shè)置yarn.log-aggregation-enable 屬性為true。一旦啟用了,用戶可以通過下面的命令來查看一個(gè)失敗的yarn session的所有詳細(xì)日志。

yarn logs -applicationId <application ID>  

yarn client控制臺(tái)和web界面

flink yarn client也會(huì)打印一些錯(cuò)誤信息在控制臺(tái)上,如果錯(cuò)誤發(fā)生在運(yùn)行時(shí)(例如如果一個(gè)taskmanager停止工作了一段時(shí)間)

除此之外,yarn resource manager的web界面(默認(rèn)端口是8088)。resource manager的端口是通過yarn.resourcemanager.webapp.address參數(shù)來配置的。

它運(yùn)行在yarn 程序運(yùn)行的時(shí)候查看日志和程序失敗的時(shí)候查看日志用戶查找問題。

flink on yarn 內(nèi)部實(shí)現(xiàn)

Flink在YARN集群上運(yùn)行時(shí):Flink YARN Client負(fù)責(zé)與YARN RM通信協(xié)商資源請(qǐng)求,F(xiàn)link JobManager和Flink TaskManager分別申請(qǐng)到Container去運(yùn)行各自的進(jìn)程。

YARN AM與Flink JobManager在同一個(gè)Container中,這樣AM可以知道Flink JobManager的地址,從而AM可以申請(qǐng)Container去啟動(dòng)Flink TaskManager。待Flink成功運(yùn)行在YARN集群上,F(xiàn)link YARN Client就可以提交Flink Job到Flink JobManager,并進(jìn)行后續(xù)的映射、調(diào)度和計(jì)算處理。



YARN客戶端需要訪問Hadoop配置來連接YARN資源管理器和HDFS。它使用下面的策略來確定Hadoop的配置:

  • YARN_CONF_DIR,HADOOP_CONF_DIR,HADOOP_CONF_PATH.其中一個(gè)變量被設(shè)置,就能讀取配置

  • 如果上面的策略失敗(在正確的yarn 設(shè)置中不應(yīng)該出來這種情況),客戶端使用HADOOP_HOME環(huán)境變量。如果設(shè)置了,那么客戶端就會(huì)嘗試訪問$HADOOP_HOME/tect/hadoop

step1 : 當(dāng)啟動(dòng)一個(gè)新的Flink YARN session時(shí),客戶端首先檢查資源(container和memory)是否可用。然后,上傳一個(gè)包含F(xiàn)link和配置的jar包到HDFS上。

客戶端請(qǐng)求(step 2)YARN container啟動(dòng)ApplicationMaster(step 3).由于客戶端將配置和jar文件注冊(cè)到容器,在特定機(jī)器上運(yùn)行的YARN的NodeManager將負(fù)責(zé)準(zhǔn)備container(例如下載文件)。一旦完成,ApplicationMaster就被啟動(dòng)了。

JobManager和ApplicationMaster運(yùn)行在同一個(gè)container上。一旦他們被成功啟動(dòng),AM就知道JobManager的地址(AM它自己所在的機(jī)器)。它就會(huì)為TaskManager生成一個(gè)新的Flink配置文件(他們就可以連接到JobManager)。這個(gè)配置文件也被上傳到HDFS上。此外,AM容器也提供了Flink的web服務(wù)接口。YARN所分配的所有端口都是臨時(shí)端口,這允許用戶并行執(zhí)行多個(gè)Flink session。

最后,AM開始為Flink的任務(wù)TaskManager分配container,它將從HDFS加載jar文件和修改的配置文件。一旦這些步驟完成,F(xiàn)link就準(zhǔn)備好接口Job的提交了

Flink任務(wù)處理過程

當(dāng)Flink系統(tǒng)啟動(dòng)時(shí),首先啟動(dòng)JobManager和一至多個(gè)TaskManager。JobManager負(fù)責(zé)協(xié)調(diào)Flink系統(tǒng),TaskManager則是執(zhí)行并行程序的worker。當(dāng)系統(tǒng)以本地形式啟動(dòng)時(shí),一個(gè)JobManager和一個(gè)TaskManager會(huì)啟動(dòng)在同一個(gè)JVM中。
當(dāng)一個(gè)程序被提交后,系統(tǒng)會(huì)創(chuàng)建一個(gè)Client來進(jìn)行預(yù)處理,將程序轉(zhuǎn)變成一個(gè)并行數(shù)據(jù)流的形式,交給JobManager和TaskManager執(zhí)行。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,882評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,208評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,746評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,666評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,477評(píng)論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,960評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,047評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,200評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,726評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,617評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,807評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,327評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,049評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,425評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,674評(píng)論 1 281
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,432評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,769評(píng)論 2 372

推薦閱讀更多精彩內(nèi)容

  • 蟑螂可愛嗎? 當(dāng)然!一切生命都可以去愛,也都應(yīng)該被愛,蟑螂也不例外。而且,你會(huì)發(fā)現(xiàn),越愛,越可愛! 可是,蟑螂會(huì)破...
    簡(jiǎn)佛系閱讀 795評(píng)論 3 8
  • 只有意志如鋼鐵,心如之水方能游刃有余。加油
    cqmudhw閱讀 207評(píng)論 0 0
  • 任華,在單位里是小有名氣的書法家,筆走龍蛇,蒼勁有力,素有“一字千金”的雅稱。 這個(gè)雅稱的來歷呀,還得追溯到200...
    羽筱筱閱讀 883評(píng)論 2 3