大數據基礎02第二章大數據軟件架構_第1頁
大數據基礎02第二章大數據軟件架構_第2頁
大數據基礎02第二章大數據軟件架構_第3頁
大數據基礎02第二章大數據軟件架構_第4頁
大數據基礎02第二章大數據軟件架構_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2

章大數據軟件架構學習目標學習目標了解大數據軟件架構的定義和分類掌握Hadoop架構掌握Spark架構掌握實時流處理架構,熟悉三種實時流處理架構熟悉大數據架構的選擇2.1Hadoop架構

Hadoop是一個開源的、可運行于大規(guī)模集群上的分布式計算平臺,它主要包含分布式并行編程模模型Mapreduce和分布式文件系統(tǒng)(HadoopDistributedFileSystem,HDFS)等功能。程序員可以輕松地編寫分布式并行程序,將其運行于計算機集群上,完成海量數據的存儲與處理分析。2.1.1Hadoop簡介Hadoop是Apache軟件基金會旗下的一個開源分布式計算平臺,為用戶提供了系統(tǒng)底層細節(jié)透明的分布式基礎架構,為用戶提供了一個能夠對大量數據進行數據挖掘、數據分析、數據存儲、數據管理與維護的可靠、高效、可伸縮的分布式基礎架構。它是基于Java語言開發(fā)的,具有很好的跨平臺特性,并且可以部署在廉價的計算機集群中。2.1.2Hadoop家族成員1.Hadoop本身(1)HadoopCommon(2)HIDES(3)Mapreduce2.Hadoop發(fā)展1)數據服務類子項目(1)Hbase(2)Hive(3)Pig(4)Catalog(5)Scoop(6)Flume(7)Chukwa2)運行維護類子項目(1)Ambari(2)Oozie(3)Zookeeper3)數據服務類子項目2.1.3Hadoop2.0生態(tài)系統(tǒng)的集群架構Hadoop集群使用了Master/Slave架構模式,其集群架構主要由三部分組成:管理節(jié)點(MasterNode)、數據節(jié)點(SlaveNode)和客戶端(Client)。管理節(jié)點主要負責管理集群節(jié)點,實現實體分配、負載均衡以及數據節(jié)點的失敗回復,并負責管理整個集群的Meta信息,并提供Meta信息服務;數據節(jié)點主要負責處理實際任務,如數據存儲、責任無執(zhí)行等,并通過心跳機制向管理節(jié)點定期匯報狀態(tài)、工作進度等信息;客戶端主要負責緩存集群以及Meta信息,避免與管理節(jié)點頻繁通信,并且可以讀寫API,進行批量操作等。Hadoop2.0生態(tài)系統(tǒng)的集群架構主要以MapReduce、HDFS和YARN為核心,但總體上仍然是Master/Slave結構,如圖2-1所示。圖2-1Hadoop2.0生態(tài)系統(tǒng)的集群架構2.1.4Hadoop運行環(huán)境要保障Hadoop集群能夠充分發(fā)揮作用,就需要相應的軟硬件及網絡的支持。1.硬件環(huán)境2.軟件環(huán)境

(1)操作系統(tǒng)

由于分布式操作尚未在Windows平臺上充分測試,所以只是以學習

和研究為目的,暫時不建議作為一個生產平臺使用。

(2)Java運行環(huán)境

Hadoop系統(tǒng)本身是用Java語言編寫的,但也有少量的C/C++代碼。

因此,Hadoop正常運行需要JDK(JavaDevelopmentKit)的支持。

(3)安全通信協(xié)議SSH3.網絡環(huán)境2.1.5Hadoop集群的安裝與部署Hadoop包括單機模式、偽分布模式和分布模式3種安裝模式。單機模式只在一臺機器上運行,存儲采用本地文件系統(tǒng),沒有采用分布式文件系統(tǒng)HDFS。偽分布式模式的存儲采用分布式文件系統(tǒng)HDFS,但是HDFS的名稱節(jié)點NameNode和數據節(jié)點DataNode都在同一臺機器上。分布式模式的存儲采用分布式文件系統(tǒng)HDFS,而且HDFS的名稱節(jié)點NameNode和數據節(jié)點DataNode位于不同機器上,此模式下,數據就可以分布到多個節(jié)點上,不同數據節(jié)點上的數據計算可以并行執(zhí)行,這時的Mapreduce分布式計算能力才能真正發(fā)揮作用。以分布模式為實例說明Hadoop部署的過程:1.集群環(huán)境搭建2.Hadoop集群的安裝與配置3.分布式模式部署1)網絡配置2)SSH無密碼登錄節(jié)點設置3)配置PATH變量4)配置集群/分布式環(huán)境5)執(zhí)行分布式實例2.2Spark架構

