




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
物聯(lián)網(wǎng)大數(shù)據(jù)處理技術(shù)與實踐InternetofThings
BigDataprocessingTechnologyandPractice物聯(lián)網(wǎng)大數(shù)據(jù)存儲與管理云文件系統(tǒng)的關(guān)鍵技術(shù)1NoSQL數(shù)據(jù)庫關(guān)鍵技術(shù)2PARTONE1云文件系統(tǒng)的關(guān)鍵技術(shù)師傅領(lǐng)進門,學藝在自身。------中國諺語物聯(lián)網(wǎng)大數(shù)據(jù)存儲與管理本書前面已經(jīng)分析了這些數(shù)據(jù)的特點,針對其存儲與管理,以下幾個特點對物聯(lián)網(wǎng)大數(shù)據(jù)的存儲與管理帶來如下挑戰(zhàn):物聯(lián)網(wǎng)大數(shù)據(jù)的海量性物聯(lián)網(wǎng)大數(shù)據(jù)的高維度和部分稀疏特性物聯(lián)網(wǎng)數(shù)據(jù)的時空相關(guān)性物聯(lián)網(wǎng)數(shù)據(jù)的序列性與動態(tài)流式特性HDFS的目標和基本假設(shè)條件由于系統(tǒng)是由大量廉價商用設(shè)備連接而成的,即使每一部分的故障概率都很低,連接在一起使用總的故障概率也將大幅提高。因此在系統(tǒng)中硬件故障成為大概率事件,這就意味著硬件故障成為常態(tài),快速地檢測故障并從故障中恢復成為系統(tǒng)設(shè)計的核心目標之一。(2)流式數(shù)據(jù)存取
HDFS設(shè)計注重數(shù)據(jù)存取的高吞吐量而不是數(shù)據(jù)訪問的低延時,系統(tǒng)以流式數(shù)據(jù)存取為主,批處理為主要使用方式,而不是一般文件系統(tǒng)中常用的交互使用方式。因此系統(tǒng)面向的應用是以大規(guī)模流量數(shù)據(jù)訪問為主的應用,對于需要大量低延時隨機數(shù)據(jù)訪問的應用來說并不合適。(1)
硬件失敗HDFS的目標和基本假設(shè)條件(4)簡單的一致性模型
HDFS被設(shè)計用來存取規(guī)模巨大的文件,文件大小以GB甚至TB為單位,而不是KB或MB級的小型文件。單個集群能夠支撐上千萬的這種大規(guī)模數(shù)據(jù)文件,因此文件系統(tǒng)必須能夠管理成千上萬的可擴展數(shù)據(jù)節(jié)點,并且具有高數(shù)據(jù)傳輸帶寬。
系統(tǒng)面向的多數(shù)應用具有一次寫、多次讀的特點,文件一經(jīng)創(chuàng)建,在寫入數(shù)據(jù)并且關(guān)閉之后就不再需要改變,而且數(shù)據(jù)通常只有一個寫入主體,這個特點簡化了數(shù)據(jù)一致性問題,使數(shù)據(jù)讀取的高吞吐量成為可能。(3)大數(shù)據(jù)集
HDFS的目標和基本假設(shè)條件HDFS使用Java語言開發(fā)而成,具有先天的可移植性,同時在設(shè)計上也注重了系統(tǒng)的可移植性,因此很容易從一個平臺移植到另一個平臺,這個特點有利于它的廣泛使用。(5)異構(gòu)軟硬件平臺的可移植性HDFS體系架構(gòu)HDFS系統(tǒng)最底層是由商用PC或商用服務器構(gòu)成的廉價集群,這些PC的操作系統(tǒng)可以是Linux或Windows,但在實際部署中使用Linux的居多,因為Linux是開源的,使用費用低,而且在必要的時候可以修改。HDFS運行在操作系統(tǒng)之上,以TCP/IP作為通信協(xié)議對集群進行統(tǒng)一管理。
HDFS邏輯分層結(jié)構(gòu)HDFS體系架構(gòu)HDFS物理部署實例如右圖所示,是一個HDFS物理部署實例,在這個實例中集群由兩個機架組成,每個機架都有一個交換機和16臺商用計算機,兩個機架由一個交換機連接,整個集群共有32臺計算機,其中一臺作為主節(jié)點(稱為NameNode),一臺作為備用主節(jié)點(稱為SecondaryNameNode),其他作為數(shù)據(jù)節(jié)點(稱為DataNode)。HDFS體系架構(gòu)HDFS系統(tǒng)管理示意圖文件數(shù)據(jù)以塊(Block)為單位存儲在DataNode中,文件元數(shù)據(jù)管理Block的標識BlockID和對應的存儲位置。當NameNode出現(xiàn)故障時,SecondaryNameNode提供備用的管理能力NameNode管理整個集群的文件元數(shù)據(jù),執(zhí)行文件系統(tǒng)命名空間的所有操作,包括打開、關(guān)閉、重命名、創(chuàng)建文件和目錄,為文件分配數(shù)據(jù)塊并指定文件到數(shù)據(jù)塊的映射客戶端對文件系統(tǒng)的訪問首先從NameNode獲得元數(shù)據(jù),但是客戶端不會從NameNode中直接得到文件數(shù)據(jù),客戶端需要從文件元數(shù)據(jù)中解析得到文件數(shù)據(jù)塊的位置,然后直接從DataNode中讀取,HDFS對用戶訪問不設(shè)限制SecondaryNameNode是為了增強系統(tǒng)的可靠性而配置的,為NameNode提供備用的管理能力。DataNode負責響應客戶端對文件數(shù)據(jù)的讀寫請求。性能保障
為了提高NameNode的處理速度,HDFS的元數(shù)據(jù)都存放在內(nèi)存中,所有對元數(shù)據(jù)的操作都是對內(nèi)存進行讀寫,相對于存放在磁盤上其處理速度大幅提高。這樣做的前提是元數(shù)據(jù)的數(shù)據(jù)量相對較小,內(nèi)存能夠放得下通過以下兩個方法可以增加內(nèi)存中元數(shù)據(jù)的存儲量:第一當然是增加內(nèi)存,但是內(nèi)存不能無限擴展;第二是采用一些壓縮算法,壓縮元數(shù)據(jù)的體積,比如對文件名采用前綴壓縮算法可以減少文件名所占用的空間
元數(shù)據(jù)全部存放于NameNode的內(nèi)存中有一個明顯的缺點就是,當NameNode發(fā)生故障時元數(shù)據(jù)將全部丟失,必須對元數(shù)據(jù)進行持久化處理,也就是保存在磁盤上,以便于故障后的恢復。(1)元數(shù)據(jù)操作
性能保障
HDFS采用機架感知的技術(shù)合理安排數(shù)據(jù)塊的位置,使數(shù)據(jù)存取效率更高。機架感知技術(shù)的原理是,相比于不同機架上的計算機,同一個機架上的計算機網(wǎng)絡(luò)距離更短,傳輸速度更快通基于機架感知原理,HDFS的數(shù)據(jù)塊復制策略是,數(shù)據(jù)塊的第一個副本寫在與客戶端同一個機架的DataNode上,如果客戶端不在集群范圍內(nèi)則寫在與客戶端網(wǎng)絡(luò)距離最近、網(wǎng)絡(luò)傳輸速度最高的節(jié)點上,數(shù)據(jù)塊的第二個副本由第一個副本傳輸?shù)酵粰C架的不同DataNode上,第三個副本由第二個副本傳輸?shù)讲煌瑱C架的DataNode上。這樣做使第一個和第二個副本可以很快地復制完成,但是為了防止由于機架的故障使數(shù)據(jù)不可用,所以第三個副本需要放在不同的機架上。對于數(shù)據(jù)塊的讀取基于機架感知技術(shù)同樣首先計算客戶端與不同數(shù)據(jù)塊的網(wǎng)絡(luò)距離,選擇從距離最近的DataNode上讀取數(shù)據(jù)。(2)數(shù)據(jù)塊的讀寫
性能保障
機架感知技術(shù)的核心是網(wǎng)絡(luò)距離的計算,不同DataNode的網(wǎng)絡(luò)距離可以根據(jù)統(tǒng)一編址的IP地址計算,也可以根據(jù)統(tǒng)一命名的網(wǎng)絡(luò)名稱來計算。HDFS對整個集群的數(shù)據(jù)塊分布還會采用再平衡的策略進行管理,當集群中某些DataNode的存儲空間剩余很多而有些存儲空間剩余很少時,系統(tǒng)會自動調(diào)整數(shù)據(jù)塊的分配,通過數(shù)據(jù)塊的遷移使整個集群的數(shù)據(jù)塊分布趨向均勻。(2)數(shù)據(jù)塊的讀寫
機架感知節(jié)點組織圖性能保障(3)智能信息檢索
DataNode會周期性地向NameNode發(fā)送心跳信號,NameNode處理這些信息,將近期沒有發(fā)送心跳信號的DataNode標記出來,并且不再將數(shù)據(jù)塊的讀寫請求分配給這些節(jié)點,同時這些節(jié)點上的數(shù)據(jù)塊也不再可用,相應文件元數(shù)據(jù)中的數(shù)據(jù)塊副本數(shù)減少,NameNode會定期檢查數(shù)據(jù)塊的副本數(shù)量,當小于配置的數(shù)量時會啟動復制功能,使數(shù)據(jù)塊的副本數(shù)量達到配置的要求。數(shù)據(jù)塊在讀取、寫入或傳輸過程中可能由于各種原因造成數(shù)據(jù)損壞,客戶端在寫數(shù)據(jù)塊的時候會同時生成數(shù)據(jù)塊的校驗和,校驗和會寫進一個單獨的隱藏文件,當客戶端從DataNode中讀取數(shù)據(jù)時會同時讀取數(shù)據(jù)塊的校驗和進行檢驗,如果不匹配,客戶端會選擇數(shù)據(jù)塊其他的副本,從而保證了數(shù)據(jù)的正確性。
性能保障(4)垃圾回收
當文件被刪除或數(shù)據(jù)塊副本配置數(shù)減小時會產(chǎn)生一些廢棄的數(shù)據(jù)塊,對于這兩種情況系統(tǒng)有不同的回收方式。當一個文件被用戶刪除以后,HDFS不會立刻將它安全刪除,而是將它移動到/trash目錄下,在文件從/trash刪除之前用戶還可以恢復它,被刪除的文件存放在/trash中的時間是可配置的,默認是6個小時。系統(tǒng)會自動掃描/trash目錄,將其中超過配置時間的文件刪除,刪除相應的元數(shù)據(jù),釋放相應的數(shù)據(jù)塊,這意味著文件被真正刪除,用戶將無法再恢復它。當一個文件所配置的副本數(shù)減小時,NameNode會挑選出可以刪除的數(shù)據(jù)塊,數(shù)據(jù)塊的刪除操作通過心跳信號傳遞給它所在的DataNode,相應的DataNode收到信號后執(zhí)行刪除操作,釋放指定的數(shù)據(jù)塊空間。
為了方便HDFS的使用,系統(tǒng)提供了多種應用接口,常用的有命令行接口、JavaAPI、Web接口等。
(5)訪問接口
PARTTWO2NoSQL數(shù)據(jù)庫關(guān)鍵技術(shù)NoSQL數(shù)據(jù)庫的優(yōu)勢靈活的數(shù)據(jù)模型NoSQL數(shù)據(jù)庫中數(shù)據(jù)可以按照它實際應用中建模的形態(tài)進行保存NoSQL數(shù)據(jù)庫可以在運行時任意增加或減少字段改變數(shù)據(jù)模型NoSQL數(shù)據(jù)庫的優(yōu)勢靈活的查詢分析NoSQL數(shù)據(jù)庫提供更靈活的查詢方式和更強大的查詢語言,人們可以使用NoSQL數(shù)據(jù)庫提供的查詢接口和查詢語言構(gòu)建任意復雜的查詢結(jié)果NoSQL數(shù)據(jù)庫還為特定查詢提供了方便,比如在面向圖的數(shù)據(jù)庫中,為人們提供了方便圖分析的各種查詢,如圖的遍歷、圖的最短路徑、圖的連通性分析等NoSQL數(shù)據(jù)庫的優(yōu)勢數(shù)據(jù)的版本管理NoSQL數(shù)據(jù)庫都提供數(shù)據(jù)版本管理的功能(不是全部),版本管理最常見的是軟件和文檔的版本管理NoSQL數(shù)據(jù)庫本身就支持對數(shù)據(jù)項的版本管理,不需要額外設(shè)計,一個數(shù)據(jù)項可以根據(jù)配置保留多個歷史數(shù)據(jù)值,當然也可以配置成像關(guān)系數(shù)據(jù)庫那樣只保存一個數(shù)據(jù)值NoSQL數(shù)據(jù)庫的優(yōu)勢良好的可擴展性NoSQL數(shù)據(jù)庫通過放松對一致性的要求來實現(xiàn)分區(qū)容忍性的目標,很容易地將記錄分散存儲在多個服務器上,而且通過構(gòu)造適當?shù)乃惴梢詫崿F(xiàn)將記錄均勻地分布存儲在服務器NoSQL數(shù)據(jù)庫一般采用MapReduce計算模型(下一章將涉及),這種計算模型可以充分利用分布式計算的優(yōu)點,將運算部署在靠近數(shù)據(jù)的服務器上進行,一般情況下是將查詢計算分布部署在擁有數(shù)據(jù)的服務器上,可以很容易地實現(xiàn)數(shù)據(jù)的大規(guī)模并行搜索NoSQL數(shù)據(jù)庫的優(yōu)勢大數(shù)據(jù)量和高性能NoSQL數(shù)據(jù)庫良好的擴展性帶來了可以線性增加的存儲容量和計算能力,因此能夠處理大規(guī)模的數(shù)據(jù)存儲并提供高性能的數(shù)據(jù)吞吐能力NoSQL數(shù)據(jù)庫支持并行計算的特點使得它可以很容易地利用增加的服務器的計算能力,這已經(jīng)在前面進行了分析NoSQL數(shù)據(jù)庫的劣勢NoSQL數(shù)據(jù)庫的劣勢一共有如下的五方面:1)查詢的復雜性2)事務性和一致性3)關(guān)系完整性4)訪問控制5)標準化NoSQL數(shù)據(jù)庫的劣勢查詢的復雜性NoSQL數(shù)據(jù)庫的靈活性帶來學習難度:不同NoSQL數(shù)據(jù)庫有獨特的查詢語言和接口,增加了學習和應用的難度。SQL標準化強調(diào)關(guān)系數(shù)據(jù)庫優(yōu)勢:關(guān)系數(shù)據(jù)庫通過多年發(fā)展在SQL支持和查詢優(yōu)化方面表現(xiàn)卓越,提供了穩(wěn)定可靠的操作功能。NoSQL數(shù)據(jù)庫操作相對簡陋:NoSQL系統(tǒng)在數(shù)據(jù)庫操作的封裝上較為簡陋,用戶需在應用層面完成連接、過濾、映射等任務,與關(guān)系數(shù)據(jù)庫相比存在差距。NoSQL數(shù)據(jù)庫的劣勢事務性和一致性
對于對數(shù)據(jù)一致性和事務性要求較高的金融機構(gòu),傳統(tǒng)的關(guān)系數(shù)據(jù)庫仍然是首選。相較之下,大多數(shù)NoSQL數(shù)據(jù)庫為了追求可用性和分區(qū)容忍性,通常會放寬對數(shù)據(jù)一致性的要求,可能導致短期內(nèi)數(shù)據(jù)不一致的情況。此外,為了提高系統(tǒng)可擴展性和并行計算能力,許多NoSQL數(shù)據(jù)庫不支持事務,使得數(shù)據(jù)庫操作無狀態(tài),即無法在連續(xù)操作中提供回滾能力。NoSQL數(shù)據(jù)庫的劣勢關(guān)系完整性
關(guān)系數(shù)據(jù)庫通過外鍵約束自動保持數(shù)據(jù)關(guān)系的完整性,如在刪除關(guān)聯(lián)數(shù)據(jù)時會阻止破壞關(guān)系的操作。這得益于關(guān)系數(shù)據(jù)庫的設(shè)計。相反,NoSQL數(shù)據(jù)庫由于簡單的數(shù)據(jù)模型和分布式環(huán)境的限制,難以實現(xiàn)對關(guān)系完整性的強制檢查。在多副本和分布式存儲策略下,大多數(shù)NoSQL數(shù)據(jù)庫通常不會阻止刪除某個數(shù)據(jù)對象,即使其他對象仍在使用該數(shù)據(jù)。這凸顯了兩者在數(shù)據(jù)管理方面的不同。NoSQL數(shù)據(jù)庫的劣勢訪問控制
關(guān)系數(shù)據(jù)庫系統(tǒng)具備完善的用戶權(quán)限管理和內(nèi)建安全模型。與之不同,NoSQL數(shù)據(jù)庫在這方面存在不足,安全模型和策略因產(chǎn)品而異,用戶通常需要額外構(gòu)建安全措施,缺乏統(tǒng)一標準和系統(tǒng)內(nèi)集成。這突顯了兩者在訪問權(quán)限管理和安全性方面的差異,以及NoSQL數(shù)據(jù)庫的分散性和多樣性。NoSQL數(shù)據(jù)庫的劣勢標準化
SQL作為關(guān)系數(shù)據(jù)庫標準的典型代表,通過標準化工作可以減少學習重復,促進系統(tǒng)協(xié)調(diào)和合作。標準化還延長了代碼使用壽命和提高了可重復使用性。相比之下,NoSQL數(shù)據(jù)庫目前在標準化方面仍處于起步階段,由于產(chǎn)品多樣性和面向復雜領(lǐng)域,缺乏統(tǒng)一標準,導致使用不同產(chǎn)品需要重新學習相關(guān)知識。這突顯了兩者在標準化方面的差異和NoSQL數(shù)據(jù)庫面臨的挑戰(zhàn)。HBase數(shù)據(jù)庫系統(tǒng)HBase數(shù)據(jù)庫系統(tǒng)是應用廣泛的NoSQL數(shù)據(jù)庫系統(tǒng)之一,是GoogleBigtable的開源版本,建立在HDFS之上,具有高可靠性、高性能、列存儲、可伸縮、實時讀寫的特點。它通過行鍵(RowKey)和行鍵范圍(Range)來檢索數(shù)據(jù),主要用來存儲半結(jié)構(gòu)化的松散數(shù)據(jù)。HBase的主要目標是高效地管理半結(jié)構(gòu)化數(shù)據(jù),依靠橫向擴展,通過不斷增加廉價的商用服務器來提高計算和存儲能力。HBaseHBase數(shù)據(jù)模型HBase以表的形式存儲數(shù)據(jù),表由行和列組成。列劃分為若干個列族(ColumnFamily),一行由行鍵(RowKey)、版本號和若干個列組成。HBase中的表一般具有以下特點。大:一個表有上億行和上百萬列面向列:面向列(列族)的存儲,列(列族)獨立檢索稀疏:為空(Null)的列并不占用存儲空間,因此,表可以存儲稀疏的數(shù)據(jù)HBase數(shù)據(jù)模型行(Row)在表中以行為單位管理和存儲數(shù)據(jù),行由行鍵(RowKey)進行標識,HBase以字節(jié)數(shù)組來處理和存儲行鍵,行鍵可以以符串的形式表現(xiàn)。行是按照行鍵以詞典順序排序的,行鍵值最小的行在表的最上面。例如,從1到100的數(shù)字,就是按照1,10,100,11,12,…,9,91,92,93,94,95,96,97,98,99這樣的方式來排序保存的。要想以自然順序來保存整型數(shù),行鍵須在左邊以0填充。列族(ColumnFamily)和限定符(Qualifier)用戶根據(jù)這些列的性質(zhì)或結(jié)構(gòu)進行分組,將相同性質(zhì)、長度或結(jié)構(gòu)的列組成一個列族,列族需要在進行表結(jié)構(gòu)設(shè)計時就設(shè)計好,要像關(guān)系數(shù)據(jù)庫那樣在操作表之前將表結(jié)構(gòu)設(shè)計好在HBase中列的完整標識是“列族:限定符”。列族必須是可打印字符,也就是可見字符,但是限定符可以是任意字節(jié)數(shù)組。HBase數(shù)據(jù)模型版本號(Version)根據(jù)用戶的配置情況,HBase的數(shù)據(jù)可以以多版本的方式保存版本號有時候以時間戳來表示,以長整型數(shù)據(jù)保存,如一個時間戳可以設(shè)置為用java.util.Date.getTime()或System.currentTimeMillis()函數(shù)獲取的當前時間,并且當一個數(shù)據(jù)項被請求時,返回最新的版本開發(fā)者可以在插入數(shù)據(jù)時自定義版本號,然后通過指定這個版本號來重新獲取該值。數(shù)據(jù)項(Cell)數(shù)據(jù)項(Cell)是NoSQL數(shù)據(jù)庫中最小的數(shù)據(jù)單元,一個數(shù)據(jù)項由[行,列,版本號]這三個坐標唯一確定。數(shù)據(jù)項的內(nèi)容是用戶自定義的,以字節(jié)數(shù)組的形式保存,沒有格式、類型等限制。HBase系統(tǒng)架構(gòu):表和分區(qū)表中的所有行都按照行鍵的詞典順序排列,當達到一定規(guī)模后表會在行的方向上分割為多個分區(qū)。HBase系統(tǒng)架構(gòu):表和分區(qū)分區(qū)按大小分割,每個表一開始只有一個分區(qū),隨著數(shù)據(jù)不斷插入表中,分區(qū)不斷增大。當增大到一個閾值時,分區(qū)就會等分為兩個新的分區(qū),如下圖所示。表中的行不斷增多,就會有越來越多的分區(qū)。HBase系統(tǒng)架構(gòu):分區(qū)服務器分區(qū)存儲在分區(qū)服務器上。不同的分區(qū)可以分布在不同的分區(qū)服務器上,但一個分區(qū)是不會拆分存儲到多個分區(qū)服務器上的。一個分區(qū)服務器可以存儲多個分區(qū)。HBase系統(tǒng)架構(gòu):分區(qū)和存儲塊分區(qū)由一個或者多個塊組成,每個塊保存一個列族。每個塊又由一個內(nèi)存塊和0至多個塊文件組成HBase系統(tǒng)架構(gòu):分區(qū)和存儲塊內(nèi)存塊是放在內(nèi)存里的塊,用來保存修改的數(shù)據(jù)。當內(nèi)存塊的大小達到一個閾值時,內(nèi)存塊會被寫進文件,生成一個塊文件。塊文件以HFile格式保存在HDFS上。塊文件的HFile格式分為6個部分:DataBlock:以Key-Value方式保存表中的數(shù)據(jù),可以被壓縮。MetaBlock:保存用戶自定義的Key/Value對,可以被壓縮。FileInfo:HFile的元信息,不可以被壓縮。DataBlockIndex:DataBlock的索引。每條索引的Key是被索引的Block的第一條記錄的Key。MetaBlockIndex:MetaBlock的索引。Trailer:這一段是定長的,保存了這6個部分每一段的偏移量。HBase集群組織架構(gòu)一個完整的HBase集群由客戶端(Client)、Master、Zookeeper集群和分區(qū)服務器集群組成。HBase集群組織架構(gòu)Client負責與分區(qū)服務器進行交互。HBase也采用主從結(jié)構(gòu)的管理方式。Master負責監(jiān)控集群中所有分區(qū)服務器的實例。其作用如下:存儲和管理分區(qū)服務器的元數(shù)據(jù)為分區(qū)服務器分配分區(qū);負責分區(qū)服務器的負載均衡;發(fā)現(xiàn)失效的分區(qū)服務器并重新分配其上的分區(qū)。Zookeeper是一個提供分布式鎖服務的輕量級文件系統(tǒng),同時也可以作為集群管理系統(tǒng)。HBase訪問接口HBase提供了多種形式的訪問接口,包括以下6種:NativeJavaAPI:最常規(guī)和高效的訪問方式,適合HadoopMapReduceJob并行批處理HBase表數(shù)據(jù)。HBaseShell:HBase的命令行工具,最簡單的接口,適合HBase管理使用。ThriftGateway:利用Thrift序列化技術(shù),支持C++、PHP、Python等多種語言,適合其他異構(gòu)系統(tǒng)在線訪問HBase表數(shù)據(jù)。RESTGateway:支持REST風格的HTTPAPI訪問HBase。Pig:可以使用PigLatin流式編程語言來操作HBase中的數(shù)據(jù),和Hive類似,本質(zhì)也是編譯成MapReduceJob來處理HBase表數(shù)據(jù),適合做數(shù)據(jù)統(tǒng)計。Hive:通過Hive可以使用類似SQL的語言來訪問HBase?;贜oSQL數(shù)據(jù)庫的物聯(lián)網(wǎng)大數(shù)據(jù)存儲與管理NoSQL數(shù)據(jù)庫本身是一個稀疏的、分布式的、持久化存儲的多維度排序Map,適合存儲高維度、稀疏的海量數(shù)據(jù)。NoSQL數(shù)據(jù)庫的特點(以HBase數(shù)據(jù)庫為例):其底層持久化是以列族為存儲單位分塊存儲,字段個數(shù)對底層結(jié)構(gòu)沒有影響,而MySQL、Oracle等關(guān)系數(shù)據(jù)庫以行(一條數(shù)據(jù))為單位存儲,當表中字段個數(shù)達到一定程度時,數(shù)據(jù)將被分片存儲,這樣會嚴重影響到插入、查詢的效率。HBase以HDFS為底層文件系統(tǒng),其分布式特性可以有效解決海量數(shù)據(jù)存儲的可擴展性問題。HBase的數(shù)據(jù)以分區(qū)為單位在集群中進行負載均衡,可以根據(jù)RowKey來確定數(shù)據(jù)發(fā)向集群中的哪個存儲節(jié)點。HBase可以使用多并發(fā)線程或修改自動緩存大小等方法提高寫入效率?;贖Base的物聯(lián)網(wǎng)數(shù)據(jù)庫設(shè)計技術(shù)RowKey的設(shè)計原則:HBase中不允許使用聯(lián)合主鍵來標識數(shù)據(jù),一條數(shù)據(jù)只能由一個RowKey項唯一標識。HBase索引建立在行鍵RowKey的基礎(chǔ)上,需要將查詢的維度或信息放在行鍵中。在右圖RowKey的設(shè)計下,HBase的客戶端數(shù)據(jù)寫入的步驟如下:當在初始階段或者Region發(fā)生了拆分時,首先客戶端Client向HMaster發(fā)送請求,獲取RootRegtion的地址。客戶端根據(jù)掃描RootRegion的地址找到UserRegion的.METATable地址。
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度施工合同糾紛和解免責協(xié)議
- 2025年度都市時尚酒吧連鎖經(jīng)營合作協(xié)議
- 工作交流座談會發(fā)言稿
- 整體防雷方案設(shè)計及接地系統(tǒng)方案
- 2025年郴州貨運從業(yè)資格考試題
- 影視劇本等信息保密合同
- 2024年學校勞動合同
- 凡爾賽條約及其影響的歷史解讀:初中歷史課堂探討案例
- 重要會議紀要與行動綱領(lǐng)
- 綜合英語(河北師范大學)知到課后答案智慧樹章節(jié)測試答案2025年春河北師范大學
- 溫庭筠《望江南》ppt課件
- 口腔正畸學單詞
- 公共場所健康證體檢表
- 普通高等學校獨立學院教育工作合格評估指標體系(第六稿)
- 內(nèi)襯修復用HTPO管材企標
- 部編教材一年級下冊生字筆順筆畫
- 多維閱讀第13級—A Stolen Baby 小猩猩被偷走了
- 二維火收銀使用手冊
- 2018版公路工程質(zhì)量檢驗評定標準分項工程質(zhì)量檢驗評定表交通安全設(shè)施
- EN12680.3中文
- 歐科模塊化風冷冷水熱泵機組報警代碼和維修步驟
評論
0/150
提交評論