2024年-Hadoop體系架構(gòu)概述_第1頁
2024年-Hadoop體系架構(gòu)概述_第2頁
2024年-Hadoop體系架構(gòu)概述_第3頁
2024年-Hadoop體系架構(gòu)概述_第4頁
2024年-Hadoop體系架構(gòu)概述_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Hadoop體系架構(gòu)概述補充上比較完美的參考資料1

2Hadoop體系架構(gòu)HDFS簡介Map/Reduce模型分布式列式數(shù)據(jù)庫Hbase22024/5/10Hadoop概述

基于Apache基金會下的一個開源項目,致力于開發(fā)一個可靠的、大規(guī)模的分布式計算框架用戶可采用簡單的計算模型在計算機集群下對大規(guī)模的數(shù)據(jù)進(jìn)行分布式處理設(shè)計理念之一是擴(kuò)展單一的服務(wù)器為成千上萬機器的集群,且集群中每一個機器同時提供本地計算力和存儲力Hadoop框架是在應(yīng)用層檢測和處理硬件失效問題,而不是依賴于硬件自身來維持高可用性。在Hadoop框架集群中硬件失效被認(rèn)為是一種常態(tài),集群的高可用性服務(wù)是建立在整個集群之上的

32024/5/10

分布式文件系統(tǒng)(HadoopDistributedFileSystem,HDFS)并行計算模型(Map/Reduce)列式數(shù)據(jù)庫(HBase)數(shù)據(jù)倉庫(Hive)數(shù)據(jù)分析語言(Pig)數(shù)據(jù)格式轉(zhuǎn)化工具(Sqoop)協(xié)同工作系統(tǒng)(Zookeeper)數(shù)據(jù)序列化系統(tǒng)(Avro)HDFS(HadoopDistributedFileSystem)Map/Reduce(JobScheduling/ExecutionSystem)Hbase(ColumnDatabase)Pig(DataFlow)Hive(SQL)SqoopETLToolsBIReportingRDBMSAvroSerialization)Zookeeper(Coordination)Hadoop整體框架42024/5/10Hadoop整體框架下特點Hadoop主要在多節(jié)點集群環(huán)境下以數(shù)據(jù)存儲為基礎(chǔ)最大限度兼容結(jié)構(gòu)化數(shù)據(jù)格式以數(shù)據(jù)處理為目的且其數(shù)據(jù)操作技術(shù)多樣化52024/5/10Hadoop體系架構(gòu)

HDFS簡介Map/Reduce模型分布式列式數(shù)據(jù)庫Hbase62024/5/10HDFS概述-----基本特征基于商用硬件環(huán)境HDFS具有高容錯性,并且被部署在廉價的硬件之上HDFS向應(yīng)用程序提供高的數(shù)據(jù)吞吐訪問,適合于需要處理大規(guī)模海量數(shù)據(jù)集的應(yīng)用HDFS遵循部分POSIX協(xié)議要求,可以確保應(yīng)用程序以流的方式訪問文件系統(tǒng)數(shù)據(jù)72024/5/10HDFS的對現(xiàn)實應(yīng)用環(huán)境的假設(shè)及其目標(biāo)硬件失效流式數(shù)據(jù)訪問海量數(shù)據(jù)集追加寫入及文件同步“移動計算比移動數(shù)據(jù)的代價小”跨異構(gòu)硬件和軟件平臺的可移植性82024/5/10HDFS架構(gòu)主從(Master/Slave)體系結(jié)構(gòu)只含有一個NameNode主服務(wù)節(jié)點這個節(jié)點管理文件系統(tǒng)中的命名空間和調(diào)度客服端對文件的訪問通常一個機器就是一個DataNode數(shù)據(jù)節(jié)點,DataNode管理本節(jié)點上數(shù)據(jù)的存儲在HDFS內(nèi)部,一個文件被分割為一個或多個數(shù)據(jù)塊,并且這些數(shù)據(jù)塊被存儲在一批DataNode中。NameNode執(zhí)行文件系統(tǒng)中命名空間的操作(打開、關(guān)閉、重命名文件和目錄),NameNode需要執(zhí)行數(shù)據(jù)塊到DataNode映射的決策DataNode負(fù)責(zé)響應(yīng)來自客戶端的文件讀寫要求,也要負(fù)責(zé)執(zhí)行來自NameNode的關(guān)于數(shù)據(jù)塊創(chuàng)建、刪除和冗余存儲的指令ClientMetaDataopsWriteNameNodeMetaData(Name,replicas,…)ClientDataNodesDataNodesBlockopsReadBlockssReplicationNameNode同DataNode都是可以架設(shè)在普通商品機上,一個典型的HDFS集群中部署一個專用機做為NameNode,其余的機器部署為DataNode。雖然,這個體系結(jié)構(gòu)并不排除把一個機器做為多個DataNode節(jié)點,但是這樣的情況在實際部署中很少發(fā)生。單NameNode結(jié)構(gòu)極大的簡化了集群的系統(tǒng)結(jié)構(gòu),NameNode主管并且存儲所有的HDFS的元數(shù)據(jù)(MetaData),系統(tǒng)中用戶數(shù)據(jù)絕不會流過NameNode節(jié)點。92024/5/10Hadoop體系架構(gòu)HDFS簡介Map/Reduce模型分布式列式數(shù)據(jù)庫Hbase102024/5/10Map/Reduce簡介一種用于在大型商用硬件集群中(成千上萬的節(jié)點)對海量數(shù)據(jù)(多個兆兆字節(jié)數(shù)據(jù)集)實施可靠的、高容錯的并行計算的軟件系統(tǒng)一個最先由Google提出的分布式計算軟件構(gòu)架基本原理

