日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

slide简介(大数据技术)

發(fā)布時間:2023/12/10 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 slide简介(大数据技术) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2.1SLIDER產(chǎn)生背景
為了解決MR1擴展性差、可靠性差、資源利用率低和無法支持多種計算框架等局限性,Apache社區(qū)將其升級了計算框架MRv2。Hadoop將資源管理功能抽象成了一個獨立的通用系統(tǒng)YARN
在以MapReduce為核心的軟件棧中,資源管理系統(tǒng)YARN是可插拔的,比例選擇Mesos替代YARN,一旦MapReduce接口改變,所有的資源管理系統(tǒng)的實現(xiàn)均需要跟著改變。但是以YARN為核心的軟件棧則不同,所有框架都需要實現(xiàn)YARN定義的對外接口以允許在YARN之上,從而形成一個以YARN核心的生態(tài)系統(tǒng)。
在YARN中可以運行MapReduce、Spark這樣的短作業(yè),也可以部署向Tomcat、MySQL這種長服務(wù)。YARN根據(jù)各種計算框架、應(yīng)用的負(fù)載或者需求去調(diào)整各自占用的資源,實現(xiàn)集群資源共享計彈性收縮。
開發(fā)者為了使YARN支持自己的計算框架或者服務(wù),需要編寫組件Client(客戶端)和ApplicationMaster,向YARN申請資源、任務(wù)調(diào)度與容錯、網(wǎng)絡(luò)容錯,并且要監(jiān)控各個任務(wù)狀態(tài)等細(xì)節(jié),對開發(fā)者要求過高,而且每增加一個框架或者服務(wù)都要重新編寫相對應(yīng)的組件,重復(fù)工作;如果想將已有服務(wù)運行在YARN中,需要修改服務(wù)的代碼,以與YARN框架兼容,代價較大。
為了解決這個問題,Apache社區(qū)推出了Slider,其源于Hoya,一個嘗試將HBase運行在YARN中的項目。ApacheSlider目前是孵化項目,可以使用戶在不對已存在服務(wù)進行任務(wù)修改的情況下部署到Y(jié)ARN集群中,并提供部署、管理及擴展等操作。
同時,Slider可以在集群中部署多版本、異構(gòu)的應(yīng)用,每個應(yīng)用可以根據(jù)需求配置不同的參數(shù),在運行過程中動態(tài)的擴展或者減少資源的應(yīng)用,并且對失敗的進程透明的回復(fù)。在YARN中,每個應(yīng)用都以Application的形式運行,每個進程都運,行在Container中,Container目錄中包含了應(yīng)用的配置、腳本和數(shù)據(jù)等;在YARN中運行應(yīng)用,可以使應(yīng)用充分整合Hadoop生態(tài)系統(tǒng),例如Hadoop數(shù)據(jù),計算/存儲資源及安全、管理和操作能力。
2.2SLIDER基礎(chǔ)知識
為了便于下面分析ApacheSlider,本小節(jié)對Slider涉及的術(shù)語進行比較全面的介紹。
(1))YARN
YARN是Hadoop2.0中的資源管理系統(tǒng),它是一個通用的資源管理模塊,可為各類應(yīng)用程序進行資源管理和調(diào)度。YARN不僅局限于MR一種框架使用,也可以提供其他框架,比如TEZ、Spark及Storm等。
(2)Application
可以運行在YARN中的程序都可以成為Application,包括計算框架MapReduce、內(nèi)存計算、流計算等;常駐服務(wù),如ApacheHBase、Accumulo及Storm等。其中Slider是運行在YARN中用于Application管理的框架,本質(zhì)也是Application。
(3)Instances
Application程序在YARN中的一次執(zhí)行,YARNCluster根據(jù)應(yīng)用配置文件啟動的應(yīng)用實例,實例的狀態(tài)可以是運行狀態(tài)或者停止?fàn)顟B(tài),當(dāng)停止時配置信息或者Instance數(shù)據(jù)保根據(jù)存在HDFS中。同一個Application可以在YARN中同時執(zhí)行多次(共享相同的服務(wù)器)。每個Application
Instance由一個或者多個Componet的集合組成,ApplicationState是Instance的模型,記錄每個Instances的正確狀態(tài)、所需要的資源、運行歷史信息等。
(4)Components
Component是ApplicationInstances的組成構(gòu)件,代表應(yīng)用的程序的一個運行模塊,例如HBase中的HMaster、HRegionServer、RestServer都可以稱為Component,其以YARNContainer的形式運行在YARN中。不同的Component可以執(zhí)行不同的程序或者命令,也可以使用不同的配置選項和參數(shù)。
(5)Role
ApplicationMaster為了實現(xiàn)對Component(運行在YARNContainer中)進行管理,需要對Component及其Container的實時運行信息進行記錄及更新。Component在ApplicationMaster的映射形式為Role(Server-Siderlogin),其實例化為RoleInstances。SliderAppMaster根據(jù)Role的信息進行任務(wù)的調(diào)度和服務(wù)的管理。根據(jù)具體的Component不同分為SliderAppMasterRole和ComponentRole。
(6)ServiceRegistry
客戶端需要訪問運行在YARN中的服務(wù),但是客戶端可能運行在集群外,而且運行在YARN中的服務(wù)是隨機分配到各個主機上,不可預(yù)測而且端口也是隨機的,為了解決這些問題需要引入服務(wù)注冊(Service
Registry)。服務(wù)的注冊的方式很多,包括ZK、DNS、FloatingIPAddress、LDAP等。
當(dāng)前Slider使用的方式是YARNServiceRegistry,將YARNApplication的binding信息發(fā)布到ZK中,包括IPC端口,Service-aware
URL及配置等,客戶端從ZK中獲取所需要的訪問信息。對于ServiceRegistry,除了ZK,有很多的替代方式,如ApacheCurator、HelixService
Registry,TwillRegistry等,以后會進行詳述。
2.3SLIDER基本架構(gòu)
Slider將分布式應(yīng)用以YARNApplication的形式運行在YARN中,其基本設(shè)計思想是將分布式應(yīng)用的服務(wù)進程以Container的形式運行在YARN資源管理系統(tǒng)中,客戶端通過與YARN的交互來對應(yīng)用進行管理。
2.3.1Slider基本組成結(jié)構(gòu)
Slider(YARNApplication)的總體結(jié)構(gòu)仍然是Master/Slave結(jié)構(gòu),運行在資源管理系統(tǒng)YARN中,SliderAppMaster為Master,SliderAgent為Slave。SliderAppMaster向RM申請資源,并要求NM啟動SlliderAgent進程,Agent根據(jù)服務(wù)的定義啟動相對應(yīng)的Component。
圖2-3描述了Slider的基本組成結(jié)構(gòu),Slider主要由SliderAppMaster、SliderAgent和AppComponent(由LinuxService啟動,可以是Docker或者JVM程序等不同程序),Agent啟動在Container中,但是Component進程由Linux系統(tǒng)啟動,可能會不屬于Cotainer。

