有哪些大數(shù)據(jù)開發(fā)離線計(jì)算框架知識點(diǎn)-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、安陸ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的安陸網(wǎng)站制作公司

本篇文章給大家分享的是有關(guān)有哪些大數(shù)據(jù)開發(fā)離線計(jì)算框架知識點(diǎn),小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

  大數(shù)據(jù)開發(fā)離線計(jì)算框架知識點(diǎn)總結(jié),大數(shù)據(jù)在帶來發(fā)展機(jī)遇的同時,也帶來了新的挑戰(zhàn),催生了新技術(shù)的發(fā)展和舊技術(shù)的革新。大數(shù)據(jù)離線計(jì)算技術(shù)應(yīng)用于靜態(tài)數(shù)據(jù)的離線計(jì)算和處理,框架設(shè)計(jì)的初衷是為了解決大規(guī)模、非實(shí)時數(shù)據(jù)計(jì)算,更加關(guān)注整個計(jì)算框架的吞吐量。


  大數(shù)據(jù)離線計(jì)算框架介紹:


  一、MapReduce計(jì)算框架


  Hadoop是一個分布式系統(tǒng)架構(gòu),由Apache基金會所開發(fā),其核心主要包括兩個組件:HDFS和MapReduce,前者為海量存儲提供了存儲,而后者為海量的數(shù)據(jù)提供了計(jì)算。這里我們主要關(guān)注MapReduce。以下資料來源于Hadoop的官方說明文檔和論文。


  MapReduce是一個使用簡易的軟件框架,基于它寫出來的應(yīng)用程序能夠運(yùn)行在由上千個商用機(jī)器組成的大型集群上,并以一種可靠容錯的方式并行處理上T級別的數(shù)據(jù)集。將計(jì)算過程分為兩個階段,Map和Reduce,Map階段并行處理輸入的數(shù)據(jù),Reduce階段對Map結(jié)果進(jìn)行匯總。


  一個MapReduce作業(yè)通常會把輸入的數(shù)據(jù)集切分為若干獨(dú)立的數(shù)據(jù)塊,由Map任務(wù)以完全并行的方式處理它們??蚣軙ap的輸出先進(jìn)行排序,然后把結(jié)果輸入給Reduce任務(wù)。通常作業(yè)的輸入和輸出都會被存儲在文件系統(tǒng)中。整個框架負(fù)責(zé)任務(wù)的調(diào)度和監(jiān)控,以及重新執(zhí)行已經(jīng)失敗的任務(wù)。


  通常,MapReduce框架和分布式文件系統(tǒng)是運(yùn)行在一組相同的節(jié)點(diǎn)上的,也就是說,計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)通常在一起。這種配置允許框架在那些已經(jīng)存好數(shù)據(jù)的節(jié)點(diǎn)上高效地調(diào)度任務(wù),這可以使整個集群的網(wǎng)絡(luò)帶寬被非常高效地利用。


  MapReduce框架由一個單獨(dú)的master JobTracker 和每個集群節(jié)點(diǎn)一個slave TaskTracker共同組成。master負(fù)責(zé)調(diào)度構(gòu)成一個作業(yè)的所有任務(wù),這些任務(wù)分布在不同的slave上,master監(jiān)控它們的執(zhí)行,重新執(zhí)行已經(jīng)失敗的任務(wù)。而slave僅負(fù)責(zé)執(zhí)行由master指派的任務(wù)。


  應(yīng)用程序至少應(yīng)該指明輸入/輸出的路徑,并通過實(shí)現(xiàn)合適的接口或抽象類提供map和reduce函數(shù)。再加上其他作業(yè)的參數(shù),就構(gòu)成了作業(yè)配置。然后,Hadoop的Job Client提交作業(yè)和配置信息給JobTracker,后者負(fù)責(zé)分發(fā)這些軟件和配置信息給slave、調(diào)度任務(wù)并監(jiān)控它們的執(zhí)行,同時提供狀態(tài)和診斷信息給Job Client。


  應(yīng)用程序通常會通過提供map和reduce來實(shí)現(xiàn) Mapper和Reducer接口,它們組成作業(yè)的核心。map函數(shù)接受一個鍵值對,產(chǎn)生一組中間鍵值對。MapReduce框架會將map函數(shù)產(chǎn)生的中間鍵值對中鍵相同的值傳遞給一個reduce函數(shù)。reduce函數(shù)接受一個鍵,以及相關(guān)的一組值,將這組值進(jìn)行合并產(chǎn)生一組規(guī)模更小的值。


  如圖1所示,MapReduce的工作流程中,一切都是從最上方的user program開始的,user program鏈接了MapReduce庫,實(shí)現(xiàn)了最基本的Map函數(shù)和Reduce函數(shù)。圖中執(zhí)行的順序都用數(shù)字標(biāo)記了。

