《大數(shù)據(jù)技術(shù)導(dǎo)論》課件-項(xiàng)目二_第1頁(yè)
《大數(shù)據(jù)技術(shù)導(dǎo)論》課件-項(xiàng)目二_第2頁(yè)
《大數(shù)據(jù)技術(shù)導(dǎo)論》課件-項(xiàng)目二_第3頁(yè)
《大數(shù)據(jù)技術(shù)導(dǎo)論》課件-項(xiàng)目二_第4頁(yè)
《大數(shù)據(jù)技術(shù)導(dǎo)論》課件-項(xiàng)目二_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本項(xiàng)目學(xué)習(xí)內(nèi)容包括:1.傳統(tǒng)數(shù)據(jù)處理平臺(tái)的缺陷,為什么要構(gòu)建大數(shù)據(jù)處理平臺(tái)。2.Hadoop簡(jiǎn)介和發(fā)展,Hadoop關(guān)鍵技術(shù)和相關(guān)組件3.大數(shù)據(jù)計(jì)算模式,大數(shù)據(jù)處理平臺(tái)架構(gòu)以及大數(shù)據(jù)處理流程。4.酷狗音樂和美圖大數(shù)據(jù)處理平臺(tái)架構(gòu)分析本項(xiàng)目學(xué)習(xí)主要內(nèi)容本項(xiàng)目思維導(dǎo)圖1.結(jié)構(gòu)化數(shù)據(jù)我們知道傳統(tǒng)的數(shù)據(jù)存儲(chǔ)大多使用關(guān)系數(shù)據(jù)庫(kù)來(lái)存儲(chǔ),比如MySQL,Oracle,SQLSever等。為什么呢?因?yàn)樗鼈兇蠖嗍墙Y(jié)構(gòu)化數(shù)據(jù)。結(jié)構(gòu)化的數(shù)據(jù)是指數(shù)據(jù)具有統(tǒng)一固定的結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)一般表現(xiàn)為二維表的形式,數(shù)據(jù)存儲(chǔ)一般使用關(guān)系型數(shù)據(jù)庫(kù)。關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)以行為單位,一行數(shù)據(jù)表示一個(gè)實(shí)體的信息(例如第一行是張三的個(gè)人信息),每個(gè)實(shí)體包含一個(gè)或多個(gè)屬性(例如name、age、sex),每個(gè)屬性用一列表示。每一行數(shù)據(jù)的屬性是相同的,即結(jié)構(gòu)統(tǒng)一。任務(wù)2-1了解構(gòu)建大數(shù)據(jù)處理平臺(tái)的原因2.1.1大數(shù)據(jù)時(shí)代的數(shù)據(jù)類型2.非結(jié)構(gòu)化數(shù)據(jù)而在大數(shù)據(jù)時(shí)代,數(shù)據(jù)產(chǎn)生方式增多,結(jié)構(gòu)化數(shù)據(jù)只占一小部分,數(shù)據(jù)大多為非結(jié)構(gòu)化和半結(jié)構(gòu)化。非結(jié)構(gòu)化數(shù)據(jù)顧名思義,就是沒有固定結(jié)構(gòu)的數(shù)據(jù)。常見的非結(jié)構(gòu)化數(shù)據(jù)有文本、圖形、圖片、視頻、語(yǔ)音等。非結(jié)構(gòu)化數(shù)據(jù)由于沒有固定結(jié)構(gòu),所以我們不能利用傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)來(lái)存儲(chǔ),必須存儲(chǔ)在特定的非結(jié)構(gòu)化數(shù)據(jù)庫(kù)(Nosql數(shù)據(jù)庫(kù))里面,比如MongoDB、Redis、HBase等。任務(wù)2-1了解構(gòu)建大數(shù)據(jù)處理平臺(tái)的原因3.半結(jié)構(gòu)化數(shù)據(jù)半結(jié)構(gòu)化數(shù)據(jù)是一類特殊的結(jié)構(gòu)化數(shù)據(jù)。它也具有特定的結(jié)構(gòu),但是這種結(jié)構(gòu)不適用關(guān)系數(shù)據(jù)庫(kù)保存,因?yàn)榘虢Y(jié)構(gòu)化數(shù)據(jù)允許實(shí)體具有不同的屬性,而關(guān)系數(shù)據(jù)庫(kù)實(shí)體必須具有相同屬性。常見的半結(jié)構(gòu)化數(shù)據(jù)有XML、HTML、JSON格式的文檔。例如下圖為一個(gè)XML文檔,文檔中保存有2條人員信息,第一條人員信息有name、age、gender三個(gè)屬性。而第二條人員信息和第一條人員信息結(jié)構(gòu)不一樣,除了具有name屬性外還具有height和local屬性,這兩條屬性是第一條人員信息所沒有的。任務(wù)2-1了解構(gòu)建大數(shù)據(jù)處理平臺(tái)的原因案例1:某公司電信公司業(yè)務(wù)部門需要10分鐘獲取一次呼叫服務(wù)中心的工作情況,并進(jìn)行分析和記錄,呼叫服務(wù)中心的數(shù)據(jù)量非常大。原有數(shù)據(jù)處理平臺(tái)效率跟不上。案例2:某公司需要進(jìn)行某月的業(yè)務(wù)數(shù)據(jù)分析。由于業(yè)務(wù)系統(tǒng)過多,同時(shí)各業(yè)務(wù)系統(tǒng)數(shù)據(jù)類型不同,數(shù)據(jù)類型涉及結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)。各業(yè)務(wù)系統(tǒng)也沒有實(shí)現(xiàn)數(shù)據(jù)共享。需要數(shù)據(jù)分析人員從多個(gè)系統(tǒng)中提取數(shù)據(jù),再進(jìn)行人為數(shù)據(jù)整合,把非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)變?yōu)榻Y(jié)構(gòu)化數(shù)據(jù)才能利用原有數(shù)據(jù)處理平臺(tái)進(jìn)行數(shù)據(jù)分析,工作效率極低。如果數(shù)據(jù)量較大或數(shù)據(jù)結(jié)構(gòu)較為復(fù)雜,人為數(shù)據(jù)整合根本無(wú)法進(jìn)行,且出錯(cuò)幾率很大。案例3:某公司隨著業(yè)務(wù)發(fā)展,業(yè)務(wù)網(wǎng)點(diǎn)分布地域性很廣,所有業(yè)務(wù)網(wǎng)點(diǎn)的數(shù)據(jù)都需要匯總到總公司數(shù)據(jù)處理平臺(tái)處理。原有數(shù)據(jù)處理平臺(tái)需要處理的數(shù)據(jù)量越來(lái)越大,歷史數(shù)據(jù)也越來(lái)越多,數(shù)據(jù)處理速度越來(lái)越低。綜上3個(gè)案例可以看出,傳統(tǒng)數(shù)據(jù)處理平臺(tái)在大數(shù)據(jù)時(shí)代將面臨哪些問題?任務(wù)2-1了解構(gòu)建大數(shù)據(jù)處理平臺(tái)的原因2.1.2傳統(tǒng)數(shù)據(jù)處理平臺(tái)遇到的問題問題1:由于傳統(tǒng)數(shù)據(jù)處理平臺(tái)多部署于單機(jī)環(huán)境下,用于處理結(jié)構(gòu)化數(shù)據(jù)。計(jì)算數(shù)據(jù)量也較小,數(shù)據(jù)存儲(chǔ)大多采用關(guān)系型數(shù)據(jù)庫(kù)。數(shù)據(jù)計(jì)算效率依賴單機(jī)的性能,數(shù)據(jù)處理速度方面存在瓶頸,對(duì)于大數(shù)據(jù)量的處理無(wú)法達(dá)到實(shí)時(shí)性要求。問題2:傳統(tǒng)的數(shù)據(jù)處理方法以計(jì)算為中心,所有數(shù)據(jù)必須匯總傳輸?shù)揭慌_(tái)機(jī)器進(jìn)行計(jì)算,計(jì)算完畢后再返回,增加了數(shù)據(jù)傳輸時(shí)間。隨著數(shù)據(jù)量的增加,處理速度會(huì)越來(lái)越慢。問題3:傳統(tǒng)數(shù)據(jù)處理平臺(tái)數(shù)據(jù)來(lái)源單一,多用于處理結(jié)構(gòu)化數(shù)據(jù),對(duì)于非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)無(wú)能為力。如何解決上述問題?任務(wù)2-1了解構(gòu)建大數(shù)據(jù)處理平臺(tái)的原因?qū)τ趩栴}1,我們考慮可以對(duì)單臺(tái)機(jī)器進(jìn)行擴(kuò)容,解燃眉之急。比如增加cpu核數(shù)、內(nèi)存、磁盤容量等。但是,當(dāng)處理數(shù)據(jù)量增加到一定的程度,單臺(tái)機(jī)器即使再擴(kuò)容也會(huì)達(dá)到性能的瓶頸。cpu核數(shù)、內(nèi)存、磁盤容量不可能無(wú)限制的增加,這時(shí)我們?cè)撛趺崔k?對(duì)于問題2,為了減少數(shù)據(jù)傳輸時(shí)間,我們可以考慮每個(gè)業(yè)務(wù)網(wǎng)點(diǎn)部署一臺(tái)機(jī)器,把現(xiàn)有的業(yè)務(wù)處理平臺(tái)搭建在各個(gè)業(yè)務(wù)網(wǎng)點(diǎn),進(jìn)行數(shù)據(jù)的本地化處理。但是隨著數(shù)據(jù)量的增加,我們?nèi)匀粫?huì)陷入單機(jī)性能瓶頸問題。同時(shí),各個(gè)業(yè)務(wù)網(wǎng)點(diǎn)數(shù)據(jù)處理平臺(tái)之間如何交互實(shí)現(xiàn)數(shù)據(jù)共享又是一個(gè)新問題。對(duì)于問題3,我們可以在現(xiàn)有數(shù)據(jù)處理平臺(tái)上新增部分功能模塊,使之能夠處理非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù),但是仍然會(huì)陷入問題1和問題2。尤其是對(duì)海量的視頻和圖像處理,單機(jī)處理的壓力非常大。綜上所述,傳統(tǒng)的數(shù)據(jù)處理平臺(tái)已經(jīng)不適用于大數(shù)據(jù)時(shí)代了。任務(wù)2-1了解構(gòu)建大數(shù)據(jù)處理平臺(tái)的原因