Spark是一個通用的并行計算框架,由加州伯克利大學(UCBerkeley)AMP實驗室開發(fā),是Apache旗下為大數據領域最活躍的開源項目之一。Spark也是基于mapreduce算法模式實現的分布式計算框架,擁有HadoopMapReduce所具之優(yōu)點并解決了HadoopMapReduce中的諸多缺陷。2.2.1Spark簡介1.Spark的組成(1)SparkCore(2)SparkSQL(3)SparkStreaming(4)GraphX(5)MLlib2.Spark核心功能(1)SparkContext(2)存儲體系(3)計算引擎(4)部署模式3.Spark擴展功能(1)SparkSQL(2)SparkStreaming(3)GraphX(4)MLlib2.2.2Spark集群模式1.Spark集群組成

從集群部署的角度來看,Spark集群由以下4個部分組成。(1)ClusterManager(2)Worker(3)Executor(4)DriverApp2.Spark集群工作模式

Spark集群ClusterManager支持Local(單機模式)和以下三種模式:

(1)Standalone模式(2)YARN模式(3)Mesos模式圖2-2Spark集群模式架構3.接入第三方資源管理系統(tǒng)圖2-3Spark類設計圖2.2.3Spark核心組件集群處理計算任務的運行時(用戶提交了Spark程序),最核心的頂層組件就是Driver和Executor,它們內部管理很多重要的組件來協(xié)同完成計算任務,核心組件棧如圖2-4所示。圖2-4Spark核心組件棧2.2.4Spark運行環(huán)境Spark可以獨立安裝使用,也可以和Hadoop一起安裝使用。本案例采用和Hadoop一起安裝使用,這樣可以讓Spark直接使用HDFS存取數據。本案例采用的配置同前面Hadoop配置基本相同。(1)Linux系統(tǒng):CentOS7版本;(2)Hadoop:2.7.5版本;(3)JDK:1.7以上;(4)Spark:2.3.0。2.2.5Spark的安裝Spark的部署模式主要有四種,這里介紹Local模式的Spark安裝。1.下載安裝文件2.配置相關文件2.3實時流處理架構

2.3.1實時計算的概念實時計算一般都是針對海量數據進行的,一般要求為秒級。實時計算主要分為兩塊:數據的實時入庫和實時計算。實時計算的主要應用場景有以下幾個方面。(1)數據源是實時不間斷的,要求用戶響應時間也是實時的。比如對于大型網站的流式數據,如網站的訪問PV/UV、用戶訪問了什么內容、搜索了什么內容等,實時的數據計算和分析可以動態(tài)實時地刷新用戶訪問數據,展示網站實時流量的變化情況,分析每天各小時的流量和用戶分布情況。(2)數據量大且無法或沒必要預算,但要求對用戶的響應時間則必須是實時的。例如,計算網站某天來自每個省份不同性別的訪問量分布,計算網站某天來自每個省份不同性別不同年齡不同職業(yè)的訪問量分布。2.3.2實時計算的相關技術實時計算主要分為三個階段(大多是日志流),分別是數據的產生與收集階段、傳輸與分析處理階段、存儲對對外提供服務階段,如圖2-5所示。圖2-5實時計算的三階段1.數據實時采集2.數據實時計算3.實時查詢服務2.3.3ApacheStorm許多分布式計算系統(tǒng)都可以實時或接近實時地處理大數據流。本節(jié)介紹Apache框架中的Storm。如圖2-7圖2-7ApacheStorm2.3.4ApacheSamzaApacheSamza也是Apache框架中的一種,Samza處理數據流時,會分別按次處理每條收到的消息。Samza的流單位既不是元組,也不是Dstream,而是一條條消息。在Samza中,數據流被切分開來,每個部分都由一組只讀消息的有序數列構成,而這些消息每條都有一個特定的ID(offset)。該系統(tǒng)還支持批處理,即逐次處理同一個數據流分區(qū)的多條消息。Samza的執(zhí)行與數據流模塊都是可插拔式的,盡管Samza的特色是依賴Hadoop的Yarn(另一種資源調度器)和ApacheKafka,如圖2-8所示。圖2-8ApacheSamza2.3.5Lambda架構Lambda架構的主要思想是將大數據系統(tǒng)架構為多層個層次,分別為批處理層(BatchLayer)、實時處理層(SpeedLlayer)、服務層(ServingLayer),如圖2-9所示。圖2-9Lambda架構2.4架構的選擇

2.4.1框架的種類不論是系統(tǒng)中存在的歷史數據,還是持續(xù)不斷接入系統(tǒng)中的實時數據,只要數據是可訪問的,就可以對數據進行處理。按照對所處理的數據形式和得到結果的時效性分類,數據處理框架可以分為三類。1.批處理框架2.流處理框架3.混合框架雖然專注于一種處理方式可能非常適合特定場景,但是混合框架為數據處理提供了通用的解決方案。這種框架不僅可以提供處理數據所需的方法,而且提供了自己的集成項、庫、工具,可勝任圖形分析、機器學習、交互查詢等多重任務。當前主流的混合處理框架主要為ApacheSpark和ApacheFlink。2.4.2框架的選擇1.初學者由于ApacheHadoop在大數據領域的廣泛使用,因此仍推薦作為初學者學習數據處理框架的首選。雖然MapReduce因為性能原

溫馨提示

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

評論

0/150

提交評論