將一個復(fù)雜的問題,分成若干個簡單的子問題進(jìn)行解決。然后,對子問題的結(jié)果進(jìn)行合并,得到原有問題的解112024/5/10Map/Reduce概念"Map"和"Reduce"是編程語言中的概念,都是處理數(shù)據(jù)集合的函數(shù)Map在處理數(shù)據(jù)序列的過程中只處理當(dāng)前的數(shù)據(jù)信息,不需要跟之前處理的狀態(tài)信息交互主結(jié)點讀入輸入數(shù)據(jù),把它分成可以用相同方法解決的小數(shù)據(jù)塊,然后把這些小數(shù)據(jù)塊分發(fā)到不同的工作節(jié)點上,每一個工作節(jié)點循環(huán)做同樣的事,這就形成了一個樹行結(jié)構(gòu),而每一個葉子節(jié)點來處理每一個具體的小數(shù)據(jù)塊,再把這些處理結(jié)果返回給父節(jié)點Reduce在處理過程中卻依賴之前處理的結(jié)果,同時生成的結(jié)果也被后續(xù)的處理使用。結(jié)點得到所有子節(jié)點的處理結(jié)果,然后把所有結(jié)果組合并且返回到輸出一個Map/Reduce任務(wù)會把一個輸入數(shù)據(jù)集分割為獨立的數(shù)據(jù)塊,然后Map任務(wù)會以完全并行的方式處理這些數(shù)據(jù)塊。Map/Reduce系統(tǒng)自動對Map任務(wù)的輸出分類,再把這些分類結(jié)果做為Reduce任務(wù)的輸入。無論是任務(wù)的輸入還是輸出都會被存儲在文件系統(tǒng)中。Map/Reduce系統(tǒng)關(guān)注任務(wù)調(diào)度、任務(wù)監(jiān)測和重新執(zhí)行失敗的任務(wù)122024/5/10Map/Reduce模型計算節(jié)點和存儲節(jié)點的一致性。允許Hadoop框架有效的調(diào)度任務(wù)在那些數(shù)據(jù)已經(jīng)準(zhǔn)備好了的節(jié)點上,好處是整個集群中總帶寬非常的高特點是可以用Map和Reduce方法來處理分布式計算問題時,盡可能的實現(xiàn)數(shù)據(jù)處理的本地化,降低由數(shù)據(jù)移動而產(chǎn)生的代價。每一個Map操作都是相對獨立的,所有的Maps都是并行運行的,雖然實踐中會受到數(shù)據(jù)源和CPU個數(shù)的影響。同樣的,用一個Reduce集合來執(zhí)行Reduce操作,所有帶有相同key的Map輸出會聚集到同一個Reduce。能夠處理一般服務(wù)器所不能處理的大數(shù)據(jù)量處理問題Map/Reduce系統(tǒng)由單一的JobTracker主節(jié)點和若干個TaskTracker從節(jié)點組成,其中每一個集群節(jié)點對應(yīng)一個TaskTracker節(jié)點。主節(jié)點負(fù)責(zé)調(diào)度任務(wù)的各個組成任務(wù)到從節(jié)點上,監(jiān)控并且重新執(zhí)行失敗的組成任務(wù);從節(jié)點執(zhí)行主節(jié)點安排的組成任務(wù)Map/Reduce的Map和Reduce過程都定義了鍵值對(<key,value>)的數(shù)據(jù)結(jié)構(gòu),即系統(tǒng)視任務(wù)的輸入數(shù)據(jù)為鍵值對集合,并且產(chǎn)生鍵值對結(jié)合做為任務(wù)的輸出。一次任務(wù)的輸入輸出格式:(input)<k1,v1>->map-><k2,v2>->combine-><k2,v2>->reduce-><k3,v3>(output)132024/5/10一次Map/Reduce任務(wù)過程。用戶提交任務(wù)給JobTracer,JobTracer把對應(yīng)的用戶程序中的Map操作和Reduce操作映射至TaskTracer節(jié)點中;輸入模塊負(fù)責(zé)把輸入數(shù)據(jù)分成小數(shù)據(jù)塊,然后把它們傳給Map節(jié)點;Map節(jié)點得到每一個key/value對,處理后產(chǎn)生一個或多個key/value對,然后寫入文件;Reduce節(jié)點獲取臨時文件中的數(shù)據(jù),對帶有相同key的數(shù)據(jù)進(jìn)行迭代計算,然后把終結(jié)果寫入文件。6write5remotewrite4localwrite3readUserProgramTaskTracerTaskTracerTaskTracerTaskTracerTaskTracerChunk1Chunk2……Chunkn1fork1fork2assignmapOutputOutputInputfiles1fork2assignreduceJobTracerMapphaseIntermediatefiles(onlocaldisk)ReducephaseOutputfilesMap/Reduce處理過程142024/5/10Map/Reduce優(yōu)缺點Map/Reduce通過工作狀態(tài)的返回有效處理了單點失效的問題Map/Reduce是隸屬于大粒度的并行計算模式,并行節(jié)點間在Map階段中和Reduce階段中無法通信,也并非是一種萬能的數(shù)據(jù)處理模型152024/5/10Hadoop體系架構(gòu)HDFS簡介Map/Reduce模型分布式列式數(shù)據(jù)庫Hbase162024/5/10Hbase簡介可提供隨機的、實時的大數(shù)據(jù)讀寫訪問目標(biāo)是在商用硬件上存儲非常大的表——數(shù)十億的行數(shù)百萬的列開源的、分布式的、版本化的、面向列的存儲模型對Google公司Bigtable系統(tǒng)的開源模仿,建立在Hadoop和HDFS之上提供類Bigtable的存儲力172024/5/10Hbase數(shù)據(jù)模型按預(yù)先定義好的列族(Columnfamily)結(jié)構(gòu)來存儲數(shù)據(jù),即每一條數(shù)據(jù)有一個key以及若干個列屬性值組成,每列的數(shù)據(jù)都有自己的版本信息數(shù)據(jù)是按列進(jìn)行有序存儲的,不同于關(guān)系型數(shù)據(jù)庫中按行存儲兩種方式的數(shù)據(jù)操作,通過對有序key值進(jìn)行掃描查詢,獲取value值,或者借助強大的Hadoop來進(jìn)行Map/Reduce查詢采用了強一致性的讀寫保證,數(shù)據(jù)會在多個不同的域(region)中進(jìn)行保存。列族可以包含無限多個數(shù)據(jù)版本,每個版本可以有自己的TTL(TimetoLive,生命周期)通過行級鎖來保證寫操作的原子性,但是不支持多行寫操作的事務(wù)性。數(shù)據(jù)掃描操作不保證一致性182024/5/10HBase下表的邏輯視圖行鍵(Rowkey)時間戳(Timestamp)列族(Columnfamily)列(Column)