為了解決傳統(tǒng)數(shù)據(jù)處理平臺(tái)遇到的問題,大數(shù)據(jù)處理平臺(tái)具有以下特點(diǎn)。1.分布式數(shù)據(jù)計(jì)算

把一個(gè)大的數(shù)據(jù)集分割成許多小數(shù)據(jù)集保存在不同的機(jī)器上,然后把整個(gè)大的數(shù)據(jù)計(jì)算任務(wù)分成很多小任務(wù)再分給多臺(tái)機(jī)器同時(shí)計(jì)算。這樣多臺(tái)機(jī)器組成一個(gè)計(jì)算集群,就稱為分布式計(jì)算集群。在現(xiàn)實(shí)中,我們可以利用多臺(tái)配置一般的機(jī)器組建一個(gè)計(jì)算集群,這個(gè)集群的計(jì)算性能會(huì)高于單個(gè)配置很好的機(jī)器。任務(wù)2-1了解構(gòu)建大數(shù)據(jù)處理平臺(tái)的原因2.1.3大數(shù)據(jù)處理平臺(tái)2.動(dòng)態(tài)擴(kuò)展性

傳統(tǒng)數(shù)據(jù)計(jì)算采用單機(jī)模式擴(kuò)展性非常有限。不過就算我們利用100臺(tái)高性能機(jī)器組建數(shù)據(jù)計(jì)算集群,隨著數(shù)據(jù)量的逐漸增加,平臺(tái)最終還是會(huì)達(dá)到一個(gè)數(shù)據(jù)計(jì)算的飽和狀態(tài)。如何繼續(xù)提升該平臺(tái)數(shù)據(jù)計(jì)算性能呢?我需要繼續(xù)向該計(jì)算集群中增加新的機(jī)器,擴(kuò)展整個(gè)集群的機(jī)器數(shù)量,以達(dá)到提升集群數(shù)據(jù)計(jì)算性能目的。這就要求集群要具有動(dòng)態(tài)擴(kuò)展性,當(dāng)集群數(shù)據(jù)計(jì)算效率不滿足時(shí),我們能夠不斷的往集群里面新增機(jī)器并使之能夠融入集群管理,提升集群數(shù)據(jù)計(jì)算規(guī)模和計(jì)算并發(fā)性。任務(wù)2-1了解構(gòu)建大數(shù)據(jù)處理平臺(tái)的原因3.容錯(cuò)性

