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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

底層結(jié)構(gòu)包括HDSF,MapReduce和Zookeeper。其中,HDFS是Hadoop分布式文件存儲系統(tǒng)。MapReduce是Hadoop的分布式并行運算框架。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ù)庫)是一個針對結(jié)構(gòu)化數(shù)據(jù)的可伸縮、高可靠、高性能、分布式和面向列的動態(tài)模式數(shù)據(jù)庫。Hive是一種基于平面文件而構(gòu)建的分布式數(shù)據(jù)倉庫。Pig是一種基于大數(shù)據(jù)集的批量數(shù)據(jù)處理平臺。Sqoop是一個數(shù)據(jù)接口,主要用來對HDFS和傳統(tǒng)關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)進行數(shù)據(jù)傳輸。Flume是一種分布式海量日志采集和傳輸?shù)南到y(tǒng)。任務(wù)2-2認識最早的大數(shù)據(jù)生態(tài)系統(tǒng)—Hadoop3.數(shù)據(jù)挖掘?qū)?/p>

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

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

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

2.Spark

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

3.Tez

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論