在企業(yè)、學(xué)校和各類服務(wù)提供商的計(jì)算中心建設(shè)中,數(shù)據(jù)庫的搭建具有重要的地位。而為了滿足應(yīng)用的需求,需要不斷地提高和更新硬件設(shè)施,這是一筆巨大的開銷。并且隨著數(shù)據(jù)量的增加和服務(wù)請(qǐng)求的增長,傳統(tǒng)數(shù)據(jù)庫將會(huì)面臨諸多問題:
1)可擴(kuò)展性差:傳統(tǒng)數(shù)據(jù)不是為大規(guī)?缮炜s的分布式處理設(shè)計(jì)的,雖然也提供復(fù)制和分區(qū)的解決方案,但不能從根本上解決問題,并且非常難以安裝和維護(hù),甚至要犧牲一些傳統(tǒng)RDBMS(Relational DataBase Management System:關(guān)系型數(shù)據(jù)庫)的重要特性,不滿足彈性需求的要求;
2)海量數(shù)據(jù)條件下讀寫性能低下:當(dāng)數(shù)據(jù)或并發(fā)用戶超過某個(gè)數(shù)量級(jí)后,性能上會(huì)有明顯下降,不能滿足高并發(fā)讀寫的服務(wù)請(qǐng)求;
3)管理復(fù)雜困難:傳統(tǒng)數(shù)據(jù)庫的維護(hù)要求人員專業(yè)性強(qiáng),管理人員要進(jìn)行嚴(yán)格的培訓(xùn),對(duì)數(shù)據(jù)的管理和維護(hù)復(fù)雜;
4)運(yùn)行維護(hù)成本高:傳統(tǒng)數(shù)據(jù)庫很難進(jìn)行升級(jí)和更新,當(dāng)現(xiàn)有數(shù)據(jù)庫不能滿足應(yīng)用需求的時(shí)候一般是全部采用新的更強(qiáng)大的硬件和新版本的軟件,這樣不僅需要巨大的開銷,還會(huì)使數(shù)據(jù)庫暫停服務(wù),在很多場(chǎng)合這是不能容忍的。
1、云數(shù)據(jù)庫技術(shù)的發(fā)展和優(yōu)點(diǎn)
傳統(tǒng)數(shù)據(jù)庫在一定程度上滿足了目前傳統(tǒng)的應(yīng)用需求,但是由于其自身的缺陷和信息技術(shù)的發(fā)展,特別是在云計(jì)算平臺(tái)上海量數(shù)據(jù)的管理和應(yīng)用的背景之下,云數(shù)據(jù)庫成為新一代數(shù)據(jù)庫的發(fā)展方向,研究云數(shù)據(jù)庫具有重大的意義。
云計(jì)算按照服務(wù)類型大致可以分為三類 :IaaS(Infrastructure as a Service:基礎(chǔ)設(shè)施即服務(wù))、PaaS(Platform as a Service:平臺(tái)即服務(wù))和SaaS(Software as a Service:軟件即服務(wù))。云數(shù)據(jù)庫是在SaaS成為應(yīng)用趨勢(shì)的大背景下發(fā)展起來的云計(jì)算技術(shù),它極大地增強(qiáng)了數(shù)據(jù)庫的存儲(chǔ)能力,消除了資源的重復(fù)配置,讓軟、硬件升級(jí)變得更加容易。云數(shù)據(jù)庫具有高可擴(kuò)展性、高可用性,采用多租戶形式和支持資源有效分發(fā)等特點(diǎn)?梢哉f,云數(shù)據(jù)庫代表著數(shù)據(jù)庫技術(shù)未來發(fā)展的一種主流方向。目前,對(duì)于云數(shù)據(jù)庫的概念定義不盡相同,文中云數(shù)據(jù)庫定義是:云數(shù)據(jù)庫是部署在云計(jì)算環(huán)境中的數(shù)據(jù)庫。
在云數(shù)據(jù)庫應(yīng)用中,客戶端不需要了解云數(shù)據(jù)庫的底層細(xì)節(jié),所有的底層硬件和實(shí)現(xiàn)對(duì)客戶端而言是透明的,它就像在使用一個(gè)運(yùn)行在本地的數(shù)據(jù)庫一樣,非常方便簡單,同時(shí)又可以獲得理論上近乎無限的存儲(chǔ)和處理能力。具有如下優(yōu)點(diǎn):
動(dòng)態(tài)可擴(kuò)展:理論上,云數(shù)據(jù)庫具有無限可擴(kuò)展性,可滿足不斷增加的數(shù)據(jù)存儲(chǔ)需求。在面對(duì)不斷變化的條件時(shí),云數(shù)據(jù)庫可表現(xiàn)出很好的彈性。如:對(duì)于一個(gè)從事產(chǎn)品零售的電子商務(wù)公司,會(huì)存在季節(jié)性或突發(fā)性的產(chǎn)品需求變化;或者對(duì)于網(wǎng)絡(luò)社區(qū)站點(diǎn),可能會(huì)經(jīng)歷一個(gè)指數(shù)級(jí)的增長階段。這時(shí),就可以分配額外的數(shù)據(jù)庫存儲(chǔ)資源來處理增加的需求,其過程只需幾分鐘。一旦需求過去以后,就可立即釋放這些資源。
高可用性:不存在單點(diǎn)失效問題。如果一個(gè)節(jié)點(diǎn)失效了,剩余的節(jié)點(diǎn)就會(huì)接管未完成的事務(wù)。而且在云數(shù)據(jù)庫中,數(shù)據(jù)通常是復(fù)制的,在地理上也是分布的。諸如Google,Amazon 和IBM 等大型云計(jì)算供應(yīng)商具有分布在世界范圍內(nèi)的數(shù)據(jù)中心,通過在不同地理區(qū)間內(nèi)進(jìn)行數(shù)據(jù)復(fù)制,可以提供高水平的容錯(cuò)能力。例如,Amazon SimpleDB 會(huì)在不同的區(qū)間內(nèi)進(jìn)行數(shù)據(jù)復(fù)制,因此,即使整個(gè)區(qū)域內(nèi)的云設(shè)施發(fā)生失效,也能保證數(shù)據(jù)繼續(xù)可用。
較低的使用代價(jià):通常采用多租戶(multi -tenancy)的形式,這種共享資源的形式對(duì)于用戶而言可以節(jié)省開銷;而且用戶采用按需付費(fèi)的方式使用云計(jì)算環(huán)境中的各種軟、硬件資源,不會(huì)產(chǎn)生不必要的資源浪費(fèi)。另外,云數(shù)據(jù)庫底層存儲(chǔ)通常采用大量廉價(jià)的商業(yè)服務(wù)器,這也大大降低了用戶開銷。
易用性:使用云數(shù)據(jù)庫的用戶不用控制運(yùn)行原始數(shù)據(jù)庫的機(jī)器,也不必了解它身在何處。用戶只需要一個(gè)有效的鏈接字符串就可以開始使用云數(shù)據(jù)庫。大規(guī)模并行處理:支持幾乎實(shí)時(shí)的面向用戶的應(yīng)用、科學(xué)應(yīng)用和新類型的商務(wù)解決方案。
2、主流的云數(shù)據(jù)庫產(chǎn)品和比較
經(jīng)過近幾年的發(fā)展,各企業(yè)根據(jù)自身的業(yè)務(wù)需求和數(shù)據(jù)特征設(shè)計(jì)了各自的云數(shù)據(jù)庫,通過對(duì)當(dāng)前云數(shù)據(jù)庫市場(chǎng)的調(diào)查,結(jié)果如表1 所示。
使用云數(shù)據(jù)庫平臺(tái)可以直接采用Amazon、Microsoft、Oracle 的云存儲(chǔ)解決方案,但是建設(shè)這樣的平臺(tái)代價(jià)很大,對(duì)經(jīng)費(fèi)要求很高。同時(shí)也可以采用HBase、Hypertable 等開源的解決方案,這雖然免費(fèi)并且可以根據(jù)自身應(yīng)用做相應(yīng)的優(yōu)化,但是對(duì)技術(shù)要求很高,后期開發(fā)具有一定難度。為了選取合適的云數(shù)據(jù)庫,對(duì)各個(gè)產(chǎn)品進(jìn)行了對(duì)比。
2.1 Amazon 的SimpleDB
SimpleDB是Amazon 提供的簡單數(shù)據(jù)庫服務(wù),主要用于存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),并為數(shù)據(jù)提供查找、刪除等基本的服務(wù),其具體的實(shí)現(xiàn)細(xì)節(jié)Amazon 沒有公開。由于Amazon 主要是提供商業(yè)性的服務(wù),使用其服務(wù)需要一個(gè)Amazon 的帳戶,那么一個(gè)用戶帳戶就相當(dāng)于全集,而具體的數(shù)據(jù)則相當(dāng)于子集。由于SimpleDB簡單的數(shù)據(jù)存儲(chǔ)方式,其所有的數(shù)據(jù)都是以字符串形式存儲(chǔ),導(dǎo)致其采取詞典順序進(jìn)行查詢,數(shù)據(jù)操作很不方便?紤]到其技術(shù)封閉性,不能在實(shí)驗(yàn)環(huán)境中使用其平臺(tái)。
2.2 Google 的BigTable
BigTable是Google 基于GFS (Google File System)和Chubby 開發(fā)的分布式存儲(chǔ)系統(tǒng)。BigTable 是非關(guān)系型數(shù)據(jù)庫,是一個(gè)稀疏的、分布式、持久化存儲(chǔ)的多維度排序表。它采用行鍵(row key)、列鍵(column key)和時(shí)間戳(timestamp)對(duì)表進(jìn)行索引。表中的每個(gè)值都是未經(jīng)解釋的字節(jié)數(shù)組。BigTable 在行鍵上根據(jù)字典順序?qū)?shù)據(jù)進(jìn)行維護(hù),并且一張表的行鍵也是其劃分行區(qū)間,進(jìn)行Split 和負(fù)載均衡的依據(jù)。其設(shè)計(jì)目的是可靠地處理PB 級(jí)的數(shù)據(jù),并且能夠部署到上千臺(tái)機(jī)器上。BigTable 已經(jīng)實(shí)現(xiàn)了下面的幾個(gè)目標(biāo):適用性廣泛、可擴(kuò)展、高性能和高可用性。BigTable已經(jīng)在多個(gè)Google 的新產(chǎn)品和項(xiàng)目中得到了應(yīng)用,如Google Analytics 和Google Earth 等。
根據(jù)對(duì)BigTable 的研究,了解到BigTable 主要是Google 針對(duì)自身各種應(yīng)用設(shè)計(jì)的存儲(chǔ)系統(tǒng),并且沒有開源,在實(shí)驗(yàn)中無法使用。但是BigTable 的主要技術(shù)和實(shí)現(xiàn)都對(duì)外開放,并且BigTable 的研究資料非常豐富,在研究云存儲(chǔ)的過程中具有很高的借鑒意義和參考價(jià)值。
2.3 Microsoft 的SQL Azure
SQL Azure 是微軟的云關(guān)系型數(shù)據(jù)庫,是基于SQL Server 技術(shù)構(gòu)建的,主要為用戶提供數(shù)據(jù)應(yīng)用服務(wù)。SQL 簡化了數(shù)據(jù)庫的部署,用戶無需安裝和配置數(shù)據(jù)庫,也不需進(jìn)行維護(hù)和管理。并且,SQL Azure 還為用戶提供高可用性和容錯(cuò)能力。SQL Azure 做為一個(gè)商用數(shù)據(jù)庫,其提供一個(gè)云端的DBMS(DataBase Manager System),這使得本地應(yīng)用和云應(yīng)用可以在微軟的數(shù)據(jù)中心的服務(wù)器上存儲(chǔ)數(shù)據(jù)。用戶是按需付費(fèi),其中主要的費(fèi)用是操作費(fèi)用,而不是磁盤和DBMS 軟件投入的費(fèi)用。
SQL Azure 做為一款商業(yè)軟件,其采用按需服務(wù)、按需收費(fèi)的模式。由于其不開源,所以無法在實(shí)驗(yàn)環(huán)境中搭建,但是做為云數(shù)據(jù)庫中采用關(guān)系型數(shù)據(jù)模型的典型代表,依然具有重要的研究意義。
2.4 Apache 的HBase
HBase數(shù)據(jù)庫是基于Hadoop 的Apache 頂層項(xiàng)目,它是BigTable 的開源實(shí)現(xiàn),但存在很多不同之處。HBase 是一個(gè)在HDFS 上開發(fā)的面向列的分布式數(shù)據(jù)庫,主要支持實(shí)時(shí)的隨機(jī)讀寫超大規(guī)模數(shù)據(jù)集。HBase是自底向上地進(jìn)行構(gòu)建,能夠簡單地通過增加節(jié)點(diǎn)來達(dá)到線性擴(kuò)展。HBase 是非關(guān)系型數(shù)據(jù)庫,不支持SQL 查詢,但其具備了RDBMS 無法比擬的特性:在廉價(jià)硬件構(gòu)成的集群上管理超大規(guī)模的稀疏表。HBase系統(tǒng)結(jié)構(gòu)如圖1 所示。
HBase 采用一個(gè)Master 節(jié)點(diǎn)協(xié)調(diào)管理一個(gè)或多個(gè)RegionServer 從屬機(jī)(HBase 把表水平劃分成Region“區(qū)域”)。HBase 主控機(jī)(master)負(fù)責(zé)啟動(dòng)和注冊(cè)RegionServer,把Region 分配給RegionServer 并負(fù)責(zé)RegionServer的故障恢復(fù)。RegionServer 負(fù)責(zé)Region 的管理和響應(yīng)用戶的讀寫請(qǐng)求,當(dāng)有新的Region 產(chǎn)生時(shí),RegionServer 將通知Master 節(jié)點(diǎn)。
HBase 依賴于Zookeeper(Zookeeper 提供分布式鎖服務(wù),類似Google 的Chubby),它管理一個(gè)Zookeeper實(shí)例,作為集群的“權(quán)威”(authority),并負(fù)責(zé)根目錄表的位置、當(dāng)前集群主控機(jī)地址等重要信息的管理,并負(fù)責(zé)維護(hù)整個(gè)集群的工作狀態(tài)和災(zāi)難恢復(fù)。
HBase 是開源實(shí)現(xiàn),可以方便地從互聯(lián)網(wǎng)上下載安裝包和源代碼,非常適合企業(yè)、科研單位和學(xué)校進(jìn)行使用學(xué)習(xí)和再開發(fā)。但其操作和管理界面比較簡單不夠友好,需要進(jìn)一步提高。
2.5 云數(shù)據(jù)產(chǎn)品比較結(jié)果
通過對(duì)幾種具有代表性的云數(shù)據(jù)庫進(jìn)行研究,比較結(jié)果如表2 所示。
3、實(shí)驗(yàn)
綜上所述,決定采用HBase 做為研究云數(shù)據(jù)庫的實(shí)驗(yàn)平臺(tái)。
HBase 的安裝可以分為三種模式:單機(jī)模式、偽分布式模式和完全分布式模式。文中采用完全分布式模式,這樣可以模擬實(shí)際網(wǎng)絡(luò)環(huán)境,能夠體現(xiàn)云數(shù)據(jù)庫的特性,使實(shí)驗(yàn)結(jié)果更具有說服力。
3.1 實(shí)驗(yàn)環(huán)境的搭建
在實(shí)驗(yàn)環(huán)境中共有6 臺(tái)服務(wù)器,搭建完全分布式HDFS 與HBase 環(huán)境,采用hadoop0.20.0 與HBase0.92.0 版本,其中二臺(tái)節(jié)點(diǎn)做為Namenode 和Master 節(jié)點(diǎn),另外四臺(tái)做Datanode 和RegionServer,并且在其上運(yùn)行Zookeeper 服務(wù)。整個(gè)實(shí)驗(yàn)環(huán)境如圖2 所示。
在安裝Hadoop 和HBase 之前要在系統(tǒng)中安裝JDK 并配置好環(huán)境變量。在用戶目錄下安裝好Hadoop和HBase 之后,進(jìn)入Hadoop 目錄下輸入命令:
rm / tmp/ *
bin/ hadoop namenode – format
bin/ start-all.sh
來啟動(dòng)HDFS,可以使用bin/ hadoop dfsadmin – report來查看HDFS 的可用資源、實(shí)際使用百分比和Datanode的運(yùn)行情況。
HBase 是運(yùn)行在HDFS 之上的,所以必須確保HDFS 處于正常運(yùn)行狀態(tài)。同時(shí)因?yàn)榇嬖诎姹炯嫒菪詥栴},在啟動(dòng)HBase 之前必須讓HBase 確定使用Hadoop的版本,需要把Hadoop 目錄下的hadoop-0.20.2-core.jar 替換掉HBase/ lib 目錄下的hadoop-core-1.0.0.jar。最后確保集群中每臺(tái)的時(shí)間保持相對(duì)一致(誤差小于30 秒),進(jìn)入HBase 目錄輸入命令bin/ start-hbase.sh 啟動(dòng)HBase。用命令bin/ hbase shell 進(jìn)入外殼程序,用命令status 查看HBase 的狀態(tài)。
3.2 實(shí)驗(yàn)詳解
在完成實(shí)驗(yàn)環(huán)境的搭建之后,為了對(duì)HBase 官方描述的HBase 系統(tǒng)具備的特性進(jìn)行驗(yàn)證,設(shè)計(jì)了一些實(shí)驗(yàn)對(duì)HBase 集群進(jìn)行初步的測(cè)試:
1)海量數(shù)據(jù)的存儲(chǔ)
HBase 提供JAVA 編程API,在Eclipse 環(huán)境下編寫數(shù)據(jù)庫寫入程序,并且遞增數(shù)據(jù)寫入量,查看所需的時(shí)間,對(duì)性能進(jìn)行簡單的分析。
根據(jù)HBase 存儲(chǔ)的特點(diǎn),因?yàn)镠Base 是對(duì)Rowkey進(jìn)行排序的,隨機(jī)Rowkey 將被分配到不同的region上,這樣能發(fā)揮出分布式數(shù)據(jù)庫的優(yōu)點(diǎn)。而Value 對(duì)于HBase 來說不會(huì)進(jìn)行任何解析,其數(shù)據(jù)是否變化,對(duì)性能是不應(yīng)該有任何影響的。同時(shí)為了簡單起見,所有的數(shù)據(jù)都將只插入到一個(gè)表格的同一個(gè)列中。
數(shù)據(jù)插入性能測(cè)試的設(shè)計(jì)場(chǎng)景是這樣的:取隨機(jī)值的Rowkey 長度為2000 字節(jié),值的Value 長度為4000 字節(jié),每次插入10000 條數(shù)據(jù),直到1000 萬條結(jié)束。實(shí)驗(yàn)建立的表名為TestData,實(shí)驗(yàn)開始后可以從
http://master:60010 查看進(jìn)展。
結(jié)果表明從數(shù)據(jù)剛開始寫入時(shí),只存在1 個(gè)Region,隨著數(shù)據(jù)達(dá)到一定的規(guī)模之后TestData 開始分裂,并實(shí)現(xiàn)負(fù)載均衡,把Region 平均存放在Datanode中。
HBase 不僅支持自動(dòng)的負(fù)載均衡和副本容災(zāi)機(jī)制,并且讀寫性能也很優(yōu)秀,通過對(duì)上述實(shí)驗(yàn)數(shù)據(jù)寫入時(shí)間的統(tǒng)計(jì),數(shù)據(jù)寫入速度達(dá)到0.47ms/ 條(2127 條/秒),并且在理論上還有很大的提高可能,因?yàn)閷?shí)驗(yàn)用的數(shù)據(jù)庫寫入程序?yàn)閱尉程,沒有采用MapReduce 并行編程模型。如果采用MapReduce 模型,寫入速度將會(huì)有很大程度的提高。這將在以后的研究工作中得到實(shí)驗(yàn)驗(yàn)證。
2)數(shù)據(jù)庫的動(dòng)態(tài)擴(kuò)展。
相對(duì)傳統(tǒng)的數(shù)據(jù)庫,云數(shù)據(jù)庫具有近乎無限的可擴(kuò)展性,可以滿足不斷增加的數(shù)據(jù)存儲(chǔ)需求。在面對(duì)不斷變化的條件時(shí),云數(shù)據(jù)庫可以表現(xiàn)出很好的彈性。為證明云數(shù)據(jù)庫具有的這個(gè)優(yōu)勢(shì)設(shè)計(jì)了如圖3 所示的實(shí)驗(yàn)。
首先用5 臺(tái)服務(wù)器建立一個(gè)云數(shù)據(jù)庫平臺(tái),其中2臺(tái)Namenode 和Master,另外3 臺(tái)為Datanode 和RegionServer。啟動(dòng)HDFS 和HBase,待系統(tǒng)正常運(yùn)行之后查看HDFS 和HBase 狀態(tài)可以得到系統(tǒng)中正常的Datanode 和RegionServer 都是3 個(gè)。然后,在Namenode上注冊(cè)想要加入的節(jié)點(diǎn)IP 地址,于Hadoop 的conf目錄下的slaves 文件和HBase 的conf 目錄下的regionservers文件中添加新增節(jié)點(diǎn)描述,并把配置文件復(fù)制到整個(gè)集群的每臺(tái)服務(wù)器上。用start-all.sh 命令對(duì)整個(gè)HDFS 系統(tǒng)進(jìn)行啟動(dòng),這時(shí)系統(tǒng)會(huì)對(duì)注冊(cè)Slave 的節(jié)點(diǎn)進(jìn)行檢測(cè)。如果已經(jīng)掛載那么則跳過,否則將在該節(jié)點(diǎn)上啟動(dòng)HDFS 并掛載到系統(tǒng)中來。再運(yùn)行starthbase.sh 把新添加的RegionServer 掛載到集群中。最后,可以看到整個(gè)HDFS 和HBase 的可用節(jié)點(diǎn)都動(dòng)態(tài)地增加了。這種動(dòng)態(tài)擴(kuò)展性能能夠滿足動(dòng)態(tài)的需求并在節(jié)能方面具有很大的優(yōu)勢(shì)。
3)數(shù)據(jù)庫集群的抗毀性。
云數(shù)據(jù)庫的抗毀性是其中一個(gè)很重要的性能指標(biāo),主要體現(xiàn)在數(shù)據(jù)節(jié)點(diǎn)的容錯(cuò)性和Master 節(jié)點(diǎn)的動(dòng)態(tài)備份容錯(cuò)。針對(duì)這兩點(diǎn)設(shè)計(jì)實(shí)現(xiàn)了如圖4 所示的實(shí)驗(yàn)。
數(shù)據(jù)節(jié)點(diǎn)的容錯(cuò)性實(shí)驗(yàn):在搭建好數(shù)據(jù)庫集群中創(chuàng)建表并寫入一定量的數(shù)據(jù),手動(dòng)進(jìn)行負(fù)載均衡讓數(shù)據(jù)平均存放在每個(gè)節(jié)點(diǎn)中。然后,再在數(shù)據(jù)節(jié)點(diǎn)集群中kill 一定數(shù)量的節(jié)點(diǎn),并檢測(cè)數(shù)據(jù)是否可用。結(jié)果是:當(dāng)down 掉的數(shù)據(jù)節(jié)點(diǎn)小于集群配置dfs.replication的數(shù)據(jù)副本數(shù)時(shí),該集群的數(shù)據(jù)始終保持可用。
Master節(jié)點(diǎn)的動(dòng)態(tài)切換:Master 節(jié)點(diǎn)是管理數(shù)據(jù)的元數(shù)據(jù)表,表的查詢都要經(jīng)過元數(shù)據(jù)表的索引,所以Master 節(jié)點(diǎn)具有唯一性,并且Master 必須要高可靠。設(shè)計(jì)如圖5 所示的實(shí)驗(yàn)。
兩個(gè)節(jié)點(diǎn)同時(shí)運(yùn)行HMaster 服務(wù),其中一個(gè)為主Master,另一個(gè)為備份Master 并與主Master 保持同步。在數(shù)據(jù)庫集群正常運(yùn)行的情況下,在主Master 節(jié)點(diǎn)中kill 掉HMaster 進(jìn)程,集群在經(jīng)過zookeeper.session.timeout 定義的時(shí)間之后,檢測(cè)到主Master 節(jié)點(diǎn)不可用,這時(shí)集群將進(jìn)行Master 節(jié)點(diǎn)的切換,并且之前數(shù)據(jù)庫的數(shù)據(jù)不會(huì)丟失,整個(gè)集群依然可用。所以,備Master 在主Master 出異常不可用后將接替其管理HBase 數(shù)據(jù)庫的功能。
4、實(shí)驗(yàn)結(jié)果
通過實(shí)驗(yàn)可以看出HBase 在可擴(kuò)展性、海量數(shù)據(jù)存儲(chǔ)、高可用性以及管理和運(yùn)行維護(hù)方面具有很大的改進(jìn)和提高。
在動(dòng)態(tài)可擴(kuò)展性方面:實(shí)驗(yàn)表明HBase 在添加存儲(chǔ)節(jié)點(diǎn)對(duì)數(shù)據(jù)庫進(jìn)行擴(kuò)容的過程中,數(shù)據(jù)庫沒有停止服務(wù),并且也不要求物理機(jī)具有相同的架構(gòu)。說明HBase 的擴(kuò)展是在線、動(dòng)態(tài)具有彈性的。從而使得HBase 可用于提供彈性服務(wù),在服務(wù)峰值動(dòng)態(tài)加入大量節(jié)點(diǎn)用以滿足服務(wù)請(qǐng)求,提高服務(wù)質(zhì)量。而在低谷時(shí)期則關(guān)閉大量節(jié)點(diǎn),這樣可減少能量消耗降低成本。海量數(shù)據(jù)的讀寫性能方面:由于HBase 是基于HDFS 之上建立的,所以也繼承了其Map/ Reduce 的計(jì)算模型,這使其具有優(yōu)秀的讀寫性能。淘寶網(wǎng)通過優(yōu)化HBase 使得在數(shù)億條商品數(shù)據(jù)中查詢指定商品的時(shí)間可以達(dá)到毫秒級(jí)。
高可用性方面:傳統(tǒng)數(shù)據(jù)庫設(shè)計(jì)時(shí)是考慮如何避免故障的發(fā)生,而HBase 則是以大的集群為出發(fā)點(diǎn),把故障做為一個(gè)常態(tài)來進(jìn)行對(duì)待。HBase 采用多Master節(jié)點(diǎn)同時(shí)運(yùn)行的策略:其中一個(gè)Master 為主Master 提供服務(wù),而其它的Master 節(jié)點(diǎn)則保持與主Master 的同步,當(dāng)主Master 出錯(cuò)之后由Zookeeper 選舉產(chǎn)生新的主Master 繼續(xù)提供服務(wù)。對(duì)RegionServer 而言只要不同時(shí)有大于副本數(shù)目的節(jié)點(diǎn)失效則可保證數(shù)據(jù)一定可用。
另外,在低成本和易用性方面HBase 對(duì)傳統(tǒng)數(shù)據(jù)庫也有很大的優(yōu)勢(shì)。硬件方面HBase 只要求使用普通的商用服務(wù)器即可,軟件則是開源,節(jié)約了大量成本。并且,HBase 屏蔽了物理層,對(duì)于客戶端而言就像使用一個(gè)安裝在本地的數(shù)據(jù)庫,操作簡單,維護(hù)方便。
5、結(jié)束語
文中提出了可以使用云數(shù)據(jù)庫來解決當(dāng)前傳統(tǒng)數(shù)據(jù)庫面臨的諸多問題,并用HBase 做了驗(yàn)證性的實(shí)驗(yàn)。通過實(shí)驗(yàn)發(fā)現(xiàn)云數(shù)據(jù)庫除了可以提供傳統(tǒng)數(shù)據(jù)庫一樣的數(shù)據(jù)存儲(chǔ)服務(wù)以外,還解決了目前傳統(tǒng)數(shù)據(jù)庫面臨的問題,特別是在可擴(kuò)展性方面具有無與倫比的優(yōu)勢(shì)。云數(shù)據(jù)庫是未來數(shù)據(jù)庫發(fā)展的主流方向,可以做為企業(yè)單位、科研院所和學(xué)校數(shù)據(jù)庫的首選產(chǎn)品。
下一步實(shí)驗(yàn)和研究工作主要集中在云數(shù)據(jù)庫性能的詳細(xì)測(cè)試和分析,并根據(jù)實(shí)際的應(yīng)用場(chǎng)景進(jìn)行性能的優(yōu)化。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:云數(shù)據(jù)庫應(yīng)用研究
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10839713204.html