集群中多臺(tái)機(jī)器共同計(jì)算數(shù)據(jù),如果出現(xiàn)某一臺(tái)機(jī)器計(jì)算出錯(cuò)、掉電或突然損壞,這時(shí)候怎么辦,數(shù)據(jù)是否會(huì)丟失?整個(gè)數(shù)據(jù)處理過程會(huì)不會(huì)前功盡棄,需要從頭再來(lái)?這時(shí)就需要我們計(jì)算集群具有容錯(cuò)性,如果出現(xiàn)某臺(tái)機(jī)器出錯(cuò),集群要具有自動(dòng)恢復(fù)能力,在不中斷整個(gè)集群計(jì)算任務(wù)的前提下,使之重新計(jì)算這部分出錯(cuò)的數(shù)據(jù)。如果出現(xiàn)某臺(tái)機(jī)器突然掉電或損壞,則集群能夠在不中斷整個(gè)集群計(jì)算任務(wù)的前提下,自動(dòng)分配該機(jī)器的計(jì)算數(shù)據(jù)和計(jì)算任務(wù)給其他的機(jī)器。4.I/O傳輸速度快

我們知道分布式數(shù)據(jù)計(jì)算地?cái)?shù)據(jù)量很大,涉及集群中多臺(tái)機(jī)器的數(shù)據(jù)傳輸和任務(wù)分配,那么高速的I/O傳輸就是集群快速計(jì)算任務(wù)的根本保障。任務(wù)2-1了解構(gòu)建大數(shù)據(jù)處理平臺(tái)的原因1.Hadoop的簡(jiǎn)介

Hadoop是一個(gè)虛構(gòu)的名字,是Hadoop之父道格·卡亭以兒子的玩具象命名的。Hadoop作為最早的大數(shù)據(jù)生態(tài)系統(tǒng),在大數(shù)據(jù)技術(shù)發(fā)展歷程中具有舉足輕重的地位。現(xiàn)在許多企業(yè)的大數(shù)據(jù)處理平臺(tái)也都能看到Hadoop的身影。Hadoop是Apache基金會(huì)開發(fā)的一款開源的大規(guī)模數(shù)據(jù)處理軟件平臺(tái),采用Java語(yǔ)言進(jìn)行開發(fā),用于對(duì)海量數(shù)據(jù)(TB級(jí)以上)進(jìn)行高效的存儲(chǔ)、管理和分析。Hadoop生態(tài)系統(tǒng)是以分布式文件系統(tǒng)(HadoopDistributeFileSystem,HDFS)和MapReduce(GoogleMapReduce)為核心技術(shù),同時(shí)融合一些支持Hadoop的其他通用工具共同組成的一個(gè)分布式計(jì)算系統(tǒng)。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop2.2.1Hadoop的簡(jiǎn)介和發(fā)展2.Hadoop的發(fā)展任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop

目前市面上Hadoop存在3個(gè)版本,分別是1.x(由0.20.x發(fā)行版系列的延續(xù))、2.x(由0.23.x發(fā)行版系列的延續(xù))、3.x(該版本基于JDK1.8,不支持JDK1.7),Hadoop的高版本不一定兼容同低版本。Hadoop版本對(duì)應(yīng)的JDK版本如表2-1所示。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—HadoopHadoop的設(shè)計(jì)思想如下。1.能夠大幅度降低高性能計(jì)算成本

用戶可以通過家庭或者工作中普通的PC機(jī)組成大數(shù)據(jù)服務(wù)集群,集群節(jié)點(diǎn)數(shù)量根據(jù)機(jī)器性能可以達(dá)到數(shù)千個(gè)。不必花費(fèi)高昂的代價(jià)去購(gòu)買集群服務(wù)器用于環(huán)境搭建。使高性能計(jì)算實(shí)現(xiàn)成本降低,適用面更廣泛。2.具有良好的穩(wěn)定性和可靠性

爭(zhēng)對(duì)集群中單個(gè)或多個(gè)服務(wù)器節(jié)點(diǎn)失效問題,Hadoop具有自動(dòng)維護(hù)數(shù)據(jù)的多份復(fù)本,同時(shí)在任務(wù)失敗后能夠重新部署計(jì)算任務(wù)的機(jī)制,從而保障了服務(wù)器集群的穩(wěn)定性和可靠性。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop2.2.2Hadoop的設(shè)計(jì)思想和特點(diǎn)3.能夠大幅度提高數(shù)據(jù)計(jì)算和存儲(chǔ)效率Hadoop采用并行數(shù)據(jù)處理機(jī)制,把海量數(shù)據(jù)分割成多個(gè)小型的數(shù)據(jù)塊,并通過數(shù)據(jù)分發(fā)機(jī)制,把數(shù)據(jù)分發(fā)給集群上面的其他節(jié)點(diǎn)進(jìn)行處理,減少了系統(tǒng)對(duì)于海量數(shù)據(jù)存儲(chǔ)和處理的時(shí)間。4.以計(jì)算為中心

秉承機(jī)柜內(nèi)數(shù)據(jù)傳輸速度大于機(jī)柜間傳輸速度的思想(即移動(dòng)計(jì)算比移動(dòng)數(shù)據(jù)更高效),對(duì)于海量數(shù)據(jù)采用“一次寫,多次讀”的方式,使文件不會(huì)被頻繁寫入和修改,保證了集群各個(gè)節(jié)點(diǎn)的數(shù)據(jù)處理的高效性。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop基于以上4點(diǎn)的設(shè)計(jì)思想,Hadoop具有以下特點(diǎn)。1.高擴(kuò)展性Hadoop是一個(gè)可擴(kuò)展的存儲(chǔ)平臺(tái),通過數(shù)據(jù)的存儲(chǔ)分發(fā)機(jī)制,使得整個(gè)集群具備處理海量數(shù)據(jù)的能力,通過集成Hbase,Hive等通用工具解決了傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)不能處理大量數(shù)據(jù)的問題。同時(shí)集群的節(jié)點(diǎn)數(shù)量可以擴(kuò)展,使用戶可以通過擴(kuò)展節(jié)點(diǎn)數(shù)量能夠達(dá)到處理PB,TB級(jí)別數(shù)據(jù)的能力。2.低成本

用戶可以通過普通的PC機(jī)組成服務(wù)器集群來(lái)處理海量數(shù)據(jù),集群節(jié)點(diǎn)可擴(kuò)展至幾千個(gè),節(jié)省了集群搭建的硬件開支,同時(shí)Hadoop是一款開源的框架,項(xiàng)目的軟件成本也大大降低。企業(yè)用戶可以通過低投入的集群搭建實(shí)現(xiàn)公司日常海量數(shù)據(jù)的高速存儲(chǔ)和處理。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop3.高靈活性Hadoop能夠輕松訪問數(shù)據(jù)源,處理不同種類的數(shù)據(jù),從海量數(shù)據(jù)中提取出有價(jià)值的數(shù)據(jù),在企業(yè)中用途十分廣泛。4.高效性

傳統(tǒng)的數(shù)據(jù)處理方式,對(duì)于海量數(shù)據(jù)的處理是一個(gè)漫長(zhǎng)的過程,Hadoop通過數(shù)據(jù)分發(fā)和存儲(chǔ)機(jī)制,對(duì)數(shù)據(jù)進(jìn)行并行處理,能夠有效的在幾分鐘的時(shí)間內(nèi)處理TB級(jí)別的數(shù)據(jù),極大的增強(qiáng)了數(shù)據(jù)處理的效率。5.高容錯(cuò)性

當(dāng)數(shù)據(jù)被發(fā)送到一個(gè)節(jié)點(diǎn)時(shí),該數(shù)據(jù)也同時(shí)備份成多個(gè)副本同步發(fā)送到集群中其他節(jié)點(diǎn)。如果當(dāng)前節(jié)點(diǎn)發(fā)生故障或者數(shù)據(jù)損壞,Hadoop能夠立刻將失敗的任務(wù)重新分配給其他節(jié)點(diǎn),保證了集群的穩(wěn)定性和健壯性。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop

