參考作業(yè)第七課時(shí)書面_第1頁
參考作業(yè)第七課時(shí)書面_第2頁
參考作業(yè)第七課時(shí)書面_第3頁
參考作業(yè)第七課時(shí)書面_第4頁
參考作業(yè)第七課時(shí)書面_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Samza 等框架在原理時(shí)性數(shù)據(jù)對資Samza 等框架在原理時(shí)性數(shù)據(jù)對資源的調(diào)度和利用方面要是以數(shù)據(jù)塊為數(shù)據(jù)源來處理數(shù)據(jù),代表有:MR、Spark等;而streaming主要是處理1.1Hadoop1.1.1原理,Lisp(Listsing)如:(add#(1234)#(432 將產(chǎn)生結(jié)果:#(555 在鍵值對進(jìn)入reducemap函數(shù)都做完,所以既為了達(dá)到這種同步又提高運(yùn)行效率,在mapreduce中間的過程引入了barrier(同步障)map節(jié)點(diǎn)的相同key的valuemap的具有相同的key的鍵值對送到同一個(gè)reduce鍵值對reduce節(jié)點(diǎn)對這些鍵值進(jìn)行合并下面這幅圖就是mapreduce1.1.2實(shí)時(shí)性1.1.2實(shí)時(shí)性MapReduce框架可以滿足分鐘級延遲,例如高優(yōu)先級調(diào)度,本地化優(yōu)化,增spill,借助輕量級壓縮將IO瓶頸轉(zhuǎn)移到CPU等等,當(dāng)然前提是應(yīng)用本身計(jì)算量不大MapReducespill,借助輕量級壓縮將IO瓶頸轉(zhuǎn)移到CPU等等,當(dāng)然前提是應(yīng)用本身計(jì)算量不大MapReduce只是說純粹的MapReducedatawarehouse,workflow或者是sqlengine1.1.3reducereducer,map 對資源的調(diào)度和利支持多個(gè)隊(duì)列,每個(gè)隊(duì)列可配置一定的資源量,每個(gè)隊(duì)列采用FIFO式1.21.2.1原理1.Spark態(tài)如下圖所支持多個(gè)隊(duì)列,每個(gè)隊(duì)列可配置一定的資源量,每個(gè)隊(duì)列采用FIFO式1.21.2.1原理1.Spark態(tài)如下圖所示為Spark的整個(gè)生態(tài)圈,最底層為資源管理器,采用Mesos、Yarn等資源SparkStandalone底系統(tǒng)如HBaseSparkGraphxMLBase提供數(shù)據(jù)挖掘服務(wù),如圖計(jì)算和挖掘迭計(jì)算等SharkSQL詢服務(wù),兼Hive性能比查詢晌應(yīng)時(shí)間的交互SQL查詢引擎,二者都可作為交互式查詢使 2.Spark原Spark運(yùn)行框架如下圖所示,首先有集群資點(diǎn)(WorkerNode),然后就是每個(gè)應(yīng)用的任務(wù)控制結(jié)點(diǎn)Driver和每個(gè)機(jī)器節(jié)點(diǎn)上有具體任務(wù)的執(zhí)行程與MR計(jì)算框架相比,Executor有二個(gè)優(yōu)點(diǎn):一個(gè)是多線程來執(zhí)行具體的任務(wù),而不是像MR樣采用進(jìn)程模型,減少了任務(wù)的啟與MR計(jì)算框架相比,Executor有二個(gè)優(yōu)點(diǎn):一個(gè)是多線程來執(zhí)行具體的任務(wù),而不是像MR樣采用進(jìn)程模型,減少了任務(wù)的啟動(dòng)開稍二個(gè)是Executor似于KV系統(tǒng)(內(nèi)存和磁盤共同作 個(gè)上數(shù)據(jù),而不需要讀寫到hdfs等相關(guān)的文件系統(tǒng)里,或系統(tǒng)上,提IO性能Spark種模式,Spark還提供了更加豐富全面的運(yùn)算操作如filter,groupby,joinSpark采用了Scala來編寫,在函數(shù)表達(dá)上Scala有天然的優(yōu)勢,因此在表達(dá)復(fù)雜的法能力比其他語言更強(qiáng)且簡單易懂函數(shù)來建立起RDD的DAG把每看成構(gòu)建一個(gè)RDD來對待,而RDD則表示的是分布在多臺機(jī)器上的數(shù)據(jù)集合,并且可函數(shù)首先從hdfs文件文本內(nèi)容構(gòu)建成一個(gè)RDD,然后使filter()操作來對上次的RDD過濾使用map的第一個(gè)字段,最后將其cache在內(nèi)存上整個(gè)過程都將形成一個(gè)DAG計(jì)算圖,每個(gè)操作步驟都有容錯(cuò)機(jī)制,同時(shí)還以將需要多次使用的數(shù)據(jù)cache整個(gè)過程都將形成一個(gè)DAG計(jì)算圖,每個(gè)操作步驟都有容錯(cuò)機(jī)制,同時(shí)還以將需要多次使用的數(shù)據(jù)cache起來,供后續(xù)迭代使3.Shark工作Shark是基于Spark計(jì)算框架之上且兼容Hive語法的SQL于底層的計(jì)算采用了MapReduceHive2如果SQL5當(dāng)數(shù)load在內(nèi)存的話,將快10倍以上,因此Shark可以作為交互式查詢應(yīng)用服務(wù)來使上圖就是整Shark與其他的SQL引擎SparkSharkHive的語法,表結(jié)構(gòu)以及UDF已有的HiveSql行遷移至SharkHiveShark如下以服務(wù)的方式執(zhí)行任務(wù),避免任務(wù)進(jìn)程的啟動(dòng)和銷毀開稍,通常MapReduce里的每個(gè)是啟動(dòng)和關(guān)閉進(jìn)程的方式來運(yùn)行的,而在Shark中,Server運(yùn)行后,所有的工作節(jié)點(diǎn)也動(dòng),隨后以常駐服務(wù)的形式不斷的接受ServerGroupby和Join操作不需要Sort工作,當(dāng)數(shù)據(jù)量內(nèi)存能裝下時(shí),一邊接收數(shù)據(jù)一邊執(zhí)行計(jì)算作Hive不管Map到Reduce過程都需要對Key進(jìn)行Sort對于性能要求更高的表,提供分布式Cache表數(shù)據(jù)事先Cache至內(nèi)存中,后續(xù)的查接DAG過程中的中間數(shù)據(jù)不需1.2.2實(shí)時(shí)性1.2.3SparkStreamingSparkAPIStormDStrea(1.2.3SparkStreamingSparkAPIStormDStrea(DiscetiedStream, SparkHadoopYARN1.31.3.1rpc1.3.2原理:rpc1.3.2原理: 文件),由Nimbus節(jié)點(diǎn)分配給其他Supervisor節(jié)點(diǎn)進(jìn)行處理Nimbus節(jié)點(diǎn)首先將提交的和同樣是計(jì)算框架的MapReduce相比,MapReduce集群上運(yùn)行的是JobStorm集群上運(yùn)supervisor都是快速失敗(fail-fast)Zookeeper里面,kill9nimbussupervisor進(jìn)程,然后再StromvsStromvs1.3.3StormHadoopStormHadoopHadoop1.3.3StormHadoopStormHadoopHadoop的批處理,Storm是個(gè)實(shí)時(shí)HadoopStorm也可以處理大批量的數(shù)據(jù),StormStorm可以擴(kuò)展到不同的Storm數(shù) 1.3.4撲將會被提交給集群,由集群中的主控節(jié)點(diǎn)(masternode)分發(fā)代碼,將任務(wù)分配給工作節(jié)點(diǎn)(workernode)spoutboltspout發(fā)送消息,負(fù)責(zé)將數(shù)據(jù)流以tupleboltbolt中可以進(jìn)行指定,Storm會在集群內(nèi)分配對應(yīng)并行度個(gè)數(shù)的線程來同時(shí)執(zhí)行這一組件兩個(gè)組件(Spout和進(jìn)行指定,Storm會在集群內(nèi)分配對應(yīng)并行度個(gè)數(shù)的線程來同時(shí)執(zhí)行這一組件兩個(gè)組件(Spout和Bolt)之間發(fā)送tuple元組呢?Storm提供了若干種數(shù)據(jù)流分發(fā)(StreamGrou )策略用來解決這一問題在Topology定、 、Global、Non、Direct、Localorshuffle1.3.5資源調(diào)度和利用rreblalanctopologystorm其中,負(fù)載均衡部分的策略可采用平均分配、機(jī)器或后再分配、slotslot1.41.4.1其中,負(fù)載均衡部分的策略可采用平均分配、機(jī)器或后再分配、slotslot1.41.4.1原理sing 起來就是Streaming了但是要構(gòu)建一個(gè)可用的流式數(shù)據(jù)處理框架,還是許多事情要做例如生產(chǎn)者和消費(fèi)者進(jìn)程的管理,作業(yè)調(diào)度和容錯(cuò)處理,輔助工具 理 起來就是Streaming了但是要構(gòu)建一個(gè)可用的流式數(shù)據(jù)處理框架,還是許多事情要做例如生產(chǎn)者和消費(fèi)者進(jìn)程的管理,作業(yè)調(diào)度和容錯(cuò)處理,輔助工具 理另一個(gè)或多個(gè)topic個(gè)串聯(lián)的job是連續(xù)不間斷的,亦即流式的1.4.2實(shí)時(shí)性1.4.3SamzaSamza 對資源的調(diào)度和利1.5Apache1.5.1原理sElements圖PE,有向邊表示一個(gè)(K,A)Keynull,事件類Quote的(K,A)元素,按照上文的說法,S4圖PE,有向邊表示一個(gè)(K,A)Keynull,事件類Quote的(K,A)元素,按照上文的說法,S4S4PEPE集群,S4ElementContainerPE包含到同一個(gè)容器中,PEC接收源event結(jié)果eventPECPEsingNodePNPNPEC,PECPE(keyedPE都會被映送消息。點(diǎn)zookeeper1.5.2實(shí)時(shí)性于海量數(shù)據(jù),它和MapReduce1.5.3數(shù)據(jù)流是事件(Event)的序列流Event是一個(gè)(K,A)元素,通EventType來標(biāo)示其類型KA分別表示這種類型的Event的若干個(gè)key和若干個(gè)attributekeyattribute都是tuple-valued,即key=value這種元組值。例如:EventType(EV): singsingElements(PE)S4中的基EventType(EV): singsingElements(PE)S4中的基本計(jì)算單元,一PE通過下面四個(gè)組件來表示functionalityPEJava類和相關(guān)配置來typesofevents:處理的EventType。keykey。key的值:關(guān)心(匹配)key每個(gè)PE只負(fù)責(zé)處理自己所關(guān)心的eventtype,并且只處理自己所對應(yīng)的key值的event,也就是說,只有當(dāng)eventtype,key,key的值都匹配時(shí),才會交由該P(yáng)E進(jìn)行計(jì)算處理。這里PE,則交由該P(yáng)E處理,如果沒PE。所以一PNPE可能有許多個(gè),這就需期對事件的key及其取值范圍進(jìn)行很好的劃分,否則可能為過多的PE導(dǎo)致系統(tǒng)效率降低,同時(shí)也應(yīng)該定期對使用率較低的PE進(jìn)行清除。但是由于數(shù)據(jù)存PE上添加優(yōu)先級等屬性,可清除PE始數(shù)據(jù),這PES4集群的輸入層,在這里原始事件會被賦予一個(gè)key以便于分發(fā)給后面的PE處理。PE處理后可能輸出一個(gè)或多event,輸出頻率在配置文件中定義,可以配置指定時(shí)間間面向業(yè)務(wù)方的組件,由業(yè)務(wù)方定義PE中對事件的處理和處理以后的輸出,剩下的事由 sing集群PN都是對等的,使得集群的部署EventListener負(fù)事件并轉(zhuǎn)PE容器singElementContainer,PEC)PECPE處理業(yè)務(wù)邏輯。配置文EventListener負(fù)事件并轉(zhuǎn)PE容器singElementContainer,PEC)PECPE處理業(yè)務(wù)邏輯。配置文屬性值會觸發(fā)一次操作,如果當(dāng)前沒有合適的PE處理該事件,則會根據(jù)該P(yáng)E原型創(chuàng)建新的對應(yīng)了該唯一屬性值的PE來對事件進(jìn)行處理。配置文件中S4集群所關(guān)心的key的集合,這里會通eventtype,key,key的值計(jì)PEC中有若干個(gè)PE分別對應(yīng)不同的情況,這里義的輸出方法可以輸出事件,事件交由Dispatcher與通訊層(CommunicationLayer)進(jìn)行交互Emiter輸出至邏輯節(jié)點(diǎn) 內(nèi)的PECommunication通訊層提供集群管理、故障恢復(fù)(failover)到備用節(jié)點(diǎn)、邏輯節(jié)點(diǎn)到物理節(jié)點(diǎn)。當(dāng)監(jiān)測到件故障時(shí),會自動(dòng)更理節(jié)點(diǎn)。通訊層隱藏使得PN發(fā)送消息時(shí)只需要關(guān)心邏輯節(jié)點(diǎn)而不用關(guān)心發(fā)送數(shù)據(jù)消息,這在S4中是可配置管理系統(tǒng)主要用于對集S4任務(wù)創(chuàng)建和銷毀集群,分配新的物理節(jié)點(diǎn)到S4任務(wù)集群中,空閑的集群可以作為冷備。這里的一致性保證交由ZooKeeper來做。S4系統(tǒng)的數(shù)據(jù)流整體上看起來類似下圖 對資源的調(diào)度和利S4目前的缺點(diǎn)在于它的數(shù)據(jù)傳輸可靠性還不夠,可能丟失數(shù)據(jù),同時(shí)由于數(shù)據(jù)存放在內(nèi)存。所以就目前來看,S4 對資源的調(diào)度和利S4目前的缺點(diǎn)在于它的數(shù)據(jù)傳輸可靠性還不夠,可能丟失數(shù)據(jù),同時(shí)由于數(shù)據(jù)存放在內(nèi)存。所以就目前來看,S4S4系統(tǒng)要求輸入的是事件流,這就涉及到事件的生成,所以在數(shù)據(jù)流入S4以前,必須有能將數(shù)據(jù)轉(zhuǎn)化為事件的系統(tǒng)進(jìn)行中間處理。S4了2TwiterHeronStorm并結(jié)合本課程的學(xué)說說你所理解的事實(shí)計(jì)算框架的當(dāng)前的發(fā)展方向和熱點(diǎn)微2TwiterHeronStorm并結(jié)合本課程的學(xué)說說你所理解的事實(shí)計(jì)算框架的當(dāng)前的發(fā)展方向和熱點(diǎn)微1在使用storm過程中發(fā)現(xiàn)了一些storm的弊Herons相對storm需storm的短stormworker調(diào)度策略非常復(fù)worker由操作系統(tǒng)調(diào)度,worker中的executor兩個(gè)線程,這些線程的調(diào)度就使用jvm預(yù)先設(shè)定的基于優(yōu)先級的調(diào)度策略,每個(gè)線程需要運(yùn)行多個(gè)task,excutor有需要根據(jù)輸入數(shù)據(jù)運(yùn)行合適的task。這個(gè)多層次的調(diào)度規(guī)則非常復(fù)雜,根本搞不清目前到底是那個(gè)task在被調(diào)度執(zhí)行。每個(gè)worker可能運(yùn)行完全不同的task,比如:一個(gè)kafkaspout,一個(gè)做關(guān)聯(lián)的bolt,和一個(gè)把題,如果有問題只能重啟topology,而重啟之后這幾個(gè)task又不見得會分配到worker同一個(gè)worker中的task的日志會打印在同一個(gè)文件中task的錯(cuò)誤日志非常難以查找。更有甚task有問題可能導(dǎo)worker進(jìn)程崩掉,導(dǎo)致task也不在資源分配方面,storm任務(wù)每個(gè)worker都是對等的,這個(gè)假設(shè)經(jīng)常會造成資源浪費(fèi),例如3個(gè)spouts1bolt,加入每個(gè)spoutbolt5G10G內(nèi)存這樣的話,topoogy必須為每個(gè)worker預(yù)留15G的內(nèi)存來跑一個(gè)spout和一個(gè)bolt,假如用戶設(shè)置worker數(shù)為2,那么worker就要總共預(yù)30G內(nèi)存是實(shí)際上只要3*51*1025G內(nèi)存就白5G題當(dāng)worker中的組建變得越來越來越復(fù)雜的時(shí)候回變得更tiwtter使用高級別抽DSLpig的同一套代碼可以同hadoop注:summingbirdtiwtter開源的類運(yùn)行的經(jīng)常會導(dǎo)致workerhearbeat超時(shí)supervisorworkerkill掉并重啟。這個(gè)導(dǎo)致問題stormworker使用一些線程tuple一個(gè)全局的接受線程負(fù)責(zé)接收上游數(shù)據(jù),一個(gè)全局的發(fā)送線程負(fù)責(zé)數(shù)據(jù)發(fā)送executor有一個(gè)logicthread執(zhí)行用戶代入一個(gè)worker到出來需要經(jīng)過4個(gè)線程轉(zhuǎn)發(fā)。stormnimus的一nimbus負(fù)責(zé)很多功能,包括:任務(wù)調(diào)度,任,分jar,而且作為metric信息的進(jìn)行一些metric信息的統(tǒng)計(jì)。當(dāng)topology變多的時(shí)候,nimbus會成為瓶頸nimbus的調(diào)度器不支worker細(xì)粒度的資topologyworker會運(yùn)行到同一個(gè)里機(jī)器可能會互相影響,如果每個(gè)機(jī)器上運(yùn)行一個(gè)worker又太浪費(fèi)資源了,及時(shí)使用stormyarn的模式也解決不stormzk里機(jī)器可能會互相影響,如果每個(gè)機(jī)器上運(yùn)行一個(gè)worker又太浪費(fèi)資源了,及時(shí)使用stormyarn的模式也解決不stormzk作所有的心跳信息,以及任務(wù)的分配信息topology變多的時(shí)zk注:在阿里巴巴的經(jīng)驗(yàn),機(jī)器到300臺,excutor到達(dá)10w的時(shí)候會出現(xiàn)成為瓶頸 uple,發(fā)送者會簡單的丟棄這些雖然這是個(gè)fail-fast的設(shè)計(jì),而且很簡單,不過會當(dāng)通知機(jī)制關(guān)閉的時(shí)候,會有很多的tuple被丟棄掉,而且很難看到這些丟棄的過程上游的計(jì)算隨著中間tuple的丟棄而丟失3)難。效 1)合適的重發(fā)—-tuple樹的任何地方出錯(cuò)都tuple 長時(shí)間的GC—-當(dāng)worker占用很多內(nèi)容時(shí),JVMGCtuple失敗隊(duì)列競爭—-一些情況下在transferqueueworker中跑很多executor4)題為了更好的理解cpu寫了一個(gè)簡單的程序接收所有的tuple并且使用thrift進(jìn)反序列化,這個(gè)過程消耗了25個(gè)使用90%cpu核,也就是說需要30%的核個(gè)6001/8. 一樣,那也只需要150個(gè)核。TwiterHeronStorm所作的改進(jìn)Heron設(shè)計(jì)原則:兼容storm實(shí)現(xiàn)2種策略AtmosteastAurora是一mesoschedulerHero基于Aurora實(shí)現(xiàn)了一Scheduler且這個(gè)調(diào)度器已經(jīng)提供了一定的抽象,可以移植到Aurora是一mesoschedulerHero基于Aurora實(shí)現(xiàn)了一Scheduler且這個(gè)調(diào)度器已經(jīng)提供了一定的抽象,可以移植到理第一個(gè)containerTopologyManager(TM)manager/MetricsManagerHeronInstance。這里一個(gè)container類似一個(gè)docker感念,表示一個(gè)資源集合,是Auroracontainer可以運(yùn)行在一臺機(jī)器上,分配多少containerAurora根據(jù)現(xiàn)有資源情況進(jìn)行分配,另外一個(gè)container設(shè)置了cgroup。TopologyManagertm伴隨整個(gè)topology生命周期,提供topology狀態(tài)的唯一contact(類似yarn的appmaster)。可以一主多備,大家zk節(jié)點(diǎn),誰勝出,誰為masterstandby。Stream最大的改變就是源自StreammanagerStreammanager就相當(dāng)于一個(gè)container的tuplehub 一個(gè)HI發(fā)送數(shù)據(jù)到另外一個(gè)HI,走的是本地快速通道rebufferTCP?SM和上游HIHIHItopology速度全部下架,并且長時(shí)間的降Spout這個(gè)機(jī)制是結(jié)合TCPSMHI進(jìn)行降級,停止從這些數(shù)據(jù)。并且受影響的SM會發(fā)送一個(gè)特殊的remessagesmspout進(jìn)行本地降級。一旦出問題的HISMremessageStage-by-Stage反Heronspout很快定位到那個(gè)HIsocketchannelbufferbuffer的queuesize超過警戒水位時(shí),觸發(fā)反壓,減少時(shí),接觸反壓。這種機(jī)制,不會丟棄tupleHerongatewaygatewaystormmetrics,然后發(fā)送給gateway線程。止從localgatewaygatewaystormmetrics,然后發(fā)送給gateway線程。止從local 的數(shù)據(jù)。執(zhí)行線程就不再emittuple量數(shù)據(jù)堆積無法發(fā)送出去,并觸發(fā)GC,列的capcity小于某個(gè)閥值時(shí),會緩慢增長到配置大小或最大capacity值。Metricsmonitor系統(tǒng)(ganglia系統(tǒng)),同樣也會給TMcontainerSMZKTMTM HI,hi三種failureTMcontainerTMTMZK上重新備,則備機(jī)會被promotion。所有SM會切到新的TMSMcontainerTM,SM如果HI系系統(tǒng)就介紹一下HerontopologyAuroraserviceloadbalanceinstance之可以提供RESTAPI系統(tǒng)就介紹一下HerontopologyAuroraserviceloadbalanceinstance之可以提供RESTAPI日志linkHeronUIUIVIZ提供全新的UI,可以看 性schedulercontainer的調(diào)度,這個(gè)調(diào)度非常的純粹,可以直接復(fù)用yarn/mesos/topology。這個(gè)TM就相當(dāng)于yarnappmaster,非常適合目前主流的調(diào)度系統(tǒng)。nimbus成topologynimbus,節(jié)省AuronJStorm的workercontainer和jstorm的workercgroup 但containerjstorm的workercontainercpucontainer還帶一定的supervisor的功能,當(dāng)container 責(zé)把它重啟,因此整個(gè)系統(tǒng)的心態(tài)邏輯會非常的簡單。?Auron<–>container,??Containerppt15通常情況性能應(yīng)該比JStorm還要差一點(diǎn)點(diǎn)。 SMSM的HI HIworkerworkerworkernettycontainerAuron的調(diào)度太粗粒度,一workerSMSM的HI HIworkerworkerworkernettycontainerAuron的調(diào)度太粗粒度,一worker信方式,IPC之

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論