圖2-3Apache
Slider的基本架構(gòu)
根據(jù)app的配置解析并生成Application的啟動計劃,SliderAppMaster根據(jù)計劃向YARN申請Container(對應(yīng)一個Component)。在ApplicationInstance啟動后,監(jiān)控其運行狀態(tài),并當(dāng)服務(wù)的Component因異常停止后,自動恢復(fù)。
SliderAppMaster申請到Container后,在Container中啟動SliderAgent進程,Agent向SliderAppMaster注冊并發(fā)送心跳信息,Agent根據(jù)心跳響應(yīng)獲取SliderAppMaster發(fā)送的命令并執(zhí)行,包括服務(wù)的啟動、停止及其他操作。
每個applicationinstance有一個或者多個Component的集合,每個Component有不同的程序或者命令,使用的配置和參數(shù)也會不同,例如HBaseHMaster
component會通過SliderAgent啟動HMasterJVM。當(dāng)前SliderAgent也支持DockerApp的啟動。
與SliderAppMaster及YARN通過REST或者RPC通信,對外提供CLI和底層API來操作Application
2.3.2Slider通信協(xié)議
通信協(xié)議是Slider各個組件的大動脈,了解不同組件之間的通信協(xié)議有助于更深入的學(xué)習(xí)Slider框架,其中RPC協(xié)議是連接各個組件的“大動脈”,對于RPC,通信雙方有一端是Client,另一端是Server,且Client總是主動連接Server,因此YARN中的組件采用的是pull-based通信模型。另外SliderAppMaster對外提供REST通信方式,主要用于與SliderAgent的心跳與注冊過程,采用的Pull-based通信模型。如圖2-4所示,實線箭頭指向的組件是RPCServer,而箭頭尾部的組件是RCPClient,虛線箭頭指向RESTServer,虛線箭尾指向RESTClient端,由以下部分組成:

圖2-4ApacheSlider的交互協(xié)議
1)SliderClient與RM之間的協(xié)議——ApplicationClientProtocol;SliderClient通過該RPC協(xié)議提交應(yīng)用程序,查詢應(yīng)用程序狀態(tài)等
2)Admin與RM之間的協(xié)議——ResourceManagerAdministrationProtocol;Admin通過該RPC協(xié)議更新系統(tǒng)配置文件,比如節(jié)點黑白名單,用戶隊列等。
3)AM與RM之間的協(xié)議——ApplicationMasterProtocol;AM通過該RPC協(xié)議向RM注冊和撤銷自己,并為各個任務(wù)申請資源
4)AM與NM之間的協(xié)議——ContainerManagementProtocol;AM通過該RPC協(xié)議要求NM啟動或者停止Container,獲取各個Container的使用狀態(tài)等信息
5)NM與RM之間的協(xié)議——ResourceTracker;NM通過向該RPC協(xié)議向RM注冊,并定時發(fā)送心跳信息匯報當(dāng)前節(jié)點的資源使用情況和Container運行情況
6)SliderClient與AM之間的協(xié)議——SliderClusterProtocol;SliderClient通過該RPC協(xié)議請求AM進行App的信息的查詢
7)SliderOpUser與AM之間REST協(xié)議——ManagementResource、PublisherResource、RegistryResource及ApplicationResource,用戶通過該REST協(xié)議進行應(yīng)用信息的查詢,服務(wù)的操作等
8)SliderAgent與AM之間的REST協(xié)議——AgentResource,Agent向AM注冊,并實現(xiàn)Agent與AM之間的心跳信息的交互
2.4SLIDER工作流程
通過Slider將常駐服務(wù)運行在YARN中,與常規(guī)的提交YARNApp(eg,MR)大致相同,分為兩個階段運行該應(yīng)用程序;第一個階段是啟動SliderAppMaster;第二個階段是由SliderAppMaster創(chuàng)建應(yīng)用程序,為它申請資源,并監(jiān)控它的整個運行過程,直到運行完成。
步驟1:用戶通過CLI啟動SliderAppMaster,SliderClient通過調(diào)用create及start向YARN提交應(yīng)用請求,分配資源并啟動SliderAppMaster,啟動過程中從Apppackage中讀取所需要的配置信息,初始化服務(wù)
步驟2:SliderAppMaster啟動后,向YARN申請資源,并啟動container
步驟3:Container被激活并啟動Agent,SliderAppMaster分配Container后,啟動Container,并啟動SliderAgent
步驟4:SliderAgent的啟動后,從應(yīng)用程序的描述文件(metainfo.xml)中讀取應(yīng)用的啟動腳本及目錄
步驟5:SliderAgent向SliderAppMaster注冊,通過SliderAppMaster向SliderAMWebApp服務(wù)的REST(/agent/register)完成注冊
步驟6:SliderAppMaster向SliderAgent發(fā)送命令,SliderAgent根據(jù)應(yīng)用程序的描述文件啟動對應(yīng)的腳本,啟動對應(yīng)的服務(wù)(Component)
步驟7:SliderAgent與SliderAppMaster進行心跳交互,SliderAgent向SliderAppMaster匯報服務(wù)狀態(tài)及配置等
步驟8:SliderAppMaster通過YARNRegistry向zk中注冊服務(wù)地址,客戶端獲取服務(wù)地址,并對服務(wù)進行信息的查詢和操作
2.5小結(jié)
本章介紹了Slider的設(shè)計理念和基本架構(gòu),涉及到的內(nèi)容較多,包括Slider產(chǎn)生背景、Slider術(shù)語解釋、Slider架構(gòu)和通信協(xié)議等。從YARN的角度上講,Slider與MRAppMaster等Application的執(zhí)行過程相同。在后面幾章中,將深入探討Slider內(nèi)部實現(xiàn)原理,以便進一步深層次理解Slider。

總結(jié)

以上是生活随笔為你收集整理的slide简介(大数据技术)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。