Hadoop的兩大基礎(chǔ)組件為分布式文件系統(tǒng)HDFS和MapReduce計(jì)算框架。Hadoop的運(yùn)行原理就是通過HDFS把海量級(jí)數(shù)據(jù)或文件分割成許多小的數(shù)據(jù)塊,并把這些數(shù)據(jù)塊分發(fā)到集群中相應(yīng)的節(jié)點(diǎn)機(jī)器上執(zhí)行,然后通過MapReduce計(jì)算框架進(jìn)行數(shù)據(jù)批量處理,處理完畢后再將處理結(jié)果匯總輸出。

1.分布式文件系統(tǒng)HDFSHDFS架構(gòu)采用主從(Master/Slave)架構(gòu),一個(gè)HDFS集群由一個(gè)主節(jié)點(diǎn)(NameNode)和若干個(gè)從節(jié)點(diǎn)(DataNode)組成。其中,NameNode作為主服務(wù)器,管理文件系統(tǒng)命名空間和客戶端對(duì)文件的訪問操作。DataNode管理存儲(chǔ)的具體數(shù)據(jù)。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop2.2.3Hadoop兩大基礎(chǔ)組件

在實(shí)際運(yùn)用中,NameNode和DataNode通常部署在普通的PC機(jī)上,一臺(tái)PC機(jī)運(yùn)行NameNode實(shí)例,其他PC機(jī)運(yùn)行DataNode實(shí)例。NameNode只作元數(shù)據(jù)管理者,不進(jìn)行用戶數(shù)據(jù)讀寫,用戶數(shù)據(jù)讀寫全部通過DataNode完成。Hadoop的發(fā)展經(jīng)歷過Hadoop1.x、Hadoop2.x和Hadoop3.x三個(gè)階段。Hadoop1.x版本的HDFS架構(gòu)如下。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—HadoopHadoop1.x架構(gòu)存在什么問題?Hadoop1.x采用單NameNode節(jié)點(diǎn)進(jìn)行統(tǒng)一調(diào)度。給集群帶來(lái)了隱患,如果NameNode故障,整個(gè)集群就無(wú)法正常工作。所以Hadoop2.x在1.x的基礎(chǔ)上做了一些改進(jìn),形成了HDFS2架構(gòu)。在HDFS2架構(gòu)中,引入了HDFS聯(lián)邦機(jī)制。整個(gè)集群可以設(shè)置2個(gè)NameNode。每個(gè)NameNode用一個(gè)唯一的命名空間來(lái)標(biāo)識(shí),每個(gè)DataNode要向集群中所有的NameNode注冊(cè)。如果某個(gè)NamNode故障,DataNode可以向其他的NameNode提供數(shù)據(jù)讀/寫服務(wù),不會(huì)影響集群的正常運(yùn)行,這樣增加了集群的穩(wěn)定性和健壯性。在Hadoop3.x版本中,NameNode的數(shù)量可以為多個(gè)。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop

2.MapReduceMapReduce是Hadoop里面的一個(gè)分布式并行計(jì)算框架,用以進(jìn)行大規(guī)模數(shù)據(jù)的離線批量計(jì)算。在Hadoop體系中,MapReduce計(jì)算框架是構(gòu)建在HDFS之上的。MapReduce運(yùn)行任務(wù)采用“分而治之”的思想,即把一個(gè)大的任務(wù)拆解成許多個(gè)小任務(wù)并行處理。MapReduce任務(wù)處理分為Map和Reduce兩個(gè)階段。其中,Map階段對(duì)數(shù)據(jù)集上的獨(dú)立元素進(jìn)行指定的操作,生成鍵值對(duì)形式中間結(jié)果。Reduce階段則對(duì)中間結(jié)果中相同“鍵”的所有“值”進(jìn)行規(guī)約,以得到最終結(jié)果。MapReduce這樣的功能劃分很適合執(zhí)行分布式并行數(shù)據(jù)處理任務(wù)。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—HadoopMapReduce整個(gè)架構(gòu)主要由三部分組成,即編程模型、數(shù)據(jù)處理引擎和運(yùn)行時(shí)環(huán)境。由于Hadoop有1.x和2.x兩個(gè)版本,因此,MapReduce也有2個(gè)版本,即MRv1和MRv2版本,分別對(duì)應(yīng)Hadoop的1.x和2.x。

在Hadoop1.x版本中MapReduce的運(yùn)行環(huán)境采用Master/Slave(M/S)架構(gòu),該架構(gòu)主要由客戶端(Client)、作業(yè)跟蹤進(jìn)程(JobTracker)、任務(wù)跟蹤進(jìn)程(TaskTracker)和任務(wù)(Task)組成。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—HadoopMRv1架構(gòu)存在什么問題?MRv1架構(gòu)存在一個(gè)問題,即一個(gè)JobTracker要管理所有的Task,這樣會(huì)造成負(fù)載過重的問題。MRv2版本對(duì)此做了改進(jìn),在MRv2版本中,MapReduce框架舍棄了JobTracker和TaskTracker,引入了一個(gè)新的資源管理平臺(tái)Yarn。在Yarn的架構(gòu)下,TaskTracker被拆成2部分資源管理器(ResourceManager)和應(yīng)用程序管理器(ApplicationMaster)。ResourceManager負(fù)責(zé)資源分配,ApplicationMaster進(jìn)行單一任務(wù)管理和向ResourceManager申請(qǐng)資源。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—HadoopMRv1對(duì)比MRv2

