高級數(shù)據(jù)庫結(jié)課論文_第1頁
高級數(shù)據(jù)庫結(jié)課論文_第2頁
高級數(shù)據(jù)庫結(jié)課論文_第3頁
高級數(shù)據(jù)庫結(jié)課論文_第4頁
高級數(shù)據(jù)庫結(jié)課論文_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

題目:基于HBase的數(shù)據(jù)存儲與管理研究目錄TOC\o"1-5"\h\z摘要1一、概述1二、研究背景1三、HBase分布式數(shù)據(jù)庫21、HBase與Hadoop及其組件的關(guān)系22、HBase系統(tǒng)架構(gòu)33、HBase存儲結(jié)構(gòu)54、HBase數(shù)據(jù)模型9四、總結(jié)與建議12五、主要參考文獻12《高級數(shù)據(jù)庫技術(shù)》課程報告《高級數(shù)據(jù)庫技術(shù)》課程報告#一、概述近年來全球互聯(lián)網(wǎng)絡(luò)的發(fā)展網(wǎng)民數(shù)量、網(wǎng)絡(luò)應用數(shù)量都呈現(xiàn)了激增的態(tài)勢。用戶逐漸由信息的被動接收者轉(zhuǎn)變?yōu)樾畔⒌慕邮照吆椭圃煺?。整個互聯(lián)網(wǎng)生態(tài)系統(tǒng)中,用戶貢獻內(nèi)容成為數(shù)據(jù)的一個重要來源。除此之外,越來越多的數(shù)據(jù)在社交網(wǎng)站、電子商務(wù)網(wǎng)站、搜索引擎網(wǎng)站等物理分隔的服務(wù)器上不斷自動生成。面對龐大的、結(jié)構(gòu)復雜的海量數(shù)據(jù)的存儲和讀取問題,傳統(tǒng)關(guān)系型數(shù)據(jù)庫已經(jīng)無法滿足需求。此時,云計算作為一種計算和存儲能力近乎無限、可靠性高、可伸縮性強的新技術(shù)迅速得到企業(yè)和學者們的重視。網(wǎng)絡(luò)將分散的計算機上的分布式數(shù)據(jù)庫連接起來,用戶的請求通過所有節(jié)點來處理,大大提高了數(shù)據(jù)的讀寫能力。Hadoop就是一種用來存儲和處理海量數(shù)據(jù)的開源云計算系統(tǒng)。二、研究背景21世紀初,谷歌公司的幾位年輕研究人員用廉價PC搭建了大型的MPP系統(tǒng),成功解決了搜索引擎所需要的大型文件系統(tǒng)的管理和操作問題,隨后分別于2003年、2004年和2006年在操作系統(tǒng)兩個著名的學術(shù)會議SOSP和0SDI上發(fā)表了有關(guān)GFS(Google文件系統(tǒng))、MapReduce(編程環(huán)境)和BigTable(數(shù)據(jù)模型)的論文。這三篇奠基性的論文促成了Hado°p的誕生。2004年,CuttingD和CafarellaMJ根據(jù)GoogleLab論文實施,取名Hadoop。從Hadoop0.21開始HDFS和MapReduce成為獨立的子項目。MapReduce是分布式并行計算框架是Hadoop的核心。HDFS所起的作用就是使得每個服務(wù)器必須具備對數(shù)據(jù)的訪問能力。2006年,HBase(BigTable)分布式列存儲數(shù)據(jù)庫成為Hadoop子項目,它架構(gòu)在HDFS之上。同年,AnkurKhetrapal和VinayGanesh從技術(shù)要求、技術(shù)架構(gòu)、技術(shù)評價標準以及缺陷四個方面比較了HBase和Hypertable這兩種實現(xiàn)BigTable功能的開源數(shù)據(jù)庫的技術(shù)相似性、不同點和處理能力⑴。通過實驗作者認為Hypertable(0.9.12)在主節(jié)點上運行時會相對不穩(wěn)定,在大于GB的數(shù)據(jù)讀入時尤為明顯。相比之下,HBase在單節(jié)點的運行性能比Hypertable的可靠性更高。CraigFranke研究了基于HBase的分布式語義網(wǎng)數(shù)據(jù)管理系統(tǒng)[2]。隨著機器可理解的語義描述越來越多地應用于服務(wù)搜索、發(fā)現(xiàn)和集成,網(wǎng)絡(luò)中的計算數(shù)據(jù)資源越來越多。作者研究和比較了云計算和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫聚類技術(shù)基礎(chǔ)上的兩種方法RDF數(shù)據(jù)分布式管理,設(shè)計了一種基于HBase和MySQL簇的分布式RDF數(shù)據(jù)存儲和查詢方案,通過實證研究驗證了所提出的算法是有效的,也說明云計算在可擴展的語義web數(shù)據(jù)管理方面有著巨大的潛力。ShojiNishimura設(shè)計了一種基于位置服務(wù)的可擴展數(shù)據(jù)庫-MD-Hbase[3]。基于位置的服務(wù)和應用的增長產(chǎn)生了大規(guī)模的數(shù)據(jù),適用于這種數(shù)據(jù)的管理系統(tǒng)在滿足有效的實時分析之外還要能適應數(shù)據(jù)的高插入率。基于鍵值的存儲雖然能支持大規(guī)模的擴展操作,但是不支持多屬性查詢功能,因此進行了改進。在鍵值存儲結(jié)構(gòu)之上建立多維索引結(jié)構(gòu),底層的鍵值存儲保證了系統(tǒng)的可插入性和容錯性,上層的索引值保證了高效率的多維查詢處理。模型中的鍵值存儲原型即為HBase。國內(nèi)的學者也對HBase做了相關(guān)探索。崔杰研究了基于Hadoop的海量數(shù)據(jù)存儲平臺設(shè)計與開發(fā)⑷。海量的海洋科學數(shù)據(jù)經(jīng)過MapReduce計算以后按其K指作為行關(guān)鍵字,使用HBase分布式數(shù)據(jù)庫實現(xiàn)存儲和管理海量數(shù)據(jù)功能。范建永研究了基于HBase的矢量空間數(shù)據(jù)分布式存儲和一種基于MapReduce的并行構(gòu)建網(wǎng)格空間索引方法,大大加快索引構(gòu)建的處理速度⑸。李橋興利用分布式文件系統(tǒng)HBase的數(shù)據(jù)存儲結(jié)構(gòu)特征,采用可拓學基元對異構(gòu)數(shù)據(jù)集進行整合處理并存儲在HBase數(shù)據(jù)庫⑹。通過提取數(shù)據(jù)特別是半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的典型特征和屬性取值并轉(zhuǎn)換為基元后生成一個新的數(shù)據(jù)集,為數(shù)據(jù)分析和數(shù)據(jù)解釋提供一種新的實現(xiàn)方式。三、HBase分布式數(shù)據(jù)庫1、HBase與Hadoop及其組件的關(guān)系HBase是ApacheHadoop的數(shù)據(jù)庫,能夠?qū)Υ笮蛿?shù)據(jù)提供隨機、實時的讀寫訪問。Hadoop是一個能夠?qū)A繑?shù)據(jù)分布式處理的平臺,它的核心模塊有:HadoopDistributedFileSystem(HDFS)、HadoopMapreduce、HadoopHBase和HadoopZooKeeper。HBase對應Google云計算系統(tǒng)的BigTable,目標是存儲和處理大型數(shù)據(jù)。其他組件的主要作用、與Google云計算系統(tǒng)的對應關(guān)系以及對HBase的支持作用如表3.1所示:表3.1Hadoop組件與HBase的關(guān)系Hadoop作用對HBase的支持對應的Google云計算系統(tǒng)HadoopHDFS為整個Hadoop平臺提供數(shù)據(jù)的存儲、管理和錯誤處理功能咼可靠的底層存儲支持GoogleGFSHadoopMapReduce基于映射和化簡思想,支持大規(guī)模數(shù)據(jù)集的并行運算高性能的計算能力GoogleMapReduceHadoopZooKeeper解決分布式集群中應用系統(tǒng)的一致性問題。它能提供基于類似于文件系統(tǒng)的目錄節(jié)點樹方式的數(shù)據(jù)存儲穩(wěn)定服務(wù)和failover機制GoogleChubby基于以上各組件的支持,可將HBase數(shù)據(jù)庫的特點總結(jié)如下:1、高可靠性:作為底層存儲支持平臺,HBase的很多數(shù)據(jù)存儲在HDFS平臺中。HDFS平臺以數(shù)據(jù)備份技術(shù)作為基礎(chǔ),提出了一種數(shù)據(jù)備份模型以適應云存儲的需求。副本是一種提高數(shù)據(jù)訪問效率與容錯性能力的技術(shù),能夠在原始數(shù)據(jù)丟失的時候,幫助用戶恢復數(shù)據(jù)。2、高效性:MapReduce的分布式編程模型系統(tǒng)來管理多個大規(guī)模計算過程,提高了計算效率。3、實時性:HBase作為數(shù)據(jù)存儲引擎能夠為大數(shù)據(jù)提供實時的讀/寫操作,但根據(jù)實際情況來看,HBase在實時的數(shù)據(jù)寫入性能上優(yōu)于查詢性能。2、HBase系統(tǒng)架構(gòu)HBase為主從式架構(gòu),由一個Master節(jié)點、多個Regionserver節(jié)點和客戶端3部分組成.Master節(jié)點作為HBase的中心,管理整個集群中的所有個Regionserver,監(jiān)控每個表服務(wù)器的運行情況等⑺。Regionserver接收來自Master分配的子表、處理客戶端的讀寫請求、緩沖區(qū)回收、壓縮和分割Regionserver等功能。Client主要負責查找用戶子表所在的Regionserver地址信息。HBase系統(tǒng)中還包括一個用于監(jiān)控集群狀態(tài)的ZooKeeper集群。ZooKeeper集群保存著HBase數(shù)據(jù)庫元數(shù)據(jù)所在節(jié)點的IP地址,客戶端通過ZooKeeper集群找到元數(shù)據(jù),進而找到需要訪問的Regionservero最后Regionserver還要和HDFS通信,將文件存儲在其中。圖3.1HBase系統(tǒng)架構(gòu)(1)Master節(jié)點HBase中可以存在多個Master節(jié)點,但其中沒有單點問題。因為HBase中可以啟動多個HMaster,但通過Zookeeper的MasterElection即選舉機制保證總有一個Master運行。Master節(jié)點不存儲HBase中的任何數(shù)據(jù),它負責HBase中表和Region的管理,具體如下:管理用戶對table的增、刪、改、查操作;為Regionserver節(jié)點分配Region,Region用來存儲HBase表中的數(shù)據(jù);對Regionserver進行負載均衡;調(diào)整Region分布遷移已失效Regionserver上的Region到其他Regionservero(2)ZooKeeperZooKeeper是ApacheHadoop的一個正式子項目,它是一個分布式的、開源的分布式程序協(xié)調(diào)服務(wù),是GoogleChubby的一個開源實現(xiàn)。它提供一個了類似文件系統(tǒng)的層次命名空間,與文件系統(tǒng)不同的是,ZooKeeper的命名空間中的數(shù)據(jù)節(jié)點也可以有孩子節(jié)點,就像文件系統(tǒng)中的一個文件同時也可以作為一個文件夾。HBase中ZooKeeper的作用有以下三個:Master節(jié)點選舉,保證集群中只有一個Master節(jié)點;存儲-ROOT-表地址、Master地址;監(jiān)控所有Regionserver的狀態(tài),RegionServer會把自己以Ephemera1方式注冊至到Zookeeper中,使得HMaster可以隨時感知到各個HRegionServer的健康狀態(tài),進而將Regionserver的上線和下線信息實時通知Mastero(3)Regionserver節(jié)點Regionserver主要負責響應用戶I/O請求,存儲表文件,向HDFS文件系統(tǒng)中讀寫數(shù)據(jù),是HBase中最核心的模塊。Master節(jié)點記錄了當前所有Region的狀態(tài),包括已經(jīng)分配的Region分配給了哪些Regionserver,哪些Region還未分配。一個Region在任何時刻只能分配給一個Regionserver。當客戶端請求寫數(shù)據(jù)時,如果存在未分配的Region并且有一個Regionserver上有可用的空間,主控節(jié)點就將這個Region分配給該Regionserver并通知它,分配的Region會隨機生成一個Region標示符與之對應。Regionserver負責維護Master節(jié)點分配給它的Region,處理客戶端對Region的讀寫請求,Regionserver運行在Hadoop集群中的DataNode節(jié)點上。Regionserver內(nèi)部管理了一系列Region對象,每個Region對應了Table中的一個Region,Region中由多個Store組成。每個Store對應了Table中的一個ColumnFamily的存儲,每個ColumnFamily就是一個集中的存儲單元。(4)ClientClient主要有以下功能:使用HBaseRPC機制與HMaster和HRegionServer進行通信Client與HMaster進行通信進行管理類操作Client與HRegionServer進行數(shù)據(jù)讀寫類操作3、HBase存儲結(jié)構(gòu)在HBase中,RegionServer集群負責維護分配給它們的Region,響應客戶端的數(shù)據(jù)讀寫請求。數(shù)據(jù)在RegionServer集群中的組織方式如圖3.2所示。由圖3.2可以看出HBase的存儲核心是由MemStore和StoreFile組成的。MemStore是SortedMemoryBuffer。用戶進行寫操作時,數(shù)據(jù)首先存入MenStore中,當MenStore滿時,HBase將其數(shù)據(jù)寫入文件中,這個文件的大小等于MenStore的閾值,這個文件即StoreFile。隨著用戶的寫操作不斷進行,數(shù)據(jù)量不斷增加,StoreFile增長到一定的閾值時,觸發(fā)合并操作,多個StoreFile合并成一個StoreFile,同時進行版本合并和數(shù)據(jù)刪除。合并操作后,StoreFile形成越來越大的StoreFile,單個StoreFile的大小超過一定閾值后觸發(fā)Split操作,把當前的RegionSplit成2個Region,父Region下線,兩個新的子Region會被Master分配到相應的Regionserver上,從而使得1個Region的壓力得以分流到2個Region上。具體操作過程如圖3.3所示。