有哪些大數(shù)據(jù)開發(fā)離線計(jì)算框架知識點(diǎn)
  二、Spark計(jì)算框架


  Spark基于MapReduce算法實(shí)現(xiàn)的離線計(jì)算,擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的Map Reduce的算法。


  Spark中一個主要的結(jié)構(gòu)是RDD(Resilient Distributed Datasets),這是一種只讀的數(shù)據(jù)劃分,并且可以在丟失之后重建。它利用了Lineage的概念實(shí)現(xiàn)容錯,如果一個RDD丟失了,那么有足夠的信息支持RDD重建。RDD可以被認(rèn)為是提供了一種高度限制的共享內(nèi)存,但是這些限制可以使得自動容錯的開支變得很低。


  RDD使用Lineage的容錯機(jī)制,即每一個RDD都包含關(guān)于它是如何從其他RDD變換過來的以及如何重建某一塊數(shù)據(jù)的信息。RDD僅支持粗顆粒度變換,即僅記錄在單個塊上執(zhí)行的單個操作,然后創(chuàng)建某個RDD的變換序列存儲下來,當(dāng)數(shù)據(jù)丟失時,我們可以用變換序列來重新計(jì)算,恢復(fù)丟失的數(shù)據(jù),以達(dá)到容錯的目的。


  Spark中的應(yīng)用程序稱為驅(qū)動程序,這些驅(qū)動程序可實(shí)現(xiàn)在單一節(jié)點(diǎn)上執(zhí)行的操作或在一組節(jié)點(diǎn)上并行執(zhí)行的操作。驅(qū)動程序可以在數(shù)據(jù)集上執(zhí)行兩種類型的操作:動作和轉(zhuǎn)換。動作會在數(shù)據(jù)集上執(zhí)行一個計(jì)算,并向驅(qū)動程序返回一個值;而轉(zhuǎn)換會從現(xiàn)有數(shù)據(jù)集中創(chuàng)建一個新的數(shù)據(jù)集。動作的示例包括執(zhí)行一個Reduce操作以及在數(shù)據(jù)集上進(jìn)行迭代。轉(zhuǎn)換示例包括Map操作和Cache操作。


  與Hadoop類似,Spark支持單節(jié)點(diǎn)集群或多節(jié)點(diǎn)集群。對于多節(jié)點(diǎn)操作,Spark依賴于Mesos集群管理器。Mesos為分布式應(yīng)用程序的資源共享和隔離提供了一個有效平臺,參考圖2。

有哪些大數(shù)據(jù)開發(fā)離線計(jì)算框架知識點(diǎn)
  三、Dryad計(jì)算框架


  Dryad是構(gòu)建微軟云計(jì)算基礎(chǔ)設(shè)施的核心技術(shù)。編程模型相比MapReduce更具一般性——用有向無環(huán)圖(DAG)描述任務(wù)的執(zhí)行,其中用戶指定的程序是DAG圖的節(jié)點(diǎn),數(shù)據(jù)傳輸?shù)耐ǖ朗沁?,可通過文件、共享內(nèi)存或者傳輸控制協(xié)議(TCP)通道來傳遞數(shù)據(jù),任務(wù)相當(dāng)于圖的生成器,可以合成任何圖,甚至在執(zhí)行的過程中這些圖也可以發(fā)生變化,以響應(yīng)計(jì)算過程中發(fā)生的事件。圖3給出了整個任務(wù)的處理流程。


  Dryad在容錯方面支持良好,底層的數(shù)據(jù)存儲支持?jǐn)?shù)據(jù)備份;在任務(wù)調(diào)度方面,Dryad的適用性更廣,不僅適用于云計(jì)算,在多核和多處理器以及異構(gòu)集群上同樣有良好的性能;在擴(kuò)展性方面,可伸縮于各種規(guī)模的集群計(jì)算平臺,從單機(jī)多核計(jì)算機(jī)到由多臺計(jì)算機(jī)組成的集群,甚至擁有數(shù)千臺計(jì)算機(jī)的數(shù)據(jù)中心。Microsoft借助Dryad,在大數(shù)據(jù)處理方面也形成了完整的軟件棧,部署了分布式存系統(tǒng)Cosmos,提供DryadLINQ編程語言,使普通程序員可以輕易進(jìn)行大規(guī)模的分布式計(jì)算。

有哪些大數(shù)據(jù)開發(fā)離線計(jì)算框架知識點(diǎn)
  離線計(jì)算的數(shù)據(jù)量大且計(jì)算周期長,是在大量數(shù)據(jù)基礎(chǔ)上進(jìn)行復(fù)雜的批量運(yùn)算。離線計(jì)算的數(shù)據(jù)是不再會發(fā)生變化,通常離線計(jì)算的任務(wù)都是定時的,使用場景一般式對時效性要求比較低的。

以上就是有哪些大數(shù)據(jù)開發(fā)離線計(jì)算框架知識點(diǎn),小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

網(wǎng)站題目:有哪些大數(shù)據(jù)開發(fā)離線計(jì)算框架知識點(diǎn)-創(chuàng)新互聯(lián)
本文URL:http://bm7419.com/article48/dicshp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、微信公眾號、響應(yīng)式網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站收錄小程序開發(fā)

廣告

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

搜索引擎優(yōu)化