1.整體框架方面Hadoop1.x是由HDFS和MR組成的,HDFS是由一個(gè)NameNode和多個(gè)DataNode組成。MapReduce由一個(gè)JobTracker和TaskTracker組成,架構(gòu)都是主從架構(gòu)。而Hadoop2.x在Hadoop1.x的基礎(chǔ)上又優(yōu)化了以下2點(diǎn)內(nèi)容。(1)引入HDFS聯(lián)邦機(jī)制解決了Hadoop1.x的單點(diǎn)故障問題,它讓兩個(gè)NameNode分管不同的目錄進(jìn)而實(shí)現(xiàn)訪問隔離和橫向擴(kuò)展。(2)將JobTracker中的資源管理和作業(yè)控制分開,資源管理和作業(yè)控制分別由ResourceManager和ApplicationMaster實(shí)現(xiàn)。(3)Yarn作為Hadoop2.x中的資源管理系統(tǒng),它是一個(gè)通用的資源管理模塊,我們不僅僅可以在Yarn上運(yùn)行MR,也可以在上面運(yùn)行其他大數(shù)據(jù)計(jì)算框架

2.從計(jì)算框架方面MapReduce的基本編程模型是將問題抽象成Map和Reduce兩個(gè)階段,其中Map階段將輸入的數(shù)據(jù)解析成key—value形式的鍵值對(duì),迭代調(diào)用map()函數(shù)處理后,再以key—value的形式輸出到本地目錄,Reduce階段將key相同的value進(jìn)行規(guī)約處理,并將最終結(jié)果寫到HDFS上;它的數(shù)據(jù)處理引擎由MapTask和ReduceTask組成,分別負(fù)責(zé)Map階段邏輯和Reduce階段的邏輯處理;MRv2具有與MRv1相同的編程模型和數(shù)據(jù)處理引擎,唯一不同的是運(yùn)行時(shí)環(huán)境。MRv2引入了全新的資源管理框架Yarn進(jìn)行資源管理,它的運(yùn)行時(shí)環(huán)境不再只由JobTracker和TaskTracker等服務(wù)組成,而是由資源管理系統(tǒng)Yarn和作業(yè)控制進(jìn)程ApplicationMaster組成,其中Yarn負(fù)責(zé)資源管理的調(diào)度而ApplicationMaster類似于JobTracker負(fù)責(zé)作業(yè)管理。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop

目前,Hadoop已經(jīng)發(fā)展成為包含很多項(xiàng)目的集合,形成了一個(gè)以Hadoop為中心的生態(tài)系統(tǒng),為用戶提供了更加豐富的高層服務(wù)。HadoopMRv1版本生態(tài)系統(tǒng)如下。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop2.2.4Hadoop生態(tài)系統(tǒng)架構(gòu)和其他組件1.底層

底層結(jié)構(gòu)包括HDSF,MapReduce和Zookeeper。其中,HDFS是Hadoop分布式文件存儲(chǔ)系統(tǒng)。MapReduce是Hadoop的分布式并行運(yùn)算框架。Zookeeper是一種基于HDFS和Hbase的開源的分布式協(xié)調(diào)服務(wù)組件。

2.數(shù)據(jù)收集處理轉(zhuǎn)換層數(shù)據(jù)收集處理轉(zhuǎn)換層結(jié)構(gòu)包括HBase、Hive、Pig、Mahout、Sqoop和Flume。HBase(分布式列存數(shù)據(jù)庫(kù))是一個(gè)針對(duì)結(jié)構(gòu)化數(shù)據(jù)的可伸縮、高可靠、高性能、分布式和面向列的動(dòng)態(tài)模式數(shù)據(jù)庫(kù)。Hive是一種基于平面文件而構(gòu)建的分布式數(shù)據(jù)倉(cāng)庫(kù)。Pig是一種基于大數(shù)據(jù)集的批量數(shù)據(jù)處理平臺(tái)。Sqoop是一個(gè)數(shù)據(jù)接口,主要用來(lái)對(duì)HDFS和傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行數(shù)據(jù)傳輸。Flume是一種分布式海量日志采集和傳輸?shù)南到y(tǒng)。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop3.數(shù)據(jù)挖掘?qū)?/p>

數(shù)據(jù)挖掘?qū)又饕抢脭?shù)據(jù)挖掘組件Mahout執(zhí)行數(shù)據(jù)挖掘任務(wù)。Mahout是Apache旗下的一個(gè)開源算法庫(kù),主要用來(lái)做數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí),Mahout中包含許多已實(shí)現(xiàn)的算法,例如分類、回歸、聚類、協(xié)同過濾等。傳統(tǒng)的Mahout是提供的是Java的API,用戶應(yīng)用會(huì)編譯成MapReduce的job,運(yùn)行在MapReduce的框架上,計(jì)算效率低。現(xiàn)在,Spark的出現(xiàn)基本替代了MapReduce,Mahout也已經(jīng)停止接受新的MapReduce算法了,轉(zhuǎn)向支持Spark。4.監(jiān)控和運(yùn)維層

