Flinkonyarn運(yùn)行原理的示例分析

小編給大家分享一下Flink on yarn運(yùn)行原理的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

成都創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括網(wǎng)站制作、做網(wǎng)站、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營銷等。成都創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,成都創(chuàng)新互聯(lián)核心團(tuán)隊(duì)十多年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。

Flink運(yùn)行時(shí)由兩種類型的進(jìn)程組成:

1),JobManager也叫master協(xié)調(diào)分布式執(zhí)行。他們調(diào)度任務(wù),協(xié)調(diào)checkpoints,協(xié)調(diào)故障恢復(fù)等。至少有一個(gè)JobManager。高可用情況下可以啟動(dòng)多個(gè)JobManager,其中一個(gè)選舉為leader,其余為standby。

2),TaskManager也叫worker,負(fù)責(zé)執(zhí)行具體的tasks,緩存,交換數(shù)據(jù)流。至少有一個(gè)TaskManager。

JobManager和TaskManager可以用很多種方式啟動(dòng):可以直接作為Standalone集群啟動(dòng),也可以被yarn或者M(jìn)esos管理。TaskManager連接到JobManager,宣布自己可用,并接受分配的工作。

客戶端不是runtime 和程序執(zhí)行的一部分,而是用于準(zhǔn)備并發(fā)送數(shù)據(jù)流到JobManager。

之后,客戶端可以斷開連接或保持連接以接收進(jìn)度報(bào)告??蛻舳俗鳛橛|發(fā)執(zhí)行的Java / Scala程序的一部分運(yùn)行,或在命令行進(jìn)程中運(yùn)行./bin/flink運(yùn)行。

Flink on yarn運(yùn)行原理的示例分析

Flink on yarn

根據(jù)前面的講解的實(shí)際上,就很容易可以理解flink on yarn的部署了。

首先,我們要啟動(dòng)一套jobmanager和taskmanager集群

然后,我們可以向該集群提交我們的應(yīng)用程序,由上個(gè)步驟啟動(dòng)的jobmanager和TaskManager運(yùn)行我們的應(yīng)用。

有上面兩個(gè)步驟,我們可以先給出flink on yarn的交互圖,如下:

Flink on yarn運(yùn)行原理的示例分析

當(dāng)啟動(dòng)新的Flink YARN會(huì)話時(shí),客戶端首先檢查請(qǐng)求的資源(容器和內(nèi)存)是否可用。之后,它將包含flink的jar和配置上傳到HDFS(步驟1)。

客戶端的下一步是請(qǐng)求(步驟2)YARN容器以啟動(dòng)ApplicationMaster(步驟3)。由于客戶端將配置和jar文件注冊(cè)為容器的資源,因此在該特定機(jī)器上運(yùn)行的YARN的NodeManager將負(fù)責(zé)準(zhǔn)備容器(例如,下載文件)。一旦完成,ApplicationMaster(AM)就會(huì)啟動(dòng)。

該JobManager和AM在同一容器中運(yùn)行。成功啟動(dòng)后,AM就很容易知道JobManager的地址(它自己的主機(jī))。它為TaskManagers生成一個(gè)新的Flink配置文件(以便它們可以連接到JobManager)。該文件也被上傳到HDFS。此外,AM容器還提供Flink的Web界面。YARN代碼分配的所有端口都是臨時(shí)端口。這允許用戶并行執(zhí)行多個(gè)Flink YARN會(huì)話。

之后,AM開始為Flink的TaskManagers分配容器,它將從HDFS下載jar文件和修改后的配置。完成這些步驟后,F(xiàn)link即會(huì)設(shè)置并準(zhǔn)備接受作業(yè)。

測(cè)試flink on yarn

首先,啟動(dòng)一個(gè)yarn session,并且給其分配4個(gè)taskmanager,每個(gè)taskmanager 4GB內(nèi)存。

# get the hadoop2 package from the Flink download page at# http://flink.apache.org/downloads.htmlcurl -O <flink_hadoop2_download_url>tar xvzf flink-1.5.0-bin-hadoop2.tgzcd flink-1.5.0/
./bin/yarn-session.sh -n 4 -jm 1024 -tm 4096

-jm代表jobmanager的內(nèi)存大小,-tm代表的是TaskManager的內(nèi)存大小,-n代表的是n個(gè)taskmanager。那么可能會(huì)有人問,還有個(gè)slot的概念,如何通過參數(shù)設(shè)置呢,其實(shí)只需要-s參數(shù),就可以設(shè)置每個(gè)TaskManager所包含的slot數(shù)。至于slot數(shù)的設(shè)置技巧我們后面會(huì)詳細(xì)介紹,推薦做法是每個(gè)taskmanager包含的slot數(shù)呢是處理器數(shù)。

接著就是運(yùn)行一個(gè)flink job到y(tǒng)arn上

# get the hadoop2 package from the Flink download page at# http://flink.apache.org/downloads.htmlcurl -O <flink_hadoop2_download_url>tar xvzf flink-1.5.0-bin-hadoop2.tgzcd flink-1.5.0/
./bin/flink run -m yarn-cluster -yn 4 -yjm 1024 -ytm 4096 ./examples/batch/WordCount.jar

可能有人會(huì)問,咋沒有指定master呢,其實(shí),他會(huì)自動(dòng)找到flink集群并提交job。

前提是,要提前設(shè)置hadoop的yarn相關(guān)配置,

YARN_CONF_DIR, HADOOP_CONF_DIR or HADOOP_CONF_PATH這幾個(gè)變量任意一個(gè)配置了,都可以讓flink讀取到y(tǒng)arn的配置文件。

看完了這篇文章,相信你對(duì)“Flink on yarn運(yùn)行原理的示例分析”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享標(biāo)題:Flinkonyarn運(yùn)行原理的示例分析
文章分享:http://muchs.cn/article42/jpgihc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站營銷、定制開發(fā)、軟件開發(fā)、云服務(wù)器動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司