RowkeyTimestampColumnfamilyA……Columna…………keytn……………………t1value1……在創(chuàng)建一張表時,必須定義行鍵名及所需列族的列族名,理論上一張表在創(chuàng)建時可以無限制地定義列族個數(shù),而時間戳?xí)上到y(tǒng)自動生成。列無需在創(chuàng)建表時定義,可以在使用時隨意定義使用,一個列族下同樣可以無限制的定義列的個數(shù)。雖然,HBase中可以任意的定義列族個數(shù)及附屬列的個數(shù),但是只需能夠保證任意一列不為空時,該行即為有效行。192024/5/10HBase下表的物理視圖在HBase中采用的稀疏存儲,物理存儲過程中細(xì)化到一個單元(Cell)。在邏輯視圖中,任意一行不會空的每一列都被稱作為一個單元。單元聯(lián)同行鍵、時間戳、列族名、列名做為完整的一行存儲到文件系統(tǒng)中,并且這個存儲過程中會自動排序,先在各行鍵間以字母升序排列,再在同行鍵間以時間戳降序排列。RowkeyTimestampColumnfamilyColumnValuekeytnColumnfamilyA………………keyt1ColumnfamilyAColumnavalue1202024/5/10表創(chuàng)建的初始階段其中只含有一個Region,隨著表中數(shù)據(jù)的量的不斷增多,一個Region會分裂為兩個Region,然后不斷重復(fù)上述過程,并且Region會被存儲到HDFS中不同的DataNode上。Region包含有一個或多個的Store,其數(shù)量增長過程同表中的Region數(shù)量增長過程一致Store中分為兩個部分:第一個部分是Memstore,一個Store中只包含一個Memstore,并且Memstore存儲在內(nèi)存空間中;第二個部分是Storefile,此部分由Memstore寫入硬盤而得。隨著Memstore寫入硬盤的次數(shù)增多,Storefile的數(shù)量也會增加,當(dāng)文件個數(shù)增加到一定量時,系統(tǒng)會自動對Storefile文件進(jìn)行合并。合并過程中主要完成以下幾個工作:1.具有相同行鍵的行存放在一個文件中;2.扔掉被標(biāo)志為刪除的行;3.扔掉時間戳過期的行,完成更新操作。隨著合并操作的頻繁執(zhí)行Storefile會變得很大,達(dá)到一定文件大小時自動分裂文件,貼合HDFS中對一個塊數(shù)據(jù)大小的定義HBase的一張表中的多個列族(ColumnFamily),在物理存儲上一個列族對應(yīng)一個文件夾,一個文件夾中可包含若干個Hfile文件。Hfile是Storefile的底層文件格式,StoreFile就是對Hfile做了輕量級包裝MemstoreStorefileStorefile單一鍵值TableRegionStore包含零個或多個包含一個

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論