監(jiān)控和運(yùn)維層主要是利用監(jiān)控和運(yùn)維組件對(duì)整個(gè)集群資源調(diào)度和任務(wù)運(yùn)行進(jìn)行監(jiān)控。在MRv1中一般使用Ambari來(lái)對(duì)集群進(jìn)行監(jiān)控。Ambari是一款Hadoop集群監(jiān)控工具,提供對(duì)Hadoop集群進(jìn)行部署,配置,升級(jí)和監(jiān)控的服務(wù)。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—HadoopHadoopMRv2版本生態(tài)系統(tǒng)在MRv1的基礎(chǔ)上引入了Yarn框架進(jìn)行集群的資源管理調(diào)度,支持MR批量計(jì)算的同時(shí),也支持Strom、Spark-Streaming、Flink等實(shí)時(shí)大數(shù)據(jù)計(jì)算框架和機(jī)器學(xué)習(xí)任務(wù)。MRv2版本生態(tài)系統(tǒng)如下。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop

下面簡(jiǎn)單介紹MRv2版本中引入的一些計(jì)算框架。1.StromStorm是Twitter開源的一個(gè)大數(shù)據(jù)分布式實(shí)時(shí)計(jì)算系統(tǒng),Strom用于處理實(shí)時(shí)流式數(shù)據(jù),實(shí)時(shí)數(shù)據(jù)處理性能可以達(dá)到毫秒級(jí)。

2.Spark

Spark是一種基于內(nèi)存計(jì)算的大數(shù)據(jù)分布式并行計(jì)算框架,是當(dāng)代最火爆的大數(shù)據(jù)處理技術(shù)之一。Spark基于內(nèi)存的計(jì)算和DAG有向無(wú)環(huán)圖的任務(wù)優(yōu)化機(jī)制使之與MapReduce相比計(jì)算速度要快100倍以上。

3.Tez

Tez是Apache旗下支持DAG作業(yè)的開源計(jì)算框架,Spark中的DAG也來(lái)源于此。Tez可以將多個(gè)有依賴的作業(yè)轉(zhuǎn)換為一個(gè)作業(yè)從而大幅提升DAG作業(yè)的性能。任務(wù)2-2認(rèn)識(shí)最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop任務(wù)2-3熟悉大數(shù)據(jù)處理平臺(tái)架構(gòu)2.3.1幾種大數(shù)據(jù)計(jì)算模式場(chǎng)景1:某公司領(lǐng)導(dǎo)需要對(duì)公司數(shù)據(jù)庫(kù)三年的銷售數(shù)據(jù)做匯總,從中獲取信息并輔助他制定公司未來(lái)發(fā)展戰(zhàn)略決策。數(shù)據(jù)總量大約800GB,要求3天內(nèi)必須匯總出結(jié)果。場(chǎng)景2:某電商公司需要根據(jù)用戶在購(gòu)物網(wǎng)站上的實(shí)時(shí)點(diǎn)擊商品內(nèi)容,實(shí)現(xiàn)智能推薦,用戶實(shí)時(shí)點(diǎn)擊數(shù)據(jù)量高峰為10G/秒,要求數(shù)據(jù)處理和智能推薦系統(tǒng)出結(jié)果加起來(lái)時(shí)長(zhǎng)必須在幾秒之內(nèi)。場(chǎng)景3:某公司擁有幾萬(wàn)家下屬門店,總部數(shù)據(jù)分析人員查找公司3年內(nèi)銷售額最高的門店。數(shù)據(jù)量為50G,要求查詢響應(yīng)時(shí)間不能超過2分鐘。場(chǎng)景4:一個(gè)商品推銷員要去若干個(gè)城市推銷商品,該推銷員從一個(gè)城市出發(fā),需要經(jīng)過所有城市后,回到出發(fā)地。應(yīng)如何選擇行進(jìn)路線,以使總的行程最短。任務(wù)2-3熟悉大數(shù)據(jù)處理平臺(tái)架構(gòu)以上4種是我們社會(huì)生活中4種非常常見的場(chǎng)景,爭(zhēng)對(duì)這4種場(chǎng)景的大數(shù)據(jù)處理,我們有4種不同的計(jì)算模式。場(chǎng)景1爭(zhēng)對(duì)是大規(guī)模數(shù)據(jù)的批量計(jì)算,實(shí)時(shí)性要求不高??梢圆捎么髷?shù)據(jù)批處理計(jì)算模式。場(chǎng)景2爭(zhēng)對(duì)是大規(guī)模數(shù)據(jù)的實(shí)時(shí)計(jì)算,實(shí)時(shí)性要求非常高??梢圆捎么髷?shù)據(jù)流計(jì)算模式。場(chǎng)景3爭(zhēng)對(duì)是大規(guī)模數(shù)據(jù)的交互查詢,實(shí)時(shí)性要求比較高。可以采用大數(shù)據(jù)查詢分析計(jì)算模式。場(chǎng)景4爭(zhēng)對(duì)是大規(guī)模數(shù)據(jù)的關(guān)系結(jié)構(gòu)計(jì)算,在很多組合方案中,尋求組合最優(yōu)解,可以采用大數(shù)據(jù)圖計(jì)算模式。任務(wù)2-3熟悉大數(shù)據(jù)處理平臺(tái)架構(gòu)

大數(shù)據(jù)的4種計(jì)算模式如下。任務(wù)2-3熟悉大數(shù)據(jù)處理平臺(tái)架構(gòu)2.3.2大數(shù)據(jù)處理平臺(tái)基本架構(gòu)及數(shù)據(jù)處理流程通用的大數(shù)據(jù)處理平臺(tái)架構(gòu)如右圖。主要分為數(shù)據(jù)采集層、數(shù)據(jù)儲(chǔ)存與數(shù)據(jù)處理層、數(shù)據(jù)分析與應(yīng)用3個(gè)層面。任務(wù)2-3熟悉大數(shù)據(jù)處理平臺(tái)架構(gòu)