StoreFilelStoreFile2StoreFile3StoreFile4StoreFilelStoreFile2StoreFile3StoreFile4圖3.3StoreFile的compact和split過程由此過程可知,HBase只是增加數(shù)據(jù),更新和刪除操作都是在合并階段進行的。這樣用戶寫操作只需要進入內(nèi)存即可立即返回,從而保證I/O高性能。HBase的所有數(shù)據(jù)文件都存儲在HadoopHDFS文件系統(tǒng)上,格式主要有兩種:HLog和HFile。(1)HLog在分布式環(huán)境中,系統(tǒng)的容錯能力是一個很重要的指標。在HBase中,一旦RegionServer意外退出,MemStore中的內(nèi)存數(shù)據(jù)就會丟失,因此引入了Hlog。HLog是一個預讀式日志(WriteAheadLogging)。每個RegionServer中都有一個HLog對象,每次用戶操作寫入MemStore的同時也會寫一份數(shù)據(jù)到Hlog文件。類比于面向關(guān)系數(shù)據(jù)庫的日志文件,當HRegionServer意外終止后,HMaster會先處理遺留的HLog文件,ReplayHLog中的數(shù)據(jù)到MemStroe中,然后flush到StoreFile中,完成數(shù)據(jù)恢復。HLog文件結(jié)構(gòu)如圖所示:RegionARegionBRegionC11riFvrV1FHlogKeyHlogKeyHlogKeyKeyValueKeyValueKeyValue圖3.4HLog文件結(jié)構(gòu)HLog文件就是一個普通的HadoopSequenceFile。其中HLogKey中記錄了寫入數(shù)據(jù)的歸屬信息,包括表名、region名、順序號和寫入時間。順序號的起始值為0或者最近一次存入文件系統(tǒng)的順序號。HFileHFile是Hadoop的二進制格式文件,實際上StoreFile就是對HFile做了輕量級包裝,即StoreFile底層就是HFile。HFile的存儲格式如下圖所示:DataDataDataMetaMetaFileInfodataindexmetaindexTrailerMagiKeyKeyKeyKeyKeyKeyKeycValueValueValueValueValueValueValue圖3.5HFile的存儲格式a)DataBlock:HBaseI/O的基本單元,存儲KeyValue數(shù)據(jù)。MetaBlock:可選快,保存BloomFilter信息等,BloomFilter可以用來判斷一個RowKey是否在這個HFile中。FileInfo:保存HFile的基本信息DataBlockIndex:DataBlock的索引,記錄每個DataBlock的起始位置、大小及DataBlock中的第一個RowKey。MetaBlockIndex:MetaBlock的索引,記錄每個MetaBlock的起始位置、大小等。Trailer:記錄FileInfo、DataBlockIndex和MetaBlockIndex的起始位置。當讀取一個HFile文件時,首先讀取Trailer塊,通過Trailer將DataBlockIndex的內(nèi)容保存到內(nèi)存中,這樣,當檢索某個RowKey時,HBase只需從內(nèi)存中找到RowKey所在的DataBlock,然后將這個DataBlock讀入內(nèi)存,進而找到所需的RowKey。DataBlock的大小可以在創(chuàng)建表的時候通過參數(shù)指定,默認值為64KB。通過上述讀取過程可以看到,DataBlock的大小將會對記錄的查詢操作產(chǎn)生一定的影響,較大的DataBlock有利于順序的scan操作,較小的DataBlock有利于隨機查詢。(3)KeyValue鍵值對分析KeyValue即“鍵-值對”是HBase數(shù)據(jù)存儲的核心,由圖3.6可以看至到,DataBlock中存儲的KeyValue是連續(xù)排列的,每個KeyValue對就是一個簡單的byte數(shù)組。這個byte數(shù)組里面包含了很多項,并且有固定的結(jié)構(gòu)。它包含四個字段,分別是KeyLength、ValueLength、Key和Value,其結(jié)構(gòu)如圖3.7所示。1Key1KeyValueValueLengthRowLengthRowColumnFamilyLengthColumnFamilyColumnQualifierTimeStampKeyTypeValue4B4B2B1B8B1B圖3.6KeyValue的結(jié)構(gòu)KeyLength和ValueLength:兩個固定的長度,分別代表Key和Value的長度Key部分:RowLength是固定長度的數(shù)值,表示RowKey的長度,Row字段存儲RowKey的名字ColumnFamilyLength是固定長度的數(shù)值,表示Family的長度ColumnFamily字段存儲列族名,ColumnQualifie字段存儲列名,TimeStamp和KeyType(Put/Delete)是兩個固定長度的數(shù)值Value存儲二進制數(shù)據(jù)。KeyValue作為一個整體不會被分割存儲到多個DataBlock中,即使一個KeyValue的大小超過了DataBlock的大小,它仍然被視作一個連貫的塊讀出。4、HBase數(shù)據(jù)模型關(guān)系型數(shù)據(jù)庫圍繞著表、列和數(shù)據(jù)類型來構(gòu)建數(shù)據(jù)模型的,數(shù)據(jù)的形態(tài)都有嚴格的規(guī)則。HBase的數(shù)據(jù)模型設(shè)計沒有嚴格的形態(tài),數(shù)據(jù)記錄的列可以不一致、大小不確定、可以沒有類型的半結(jié)構(gòu)化數(shù)據(jù)⑻。針對半結(jié)構(gòu)化數(shù)據(jù),HBase在設(shè)計邏輯模型時會影響到其物理模型的設(shè)計。同時,物理模型的不同也會影響到邏輯模型。(1)邏輯模型HBase以表的形式存儲數(shù)據(jù)。表有行和列組成。列劃分為若干個列族(rowfamily),,列的定義為:vColumnFamily>:vqualifier>。由行和列所確定的單元格稱為cell,HBase的更新操作都有時間戳,對于每個cell,HBase將存儲指定個數(shù)的最新版本,客戶端默認獲取最新版本的內(nèi)容。Cell沒有數(shù)據(jù)類型,只能存放字節(jié)數(shù)組(bytearray)。HBase中的表有3個基本的列,分別是RowKey、Timestamp和ColumnFamily,其中RowKey是主鍵,表中的各行按照RowKey的字節(jié)序排序。如表3.2所示為HBase表的邏輯視圖。表3.2HBase表的邏輯視圖RowKeyTimeStamp列族“contens"列族“anchor"n.WWWt9CNNt8CNN.comt6vhtml>deft5vhtml>abct3vhtml>…表3.2所示為HBase的表中的一行記錄,其RowKey為“n.www"。RowKey:行鍵,Table的主鍵,Table中的記錄按照RowKey排序。RowKey格式為字節(jié)數(shù)組,任何能夠轉(zhuǎn)換為字節(jié)數(shù)組的元素都可以作為RowKey,RowKey的大小并不固定,最大長度為64KB。Timestamp:時間戳,用于管理cell的版本,當向表中插入數(shù)據(jù)的時候HBase自動生成TimeStamp,每個cel1中,不同版本的數(shù)據(jù)按照時間倒序排序,即最新的數(shù)據(jù)排在最前面。每次數(shù)據(jù)操作對應的時間戳,可以看作是數(shù)據(jù)的versionnumberc)ColumnFamily:列簇,Table在水平方向有一個或者多個ColumnFamily組成,一個ColumnFamily中可以由任意多個Column組成,ColumnFamily必須在創(chuàng)建表的時候預先定義,一旦表創(chuàng)建完成列族就不能更改了,但列族中的列可以根據(jù)需要隨時添加即ColumnFamily支持動態(tài)擴展,無需預先定義Column的數(shù)量以及類型,因此HBase可以支持表中的兩行記錄有不同的列。在HBase中,對數(shù)據(jù)庫中的表的訪問控制、對內(nèi)存和磁盤的使用情況統(tǒng)計都是在列族層面進行的。在HBase中,要訪問表中的記錄,只有三種方式:通過指定某一行記錄的RowKey訪問;通過指定RowKey的范圍訪問滿足條件的一些記錄;掃描整張表。(2)物理模型HBase中的表由行和列組成,列按照列族分組,這個在邏輯模型中表現(xiàn)為映射的映射。列族在物理模型中的表現(xiàn)為它的每個列族在硬盤上存儲為各自的HFile文件。這種物理上的隔離允許在列族底層HFile層面上分別進行管理。HBase的數(shù)據(jù)按照鍵值對存儲在HFile里。HFile是二進制文件,一行中一個列族的數(shù)據(jù)不一定存放在同一個HFile里,可能分散在多個HFile里。但是一行中列族的數(shù)據(jù)物理上是存放在一起的。如果單元內(nèi)沒有數(shù)據(jù),HBase是不會存儲任何東西的。當執(zhí)行讀操作時HBase不需要讀出一行中所有的數(shù)據(jù),只需要讀取用到列族的數(shù)據(jù)。面向列意味著當檢索指定單元時,HBase不需要讀占位符記錄。這兩個物理細節(jié)有利于稀疏數(shù)據(jù)集合的高效存儲和快速讀取。上表3.2的邏輯視圖對應的物理視圖如表3.3、表3.4、所示,表示物理上按列存儲,保存了數(shù)據(jù)的多個版本。表3.3表的物理模型(列族contents)RowKeyTimeStamp列族“contents"列名值n.wwwt6contents:htmlvhtml>n.wwwt5contents:htmlvhtml>n.wwwt3contents:htmlvhtml>…表3.4表的物理模型(列族anchor)RowKeyTimeStamp列族“anchor"列名值n.wwwt9anchor:CNNn.wwwt8anchor:mv.look.caCNN.com由HBase表的邏輯模型和物理模型,可將其特點總結(jié)如下:a)大:一個表可以有上億行,上百萬列b)面向列:面向列(族)的存儲和權(quán)限控制,列(族)獨立檢索。c)稀疏:對于為空(null)的列,并不占用存儲空間,因此,表可以設(shè)計的非常稀疏。5、HBase數(shù)據(jù)庫的應用HBase數(shù)據(jù)庫在處理海量數(shù)據(jù)方面可以有效地改進傳統(tǒng)數(shù)據(jù)庫對于過億記錄數(shù)據(jù)表的查詢、更新等操作效率低下的問題,減少對網(wǎng)絡(luò)資源的消耗、提高數(shù)據(jù)存儲效率和訪問的實時性。這些特點是HBase在以下領(lǐng)域的應用有很好的前景:(1)社交網(wǎng)站的數(shù)據(jù)管理社交網(wǎng)站是如今互聯(lián)網(wǎng)系統(tǒng)數(shù)據(jù)來源的主要入口。信息由龐大的普通用戶群體提供數(shù)量大、結(jié)構(gòu)復雜,同時這些信息是具有標簽性的含義的,傳統(tǒng)的數(shù)據(jù)庫很難對數(shù)據(jù)進行存儲和處理。利用HBase,可以將不同的數(shù)據(jù)根據(jù)其語義特點放在不同的RegionServer,然后利用一個全局HBase保存全局信息,記錄所有的RegionServer、區(qū)域信息及信息內(nèi)容結(jié)構(gòu)等[9]。這樣通過對數(shù)據(jù)的整合處理可以實現(xiàn)簡單的數(shù)據(jù)分類,提高查詢效率。(2)電子商務(wù)網(wǎng)站的數(shù)據(jù)管理伴隨著中國電子商務(wù)的發(fā)展海量的交易記錄隨之產(chǎn)生,如何有效地對這些交易記錄進行存儲、查詢、分析是一個巨大的挑戰(zhàn)[8]。關(guān)系數(shù)據(jù)庫無法滿足對海量數(shù)據(jù)的高效率存儲,也無法滿足動態(tài)擴展和高可用性的需求?;贖adoop平臺,可以設(shè)計采用HBase數(shù)據(jù)庫的四層系統(tǒng),從而實現(xiàn)海量交易記錄查詢系統(tǒng)。(3)RDF數(shù)據(jù)存儲系統(tǒng)隨著語義網(wǎng)的提出RDF作為一種用于表達語義信息,能在應用間交換且不喪失語義的通用框架得到了廣泛關(guān)注。RDF在提供靈活、強大的數(shù)據(jù)表述能力的同時也帶來了數(shù)據(jù)存儲和查詢的問題[11]。有研究人員就試圖將云計算與語義網(wǎng)結(jié)合起來以期解決海量RDF數(shù)據(jù)存儲和查詢難題。四、總結(jié)與建議大數(shù)據(jù)的產(chǎn)生將人們帶入了一個新的發(fā)展階段。企業(yè)面臨著新的挑戰(zhàn)和機遇,學者面臨著新的研究問題,他們都在試圖能乘上這輛快車。若要達到應用級,首先就要解決存儲級的問題,云計算平臺Hadoop應運而生,本文重點介紹了Hadoop系統(tǒng)的子項目HBase數(shù)據(jù)庫。首先介紹了Hadoop各組件與HBase的關(guān)系。作為Hadoop的核心技術(shù),HDFS和MapReduce對HBase有著重要的支持作用。HDFS是一個高容錯的文件系統(tǒng),支持高吞吐量的應用程序數(shù)據(jù)訪問,是Hbase的基礎(chǔ)層,對提高HBase的可靠性至關(guān)重要。MapReduce是一種適合對數(shù)據(jù)進行分布式計算的計算模式,通過提供Map和Reduce函數(shù)完成數(shù)據(jù)的并行式計算。然后本文介紹了HBase的技術(shù)架構(gòu)和存儲架構(gòu)。在技術(shù)架構(gòu)上,HBase為主從式架構(gòu),由一個Master節(jié)點、多個Regionserver節(jié)點和客戶端3部分組成,本文詳細闡述了各節(jié)點的作用及ZooKeeper項目對集群的管理作用。在存儲機構(gòu)部分,先介紹了HBase的寫數(shù)據(jù)過程,然后介紹了HLog和HFile兩種存儲格式及兩種格式每個數(shù)據(jù)塊的含義。緊接著介紹了HBase的數(shù)據(jù)模型,從邏輯模型和物理模型

溫馨提示

  • 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

提交評論