![數(shù)據(jù)結(jié)構(gòu)(從概念到算法)課件_第1頁](http://file4.renrendoc.com/view14/M06/0A/26/wKhkGWeAuyeAcJHCAAB-GnlBrZA879.jpg)
![數(shù)據(jù)結(jié)構(gòu)(從概念到算法)課件_第2頁](http://file4.renrendoc.com/view14/M06/0A/26/wKhkGWeAuyeAcJHCAAB-GnlBrZA8792.jpg)
![數(shù)據(jù)結(jié)構(gòu)(從概念到算法)課件_第3頁](http://file4.renrendoc.com/view14/M06/0A/26/wKhkGWeAuyeAcJHCAAB-GnlBrZA8793.jpg)
![數(shù)據(jù)結(jié)構(gòu)(從概念到算法)課件_第4頁](http://file4.renrendoc.com/view14/M06/0A/26/wKhkGWeAuyeAcJHCAAB-GnlBrZA8794.jpg)
![數(shù)據(jù)結(jié)構(gòu)(從概念到算法)課件_第5頁](http://file4.renrendoc.com/view14/M06/0A/26/wKhkGWeAuyeAcJHCAAB-GnlBrZA8795.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第9章大數(shù)據(jù)存儲與檢索010203目錄CONTENTS04大數(shù)據(jù)的定義與特征大數(shù)據(jù)存儲大數(shù)據(jù)檢索應用實例04本章小結(jié)01PART大數(shù)據(jù)的定義與特征大數(shù)據(jù)(BigData)是指需要通過快速獲取、處理、分析以從中提取價值的海量且多樣化的交易數(shù)據(jù)、交互數(shù)據(jù)與傳感數(shù)據(jù),其規(guī)模往往達到PB(1024TB)級。不同機構(gòu)對大數(shù)據(jù)也有不同的定義。麥肯錫全球研究院(MGI)對大數(shù)據(jù)的定義為:一種規(guī)模大到在獲取、存儲、管理、分析方面極大超出傳統(tǒng)數(shù)據(jù)庫軟件工具能力范圍的數(shù)據(jù)集合,具有海量的數(shù)據(jù)規(guī)模、快速的數(shù)據(jù)流轉(zhuǎn)、多樣的數(shù)據(jù)類型和價值密度低四大特征。移動信息化研究中心對大數(shù)據(jù)的定義為:大數(shù)據(jù)是幫助企業(yè)利用海量數(shù)據(jù)資產(chǎn),實時、精確地洞察未知邏輯領(lǐng)域的動態(tài)變化,并快速重塑業(yè)務流程、組織和行業(yè)的新興數(shù)據(jù)管理技術(shù)?;ヂ?lián)網(wǎng)數(shù)據(jù)中心(IDC)認為,大數(shù)據(jù)具備海量(Volume)、異構(gòu)(Variety)、高速(Velocity)和價值(Value)四大特性。9.1.1大數(shù)據(jù)定義大數(shù)據(jù)的定義與特征小數(shù)據(jù)與大數(shù)據(jù)的特征對比如下表所示。9.1.1大數(shù)據(jù)定義特征小數(shù)據(jù)大數(shù)據(jù)體積有限的量數(shù)據(jù)龐大徹底性樣本整個群體分辨率和索引性粗糙,弱精致,強關(guān)聯(lián)性弱強速度慢、定格快多樣性窄寬靈活性和可擴展性中等高大數(shù)據(jù)的定義與特征大數(shù)據(jù)的特征可以歸納為5個層面:Volume(數(shù)據(jù)容量)、Variety(數(shù)據(jù)類型)、Value(價值密度)、Velocity(速度)、Veracity(真實性),也就是大數(shù)據(jù)的5V特征。(1)數(shù)據(jù)容量Volume表示數(shù)據(jù)容量巨大。大型數(shù)據(jù)集一般在10TB規(guī)模。但在實際應用中,很多企業(yè)用戶把多個數(shù)據(jù)集放在一起,已經(jīng)形成了PB級的數(shù)據(jù)量??梢韵胂螅S著存儲設備容量的增大以及物聯(lián)網(wǎng)和人工智能等的發(fā)展,存儲數(shù)據(jù)還會呈幾何級增長。大數(shù)據(jù)的容量指標是動態(tài)增加的。9.1.2大數(shù)據(jù)特征大數(shù)據(jù)的定義與特征(2)數(shù)據(jù)類型Variety表示數(shù)據(jù)類型繁多。傳統(tǒng)的數(shù)據(jù)類型一般較為單一,且或多或少是同構(gòu)的,即結(jié)構(gòu)化的數(shù)據(jù),這種特點使它更易于管理。但在大數(shù)據(jù)中,數(shù)據(jù)來源各異,因而形式各異。大數(shù)據(jù)主要來源于互聯(lián)網(wǎng),包含多種數(shù)據(jù)類型,例如各種音頻和視頻文件、網(wǎng)絡日志、地理位置信息等。大數(shù)據(jù)大多為半結(jié)構(gòu)化,甚至完全非結(jié)構(gòu)化的數(shù)據(jù)類型。這類數(shù)據(jù)毫無特征可言,給大數(shù)據(jù)的存儲和檢索帶來極大的挑戰(zhàn)。9.1.2大數(shù)據(jù)特征大數(shù)據(jù)的定義與特征(3)價值密度Value表示價值密度。隨著物聯(lián)網(wǎng)的廣泛應用,信息感知無處不在,數(shù)據(jù)海量,但是其價值密度很低。大數(shù)據(jù)蘊藏著豐富的價值,挖掘價值往往類似沙里淘金。通過對大數(shù)據(jù)獲取、存儲、抽取、清洗,再經(jīng)過復雜地挖掘與分析才能從大數(shù)據(jù)中獲取到有價值的信息。如何從海量的數(shù)據(jù)中迅速地完成數(shù)據(jù)的價值提純是亟待解決的難題。(4)速度Velocity表示數(shù)據(jù)的產(chǎn)生和變化快。在高速網(wǎng)絡時代,通過能夠?qū)崿F(xiàn)軟件性能優(yōu)化的高速處理器和服務器創(chuàng)建實時數(shù)據(jù)流已經(jīng)成為流行趨勢。企業(yè)不僅需要了解如何快速創(chuàng)建數(shù)據(jù),還需要知道如何快速處理、分析數(shù)據(jù)并返回結(jié)果給用戶,以滿足用戶的實時需求。大數(shù)據(jù)的快速處理能力充分體現(xiàn)了它與傳統(tǒng)數(shù)據(jù)處理技術(shù)的本質(zhì)區(qū)別。9.1.2大數(shù)據(jù)特征大數(shù)據(jù)的定義與特征(5)真實性Veracity表示數(shù)據(jù)的真實性。數(shù)據(jù)真實性是一個在討論大數(shù)據(jù)時常常被忽略的屬性,但是它與其他的屬性同樣重要。采集到的大數(shù)據(jù)并不能保證完全、真實、準確,可能存在著錯誤的數(shù)據(jù)、甚至是偽造的數(shù)據(jù),而大數(shù)據(jù)分析高度依賴數(shù)據(jù)的真實性,越真實的數(shù)據(jù),就越有助于分析出準確的結(jié)果。9.1.2大數(shù)據(jù)特征大數(shù)據(jù)的定義與特征(1)物聯(lián)網(wǎng)的興起:物聯(lián)網(wǎng)和5G通信技術(shù)的發(fā)展使得智能終端廣泛應用于家用電器的控制。(2)暗數(shù)據(jù)遷移到云:尚未轉(zhuǎn)換為數(shù)字格式的數(shù)據(jù)稱為暗數(shù)據(jù),它是尚未開發(fā)的巨大存儲庫,未來這些模擬數(shù)據(jù)庫會被數(shù)字化并遷移到云中,有利于進一步分析和決策。(3)量子計算:盡管量子計算尚處于起步階段,但相關(guān)研究實驗從未停止,量子計算將能夠極大提升計算機數(shù)據(jù)處理能力,縮短處理時間。(4)邊緣計算:隨著物聯(lián)網(wǎng)的發(fā)展,企業(yè)收集數(shù)據(jù)的方式逐漸轉(zhuǎn)向設備端,邊緣計算相較于云計算更加靠近數(shù)據(jù)源頭,這樣可以有效降低數(shù)據(jù)傳輸處理到反饋的遲延,同時具有顯著的大數(shù)據(jù)收集與處理能力。(5)人工智能:隨著機器學習與人工智能(AI)的崛起,越來越多與人們生活日常息息相關(guān)的大數(shù)據(jù)被輸送到AI模型中,進一步提升了AI系統(tǒng)的智能化決策水平,以便更好地為人類服務。9.1.3大數(shù)據(jù)的行業(yè)發(fā)展趨勢02PART大數(shù)據(jù)存儲9.2.1數(shù)據(jù)存儲管理傳統(tǒng)的數(shù)據(jù)存儲管理已經(jīng)不能滿足大數(shù)據(jù)的發(fā)展要求,大數(shù)據(jù)存儲管理面臨著巨大的挑戰(zhàn)。大數(shù)據(jù)管理技術(shù)也不斷涌現(xiàn),有多種數(shù)據(jù)管理技術(shù)被廣泛關(guān)注,例如分布式存儲、內(nèi)存數(shù)據(jù)庫技術(shù)、列式數(shù)據(jù)庫技術(shù)、云數(shù)據(jù)庫技術(shù)、NoSQL技術(shù)、移動數(shù)據(jù)庫技術(shù)等。分布式存儲系統(tǒng)是將數(shù)據(jù)分散存儲在多臺獨立的設備上。內(nèi)存數(shù)據(jù)庫技術(shù)將數(shù)據(jù)放在內(nèi)存中直接操作,內(nèi)存的數(shù)據(jù)讀寫速度要比磁盤高出幾個數(shù)量級,因此數(shù)據(jù)保存在內(nèi)存中能為應用程序提供即時的響應和高吞吐量。列式數(shù)據(jù)庫是以列相關(guān)存儲架構(gòu)進行數(shù)據(jù)存儲的數(shù)據(jù)庫,主要適用于批量數(shù)據(jù)處理和即時查詢,占用更少的存儲空間,它是構(gòu)建數(shù)據(jù)倉庫的理想架構(gòu)之一。云數(shù)據(jù)庫是指被優(yōu)化或部署到一個虛擬計算環(huán)境中的數(shù)據(jù)庫,其可以被隨意地進行擴展,具有按需付費、按需擴展、高可用性以及存儲整合等優(yōu)勢。NoSQL(NotOnlySQL)泛指非關(guān)系型數(shù)據(jù)庫,適用于龐大的數(shù)據(jù)量、極端的查詢量和模式演化等場景下。移動數(shù)據(jù)庫是分布式數(shù)據(jù)庫的延伸和擴展,擁有分布式數(shù)據(jù)庫的諸多優(yōu)點和獨特的性能,能夠滿足未來人們訪問信息的要求。大數(shù)據(jù)存儲9.2.2分布式文件系統(tǒng)分布式文件系統(tǒng)(DistributedFileSystem)是指文件系統(tǒng)管理的存儲資源不一定直接連接在本地節(jié)點上,而是通過計算機網(wǎng)絡節(jié)點相連,或是若干不同的邏輯磁盤分區(qū)或卷標組合在一起而形成的完整、有層次的文件系統(tǒng)。分布式文件系統(tǒng)把大量數(shù)據(jù)分散到不同的節(jié)點上存儲,并使用備份機制,極大減小了數(shù)據(jù)丟失的風險。分布式文件系統(tǒng)具有冗余性,部分節(jié)點的故障并不影響整體的正常運行,而且即使出現(xiàn)故障的計算機存儲的數(shù)據(jù)損壞、甚至丟失,也可以由其他節(jié)點將缺失的數(shù)據(jù)恢復出來。大數(shù)據(jù)存儲9.2.2分布式文件系統(tǒng)Hadoop
Distributed
FileSystem(簡稱HDFS)是一個分布式文件系統(tǒng)。HDFS
與現(xiàn)有的分布式文件系統(tǒng)有很多共同點,但同時它與其他分布式文件系統(tǒng)的區(qū)別也非常明顯。HDFS
是基于滿足流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的,是一個具有高度容錯性的系統(tǒng),適合部署在廉價的商用服務器上。HDFS
能提供高吞吐量的數(shù)據(jù)訪問,非常適合那些有著超大數(shù)據(jù)集的應用程序。大數(shù)據(jù)存儲9.2.2分布式文件系統(tǒng)HDFS采用了主從(Master/Slave)結(jié)構(gòu)模型,一個HDFS集群由一個名稱節(jié)點(NameNode)和若干數(shù)據(jù)節(jié)點(DataNode)組成。其中,名稱節(jié)點作為主服務器,用于管理文件命名空間和調(diào)節(jié)客戶端對文件的訪問;集群中的數(shù)據(jù)節(jié)點才是真正存儲數(shù)據(jù)的地方,一般一個數(shù)據(jù)節(jié)點對應一臺服務器。HDFS系統(tǒng)架構(gòu)如圖所示。大數(shù)據(jù)存儲9.2.2分布式文件系統(tǒng)NameNode管理文件系統(tǒng)的命名空間,維護著文件系統(tǒng)樹以及整棵樹內(nèi)所有的文件和目錄,這些元數(shù)據(jù)以兩個文件的形式永久保存在本地磁盤上,即命名空間鏡像文件和編輯日志文件。NameNode也記錄著每個文件中各個塊所在的數(shù)據(jù)節(jié)點信息,但它并不持久化在硬盤上,而是存儲在內(nèi)存中,這些信息是在系統(tǒng)啟動時由DataNode發(fā)送過來的。因此,NameNode并不參與客戶數(shù)據(jù)的讀寫操作,只負責維護一些控制信息。大數(shù)據(jù)存儲9.2.2分布式文件系統(tǒng)DataNode是文件系統(tǒng)的工作節(jié)點,是真正存儲數(shù)據(jù)的位置。DataNode在存儲數(shù)據(jù)時以數(shù)據(jù)塊為單位讀寫數(shù)據(jù),數(shù)據(jù)塊是HDFS讀寫數(shù)據(jù)的基本單位。每個文件除了最后一個塊,其他塊都有相同的大小。數(shù)據(jù)塊一般都有多個備份,存儲在不同的DataNode中,DataNode也可以分布在不同的機架上。DataNode負責執(zhí)行文件系統(tǒng)客戶端發(fā)出的讀/寫請求,將數(shù)據(jù)塊持久化存儲在本地。DataNode同時也負責執(zhí)行NameNode發(fā)送過來的指令,例如進行數(shù)據(jù)塊的創(chuàng)建、刪除和復制。大數(shù)據(jù)存儲9.2.2分布式文件系統(tǒng)HDFS主要有以下幾個特點。(1)故障檢測和自動快速恢復硬件故障的出現(xiàn)在HDFS中是常態(tài)。由于整個HDFS系統(tǒng)由數(shù)百或數(shù)千個存儲著文件數(shù)據(jù)片段的服務器組成,且都很復雜,因此每一個部分都很有可能出現(xiàn)故障,這就意味著HDFS系統(tǒng)中總有一些部件是失效的??梢哉f,故障的檢測和自動快速恢復是HDFS一個很核心的設計目標(2)簡單、一致模型大部分的HDFS程序?qū)ξ募僮鞯男枨笫且淮螌懭攵啻巫x取。一個文件一旦被創(chuàng)建、寫入、關(guān)閉之后就不需要再修改了,這個假定簡化了數(shù)據(jù)一致的問題,同時也能提供高吞吐量的數(shù)據(jù)訪問。Map-Reduce程序或者網(wǎng)絡爬蟲應用都可以完美地適合這個模型。大數(shù)據(jù)存儲9.2.2分布式文件系統(tǒng)(3)大數(shù)據(jù)集運行在HDFS上的應用程序有著大量的數(shù)據(jù)集。典型的HDFS文件大小是GB到TB的級別,操作系統(tǒng)中磁盤塊的大小默認是512字節(jié),而hadoop2.x版本中塊的大小默認為128MB,其目的是減小尋址的開銷。只要塊足夠大,磁盤傳輸數(shù)據(jù)的時間必定會明顯大于這個塊的尋址時間。另外,HDFS提供很高的聚合數(shù)據(jù)帶寬,即一個集群中支持數(shù)百個節(jié)點,另一個集群中還應該支持千萬級別的文件。(4)數(shù)據(jù)訪問運行在HDFS上的應用程序必須流式地訪問它們的數(shù)據(jù)集,它不是運行在普通文件系統(tǒng)上的程序。HDFS被設計成適合批量處理的,而不是用戶交互式的。HDFS強調(diào)數(shù)據(jù)吞吐量,而不是數(shù)據(jù)訪問的反應時間。POSIX(PortableOperatingSystemInterfaceofUNIX)的很多硬性需求對HDFS應用都是非必需的,去掉POSIX中小部分關(guān)鍵語義可以獲得更好的數(shù)據(jù)吞吐量。(大數(shù)據(jù)存儲9.2.2分布式文件系統(tǒng)(5)異構(gòu)軟硬件平臺間的可移植性HDFS被設計成可以簡單實現(xiàn)平臺間的遷移,這樣將推動需要大數(shù)據(jù)集的應用更廣泛地采用HDFS作為平臺。(6)移動計算比移動數(shù)據(jù)更經(jīng)濟在靠近計算數(shù)據(jù)的真實存儲位置來進行計算是最理想的狀態(tài),尤其是在數(shù)據(jù)集特別巨大的時候,傳送代碼的通信代價通常比傳送數(shù)據(jù)小得多。因此,就近計算能消除網(wǎng)絡的擁堵,提高系統(tǒng)的整體吞吐量。一個假定就是遷移程序到距離數(shù)據(jù)更近的位置比將數(shù)據(jù)移動到程序運行更近的位置要更好。HDFS提供了讓程序?qū)⒆约阂苿拥骄嚯x數(shù)據(jù)存儲更近位置的接口。大數(shù)據(jù)存儲9.2.2分布式文件系統(tǒng)HDFS的設計理念是為了滿足特定的大數(shù)據(jù)場景,所以HDFS也具有一定的局限性,主要體現(xiàn)在以下幾點。(1)小文件問題文件系統(tǒng)的元數(shù)據(jù)是由NameNode保存在內(nèi)存中,而HDFS系統(tǒng)只有一個NameNode,文件系統(tǒng)所能存儲的文件總量受限于NameNode的內(nèi)存總?cè)萘?,因此過多的小文件會大量消耗NameNode的存儲量。(2)實時性差HDFS針對高數(shù)據(jù)吞吐量做了優(yōu)化,以獲取數(shù)據(jù)有延遲為代價,因此HDFS并不適用于對實時性要求很高的應用場景。(3)文件修改問題HDFS并不支持修改文件,HDFS適合一次寫入,然后多次讀取的場景。(4)不支持用戶的并行寫同一時間內(nèi),只能有一個用戶執(zhí)行寫操作。大數(shù)據(jù)存儲9.2.3NoSQL數(shù)據(jù)庫傳統(tǒng)的關(guān)系型數(shù)據(jù)庫可以很好地支持結(jié)構(gòu)化數(shù)據(jù)的存儲和管理,它們具有嚴格的數(shù)據(jù)模式和標準,并且支持事務的ACID特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)。但是,大數(shù)據(jù)時代的數(shù)據(jù)大多為半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù),傳統(tǒng)關(guān)系型數(shù)據(jù)庫并不適合存儲和管理這些數(shù)據(jù),因此NoSQL數(shù)據(jù)庫應運而生。NoSQL具有以下幾個特點。(1)靈活的可擴展性NoSQL數(shù)據(jù)庫種類繁多,但是它們有一個共同的特點,就是沒有關(guān)系型數(shù)據(jù)庫的關(guān)系性特性。數(shù)據(jù)之間沒有關(guān)系使擴展變得更加容易,如在架構(gòu)層面上無形之間帶來可擴展的能力。大數(shù)據(jù)存儲9.2.3NoSQL數(shù)據(jù)庫(2)大數(shù)據(jù)量和高性能大數(shù)據(jù)時代需要存儲的數(shù)據(jù)規(guī)模增大了好幾個數(shù)量級。盡管傳統(tǒng)的關(guān)系型數(shù)據(jù)庫一直在優(yōu)化以適應這種規(guī)模的增長,但是其特點決定存儲上限;NoSQL數(shù)據(jù)庫具有無關(guān)系性,數(shù)據(jù)庫的結(jié)構(gòu)也相對簡單,這些使得它具有非常高的讀寫性能,尤其是在大數(shù)據(jù)量場景下。一般關(guān)系型數(shù)據(jù)庫使用查詢緩存,而NoSQL使用的是記錄級緩存,即一種細粒度的緩存,所以在這個層面上來說NoSQL的性能就要高很多。(3)靈活的數(shù)據(jù)模型,可處理半結(jié)構(gòu)化和非結(jié)構(gòu)化的大數(shù)據(jù)在關(guān)系型數(shù)據(jù)庫中,數(shù)據(jù)字段需要事先建立好,因為系統(tǒng)運行后再增、刪字段是一件非常麻煩的事情。NoSQL數(shù)據(jù)庫在這一方面的優(yōu)勢就顯而易見了——NoSQL數(shù)據(jù)庫在數(shù)據(jù)模型約束方面更加寬松,無須用戶事先為要存儲的數(shù)據(jù)建立字段,且允許隨時存儲自定義的數(shù)據(jù)格式。NoSQL數(shù)據(jù)庫可以讓應用程序在一個數(shù)據(jù)元素中存儲任何結(jié)構(gòu)的數(shù)據(jù),如半結(jié)構(gòu)化、完全非結(jié)構(gòu)化的數(shù)據(jù)。大數(shù)據(jù)存儲9.2.3NoSQL數(shù)據(jù)庫近些年,伴隨著大數(shù)據(jù)的發(fā)展,NoSQL數(shù)據(jù)庫的發(fā)展十分迅猛。據(jù)統(tǒng)計,目前已經(jīng)出現(xiàn)50~150款NoSQL數(shù)據(jù)庫系統(tǒng)。它們一般被劃分為4類,分別是鍵值數(shù)據(jù)庫、列式數(shù)據(jù)庫、文檔數(shù)據(jù)庫和圖形數(shù)據(jù)庫,如圖所示。其中,鍵值數(shù)據(jù)庫以鍵值對為基本存儲單元,具有非常快的檢索能力,這樣可以極大提升數(shù)據(jù)檢索的效率;列式數(shù)據(jù)庫以列簇式存儲,具有很強的數(shù)據(jù)可擴展性,更容易進行分布式擴展;文檔型數(shù)據(jù)庫對數(shù)據(jù)結(jié)構(gòu)的要求不嚴格,使得數(shù)據(jù)存儲更加靈活多變;圖形數(shù)據(jù)庫主要用于社交網(wǎng)絡、推薦系統(tǒng)等典型場景,在圖計算和數(shù)據(jù)可視化方面具有天然的優(yōu)勢,但其構(gòu)建成本相對較高。大數(shù)據(jù)存儲9.2.4HBase數(shù)據(jù)庫HBase是一款基于Hadoop的分布式、可伸縮、面向列的開源數(shù)據(jù)庫,其用于存儲海量數(shù)據(jù)。HBase與一般的關(guān)系型數(shù)據(jù)庫不同,它是一款適用于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫,而且它是基于列而不是基于行的模式。HBase有如下幾個特點。(1)海量存儲HBase適合存儲PB級別的海量數(shù)據(jù),人們即使是使用廉價計算機上的HBase來存儲PB級別的數(shù)據(jù),也能在幾十毫秒到百毫秒內(nèi)獲得反饋數(shù)據(jù)。HBase的這個特點得益于其極易擴展性。正因為HBase擁有良好的擴展性,才為海量數(shù)據(jù)的存儲提供了便利。(2)列式存儲里“列式存儲”其實是列族存儲,其中列族是指多個列的組合。區(qū)別于原來關(guān)系型數(shù)據(jù)庫的行式存儲,HBase的列式存儲將行內(nèi)的數(shù)據(jù)按照列族分組,并且在物理存放上具有更加緊湊的空間使用效率。大數(shù)據(jù)存儲9.2.4HBase數(shù)據(jù)庫(3)極易擴展HBase的擴展性主要體現(xiàn)在兩個方面:一方面,通過橫向添加RegionSever的機器進行水平擴展,可以提高HBase的上層處理能力;另一方面,通過橫向添加DataNode的機器進行存儲層的擴容,可以提升HBase的數(shù)據(jù)存儲能力和后端存儲的讀寫能力。(4)高并發(fā)目前大部分采用HBase的架構(gòu)都是使用的廉價PC,因此單個I/O的延遲其實并不低。但是在并發(fā)的情況下,HBase的單個I/O延遲并不會變差很多,所以總體上用戶能獲得高并發(fā)、低延遲的服務。大數(shù)據(jù)存儲9.2.4HBase數(shù)據(jù)庫(5)稀疏稀疏主要是針對HBase列的靈活性而言的,即在列族中可以指定任意多的列,但只有列數(shù)據(jù)不為空的才會真正地占用存儲空間。HBase實際上是一個稀疏、多維度、有序的映射表,表中的每個單元是由行鍵、列族、列限定符和時間戳組成的唯一索引標識。當用戶在表中存儲數(shù)據(jù)時,表中的每一行至少由一個列族組成,每一個列族又包含任意多的列。同一個表模式的列族數(shù)量是固定的,即每一行有相同數(shù)量的列族,且列族的名稱相同,但每一行中每個列族的列個數(shù)是可以變動的。HBase的數(shù)據(jù)模型示意圖如圖所示。大數(shù)據(jù)存儲9.2.4HBase數(shù)據(jù)庫HBase中同一列族里面的數(shù)據(jù)存儲在一起,列族支持動態(tài)擴展,即不用提前定義列的數(shù)量,可隨時增加新的列。因此,同一個表中的不同行有相同的列族,但是可能具有完全不同的列。正因如此,對于整個映射表的每行數(shù)據(jù)而言,部分列的值是空的,所以HBase的表是稀疏的。HBase表中所有的行都是排好序的,一般按照行鍵的字典序排列。一個HBase表一般都很大,所以存儲時在行的方向上被分割成多個HRegion。HRegion是按大小分割的,默認大小為10GB。HBase表是自動分割HRegion的,其自動分割原理是:每個表最開始只有一個HRegion,隨著數(shù)據(jù)不斷被插入表中,HRegion不斷增大;當增大到一個閾值的時候,HRegion就會被等分成兩個新的HRegion;表中的行不斷增多,就會有越來越多的HRegion。HBase的數(shù)據(jù)單元層次示意圖如圖所示。大數(shù)據(jù)存儲9.2.4HBase數(shù)據(jù)庫HRegion是HBase中分布式存儲和負載均衡的最小單元,因此不同的HRegion可以分布在不同的HRegionServer上,但是HRegion不會拆分到多個服務器上。盡管HRegion是負載均衡的最小單元,但它并不是物理存儲上的最小單元。事實上,HRegion由一個或多個Store組成,每個Store保存一個列族,而每個Store又由一個MemStore和0個或多個StoreFile組成。HBase中所有的文件都存儲在HDFS上,其主要包括兩種文件類型:分別為HFile和HLogFile。HRegion的內(nèi)部結(jié)構(gòu)示意圖如圖所示。大數(shù)據(jù)存儲9.2.4HBase數(shù)據(jù)庫HFile是Hadoop的二進制格式文件,實際上StoreFile就是對HFile做了輕量級包裝,即StoreFile就是HFile。HFile內(nèi)部結(jié)構(gòu)示意圖如下圖所示。其中,Data為數(shù)據(jù)塊,保存的是表中的數(shù)據(jù),可以被壓縮;Meta為元數(shù)據(jù)塊,保存用戶自定義的鍵值對,也可以被壓縮;FileInfo是HFile的元數(shù)據(jù)信息,用戶也可以在這一部分添加自己的元信息;DataIndex是存儲Data塊索引信息的塊文件,每條索引的key是被索引block中第一條記錄的key;MetaData是存儲Meta塊索引信息的塊文件;Trailer是HFile的最后一部分,它用來存儲FileInfo、DataIndex、MetaIndex塊的偏移量和尋址信息。03PART大數(shù)據(jù)檢索傳統(tǒng)意義上的索引,其目標是加快查詢速度。索引是獨立于數(shù)據(jù)的,它通??梢员患虞d到內(nèi)存中,這樣就可以高效地進行數(shù)據(jù)訪問,例如典型的B樹等。但是在大數(shù)據(jù)中,這一點就變得不太現(xiàn)實。即使索引比實際數(shù)據(jù)小很多,但由于實際數(shù)據(jù)的規(guī)模非常大,索引量依然會很大,因此索引仍然無法全部被放入內(nèi)存,這樣就導致很多傳統(tǒng)數(shù)據(jù)庫的索引模式對大數(shù)據(jù)失效。關(guān)系型數(shù)據(jù)庫一般采用B+樹作為索引的數(shù)據(jù)結(jié)構(gòu)。在關(guān)系型數(shù)據(jù)庫中,數(shù)據(jù)隨機無序?qū)懺诖疟P上,B+樹能夠很好地提高數(shù)據(jù)庫的讀數(shù)據(jù)能力。對于大型分布式數(shù)據(jù)系統(tǒng),B+樹的性能就沒那么強了;這種情況下,日志結(jié)構(gòu)合并樹(LogStructuredMergeTree,LSM樹)是一個更好的選擇。9.3.1大數(shù)據(jù)索引大數(shù)據(jù)檢索LSM
樹是一種分層、有序、面向磁盤的數(shù)據(jù)結(jié)構(gòu)。LSM
樹的核心思想是以放棄部分讀數(shù)據(jù)能力來換取寫入能力的最大化。使用LSM
樹,假定內(nèi)存足夠大,因此不需要每次更新數(shù)據(jù)時就必須將數(shù)據(jù)寫入磁盤,而是將最新的數(shù)據(jù)駐留在內(nèi)存中,等積累到閾值后再使用歸并排序的方式將內(nèi)存中的數(shù)據(jù)歸并且追加到磁盤隊尾。事實上,所有待合并的樹都是有序的,因而我們可以通過合并排序的方式將它們快速合并到一起。LSM
樹的原理是把一棵大樹拆分成N
棵小樹,即將它寫入內(nèi)存中,隨著不斷更新數(shù)據(jù),小樹越來越大,達到一定的閾值之后,內(nèi)存中的小樹會被寫回到磁盤中,磁盤中的樹可定期做歸并操作,歸并成一棵大樹,以優(yōu)化讀性能。LSM
樹合并示意圖如圖所示。9.3.1大數(shù)據(jù)索引大數(shù)據(jù)檢索LSM樹與B樹的差異就體現(xiàn)于在讀性能和寫性能之間進行取舍,在犧牲性能的同時,尋找其他方案來彌補。LSM樹具有批量特性,可實現(xiàn)存儲延遲。當寫操作大于讀操作時,LSM樹相較于B
樹有更好的性能。這是因為隨著插入操作的增多,為了維護B樹結(jié)構(gòu),結(jié)點需要分裂,讀磁盤的隨機概率會變大,性能會逐漸減弱。LSM樹的數(shù)據(jù)更新只在內(nèi)存中操作,沒有磁盤訪問環(huán)節(jié)。如果讀取的是最近訪問過的數(shù)據(jù),則可以直接從內(nèi)存中讀取,減少了磁盤訪問,因而提高性能。9.3.1大數(shù)據(jù)索引大數(shù)據(jù)檢索
大數(shù)據(jù)檢索技術(shù)是科學家一直都在研究的內(nèi)容,搜索引擎就是發(fā)展很多年的一項檢索技術(shù)。搜索引擎是根據(jù)用戶需求和利用一定算法,運用特定策略從互聯(lián)網(wǎng)檢索出指定信息并反饋給用戶的一門
檢索技術(shù)。搜索方式大致可以分為4種:全文搜索引擎方式、元搜索引擎方式、垂直搜索引擎方式和目錄搜索引擎方式。(1)全文搜索引擎方式全文搜索引擎方式是利用爬蟲程序抓取互聯(lián)網(wǎng)上所有相關(guān)文章并予以索引的搜索方式,一般的
網(wǎng)絡用戶使用全文搜索引擎。全文搜索能夠方便、簡捷地獲得所有相關(guān)信息,但是搜索到的信息比
較龐雜,需要用戶進一步自行篩選。在用戶沒有明確檢索意圖的情況下,這種搜索方式非常高效。9.3.2大數(shù)據(jù)高效檢索大數(shù)據(jù)檢索(2)元搜索引擎方式元搜索引擎方式是基于多個搜索引擎結(jié)果并對之整合處理的二次搜索方式。元搜索方式適用廣泛,能夠準確地收集信息。不同全文搜索引擎的性能和反饋能力差異較大,導致各有利弊。元搜索引擎剛好能夠解決這個問題,有利于各基本搜索引擎間的優(yōu)勢互補。元搜索方式還有利于對基本搜索方式進行全局控制,引導全文搜索引擎自我完善。(3)垂直搜索引擎方式垂直搜索引擎方式是對某一特定行業(yè)內(nèi)數(shù)據(jù)進行快速檢索的一種專業(yè)搜索方式。這種方式適用于有明確搜索意圖情況下的檢索。例如,用戶購買機票、火車票、汽車票時或想要瀏覽網(wǎng)絡視頻資源時,都可以直接選用行業(yè)內(nèi)專用搜索引擎,以準確、迅速地獲得相關(guān)信息。(4)目錄搜索引擎方式目錄搜索引擎方式是依賴人工收集、處理數(shù)據(jù)并置于分類目錄鏈接下的搜索方式。這種方式通常是網(wǎng)站內(nèi)部使用的檢索方式。9.3.2大數(shù)據(jù)高效檢索04PART應用實例ApacheS
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年聲學懸浮物監(jiān)測儀合作協(xié)議書
- 2025年基礎機械:液壓件合作協(xié)議書
- 2025年沼氣集中供氣系統(tǒng)合作協(xié)議書
- 2025年產(chǎn)品特許經(jīng)營合同常用版(4篇)
- 2025年二手房東房屋租賃合同標準版本(4篇)
- 2025年九年級音樂教師工作總結(jié)第二學期(二篇)
- 2025年買賣房產(chǎn)合同標準版本(2篇)
- 2025年個人房屋租賃合同協(xié)議參考樣本(三篇)
- 2025年臨時勞動協(xié)議標準范文(2篇)
- 2025年企業(yè)勞動員工勞動合同模板(2篇)
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 五年級上冊脫式計算100題及答案
- 人教版九年級英語動詞時態(tài)專項練習(含答案和解析)
- 蘭州市規(guī)范醫(yī)療服務價格項目基準價格表
- 2006年度銀行業(yè)金融機構(gòu)信息科技風險評價審計要點
- 火災隱患整改登記表
- 普通地質(zhì)學教材
- 2022年全國高考詩歌鑒賞試題-教學課件
- 天津華寧KTC101說明書
- 2023-2024學年浙江省杭州市小學語文六年級上冊期末深度自測試題
- 縣道及以上公路保潔考核檢查評分表
評論
0/150
提交評論