1.數(shù)據(jù)采集與預(yù)處理層

數(shù)據(jù)采集與預(yù)處理層主要功能為從不同數(shù)據(jù)源采集初始數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行初步預(yù)處理,即數(shù)據(jù)的抽取、轉(zhuǎn)換、加載(ETL)。2.數(shù)據(jù)儲(chǔ)存與數(shù)據(jù)處理層數(shù)據(jù)采集與預(yù)處理層主要功能為對(duì)數(shù)據(jù)采集與預(yù)處理層的傳輸?shù)臄?shù)據(jù)進(jìn)行數(shù)據(jù)計(jì)算并存儲(chǔ)。3.數(shù)據(jù)分析應(yīng)用層

數(shù)據(jù)分析應(yīng)用層主要功能為根據(jù)業(yè)務(wù)需求對(duì)數(shù)據(jù)儲(chǔ)存與數(shù)據(jù)處理層的數(shù)據(jù)提供交互查詢分析、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、數(shù)據(jù)可視化等服務(wù)。任務(wù)2-3熟悉大數(shù)據(jù)處理平臺(tái)架構(gòu)2.3.3五種主流大數(shù)據(jù)處理平臺(tái)架構(gòu)1.傳統(tǒng)大數(shù)據(jù)架構(gòu)

傳統(tǒng)大數(shù)據(jù)架構(gòu)主要為了解決傳統(tǒng)BI的問題,傳統(tǒng)BI經(jīng)過長(zhǎng)期的發(fā)展已經(jīng)形成了一套成熟和穩(wěn)定的系統(tǒng),但是隨著大數(shù)據(jù)時(shí)代的到來(lái),傳統(tǒng)BI系統(tǒng)遇到諸多挑戰(zhàn)。面對(duì)大規(guī)模的結(jié)構(gòu)化數(shù)據(jù)和文件、圖片、視頻等非結(jié)構(gòu)化數(shù)據(jù)的沖擊,傳統(tǒng)BI遇到性能瓶頸問題。因此,我們必須對(duì)傳統(tǒng)BI系統(tǒng)進(jìn)行升級(jí)改造,引入大數(shù)據(jù)處理技術(shù)搭建架構(gòu),稱之為傳統(tǒng)大數(shù)據(jù)架構(gòu)。任務(wù)2-3熟悉大數(shù)據(jù)處理平臺(tái)架構(gòu)2.流式架構(gòu)

隨著大數(shù)據(jù)時(shí)代的發(fā)展和傳感器的廣泛應(yīng)用,出現(xiàn)了越來(lái)越多的實(shí)時(shí)處理數(shù)據(jù)需求,比如實(shí)時(shí)監(jiān)控預(yù)警,實(shí)時(shí)路徑規(guī)劃,實(shí)時(shí)在線報(bào)表等。傳統(tǒng)大數(shù)據(jù)架構(gòu)為批量數(shù)據(jù)處理,實(shí)時(shí)性無(wú)法滿足。這時(shí)就需要搭建能夠?qū)?shù)據(jù)進(jìn)行實(shí)時(shí)處理,時(shí)延小的系統(tǒng)架構(gòu),這就是流式架構(gòu)。任務(wù)2-3熟悉大數(shù)據(jù)處理平臺(tái)架構(gòu)3.Lambda架構(gòu)

如果一個(gè)大數(shù)據(jù)處理系統(tǒng)需要對(duì)數(shù)據(jù)實(shí)時(shí)處理,同時(shí)又需要支持對(duì)歷史數(shù)據(jù)統(tǒng)計(jì)分析和重演,那怎么辦?我們可以考慮把傳統(tǒng)大數(shù)據(jù)架構(gòu)和流式架構(gòu)結(jié)合起來(lái)搭建一個(gè)新的大數(shù)據(jù)處理系統(tǒng)。這個(gè)系統(tǒng)所采用的架構(gòu)稱之為L(zhǎng)ambda架構(gòu)任務(wù)2-3熟悉大數(shù)據(jù)處理平臺(tái)架構(gòu)4.Kappa架構(gòu)

為什么會(huì)出現(xiàn)Kappa架構(gòu)?Lambda架構(gòu)運(yùn)用非常廣泛,也能解決大多數(shù)業(yè)務(wù)場(chǎng)景的實(shí)時(shí)和批量處理需求。但是Lambda架構(gòu)也有其自身不足。Lambda查詢結(jié)果來(lái)自于批處理層和快速計(jì)算層。而批處理層多用MapReduce、Spark等批處理技術(shù),而快速計(jì)算層多用Flink、SparkStreaming和Storm等流計(jì)算技術(shù)。系統(tǒng)開發(fā)時(shí)就需要開發(fā)兩種完全不同的代碼,這非常不方便。因此,在Lambda架構(gòu)的基礎(chǔ)上又提出了Kappa架構(gòu)。任務(wù)2-3熟悉大數(shù)據(jù)處理平臺(tái)架構(gòu)5.Unifield架構(gòu)

在傳統(tǒng)Lambda架構(gòu)下,理論上快速處理層的輸出結(jié)果與批處理層的輸出結(jié)果在

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論