




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
分布式數(shù)據(jù)庫(kù)選型論證第一章主流數(shù)據(jù)庫(kù)技術(shù)介紹一、關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)是一種基于關(guān)系模型的數(shù)據(jù)庫(kù)管理系統(tǒng)。這種關(guān)系模型最初是由埃德加?科德在IBM的實(shí)驗(yàn)室提出的。目前很多主流的數(shù)據(jù)庫(kù)都是遵循這種關(guān)系模型。這種關(guān)系型的數(shù)據(jù)庫(kù)管理系統(tǒng)從上世紀(jì)80年代開始被廣泛應(yīng)用于存儲(chǔ)財(cái)務(wù)數(shù)據(jù)、制造業(yè)數(shù)據(jù)、個(gè)人信息數(shù)據(jù),互聯(lián)網(wǎng)各類應(yīng)用的數(shù)據(jù)。目前主流的RDBMS有OracleDatabase、MicrosoftSQLServer、MySQL、PostgreSQL等。關(guān)系型數(shù)據(jù)庫(kù)的特點(diǎn)主要有一個(gè)數(shù)據(jù)庫(kù)由多張表構(gòu)成、每張表都有用戶定義的表結(jié)構(gòu)信息(schema)來描述表格的結(jié)構(gòu)。每張表由行構(gòu)成,每行包含若干列,列的屬性由表格的schema定義。關(guān)系型數(shù)據(jù)庫(kù)可以解釋為面向行的數(shù)據(jù)庫(kù),每張表具有橫向的擴(kuò)展性,數(shù)據(jù)表是面向行增長(zhǎng)的,而列的模式是相對(duì)固定的。其功能主要包括以下幾點(diǎn)。數(shù)據(jù)的檢索功能:SQL語言的檢索功能主要包括基于主鍵、二級(jí)字段的查詢、聚合查詢、表連接查詢等功能。事實(shí)上數(shù)據(jù)庫(kù)的查詢功能是SQL語言里被使用最多的功能。.數(shù)據(jù)的操作功能:包括數(shù)據(jù)的插入、刪除、修改。數(shù)據(jù)的操作以行為單位,可以修改某具體行的特定列的值,也可以批量的對(duì)一組符合條件的行數(shù)據(jù)進(jìn)行操作。.事務(wù)處理的功能:數(shù)據(jù)庫(kù)事務(wù)是數(shù)據(jù)庫(kù)管理系統(tǒng)中執(zhí)行時(shí)一個(gè)獨(dú)立的單位,一般事務(wù)由一組數(shù)據(jù)庫(kù)管理系統(tǒng)中的指令組成。事務(wù)之間相互獨(dú)立,事務(wù)具有ACID四個(gè)重要的特性:原子性(Atomicity)、一致性(Consistency)、隔離性(isolation)和持久性(durability)。事務(wù)也是區(qū)分很多NoSQL與SQL數(shù)據(jù)庫(kù)的重要特性之一。.表結(jié)構(gòu)的定義功能:數(shù)據(jù)庫(kù)定義語言(DDL)是用于創(chuàng)建表,修改以及刪除表結(jié)構(gòu)(schema)的。DDL中也包括了對(duì)某個(gè)字段建立索引的功能。二、NoSQL技術(shù)1、Key.Value數(shù)據(jù)庫(kù)(鍵值數(shù)據(jù)庫(kù))Key.Value數(shù)據(jù)庫(kù)中對(duì)value(數(shù)據(jù))基本上沒有做什么限制,可以在value上存儲(chǔ)任何格式的數(shù)據(jù)。Key.Value數(shù)據(jù)庫(kù)的數(shù)據(jù)模型最為簡(jiǎn)單,因此其一般具有很好的性能、可擴(kuò)展性、靈活性。典型的代表有亞馬遜的DynamoEll]數(shù)據(jù)庫(kù)、RedisGoogle的LevalDB等。Key一Value只支持對(duì)數(shù)據(jù)的一些簡(jiǎn)單的操作:Key一Value對(duì)的插入、刪除、更新。根據(jù)實(shí)現(xiàn)的不同Key可以有序也可以無序,key有序意味著可以進(jìn)行key的范圍查找。Dynamo采用的是最終一致性的模型、亞馬遜公司將它用在對(duì)數(shù)據(jù)一致性要求不高的購(gòu)物車的應(yīng)用中。2、面向列的數(shù)據(jù)庫(kù)這類數(shù)據(jù)庫(kù)不僅具有傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)所具有橫向(面向行)的可擴(kuò)展性也支持面向列的動(dòng)態(tài)可擴(kuò)展性,它不需要像傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)需要使用DDL才能修改表結(jié)構(gòu)以及要遵循每行的列屬性要一致的規(guī)范。這類數(shù)據(jù)庫(kù)從GoGgle的BigTablet開始,之后出現(xiàn)了幾種開源的數(shù)據(jù)庫(kù)如HBase、Cassandra。HBase是BigTable的開源實(shí)現(xiàn),兩者有很多相同的設(shè)計(jì)理念,兩者的表結(jié)構(gòu)里面都有一個(gè)列簇(Columnfamily)的概念,每個(gè)列簇對(duì)列的個(gè)數(shù)和格式基本沒有限制,同時(shí)每列數(shù)據(jù)都附上了時(shí)間戳的概念,這使得數(shù)據(jù)列值可以擁有多個(gè)版本。BigTable和HBase從底層實(shí)現(xiàn)來看,本質(zhì)上也是一個(gè)分布式的Key—Value系統(tǒng),只不過這里的Key的結(jié)構(gòu)是一個(gè)包含了表名、主鍵名、列簇名、列名和時(shí)間戳的多元組。3、Graph數(shù)據(jù)庫(kù)(圖形數(shù)據(jù)庫(kù))同Key—Value數(shù)據(jù)庫(kù)一樣,Graph數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的value也不做限制°Graph數(shù)據(jù)庫(kù)的存儲(chǔ)單元有三個(gè):節(jié)點(diǎn)、關(guān)系、屬性。這類數(shù)據(jù)庫(kù)是用來存儲(chǔ)那些更適合用圖來描述的數(shù)據(jù),例如社交網(wǎng)絡(luò)的關(guān)系數(shù)據(jù)、交通道路節(jié)點(diǎn)的數(shù)據(jù)或者一些網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)等。Graph數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵是如何描述數(shù)據(jù)點(diǎn)之間連接關(guān)系,相對(duì)于關(guān)系型數(shù)據(jù)庫(kù)的關(guān)系模型,這種圖數(shù)據(jù)模型具有大量復(fù)雜、互連接、低結(jié)構(gòu)化的特點(diǎn),而我們知道在關(guān)系模型中表的連接操作效率往往是比較低的。目前相對(duì)比較成熟的開源Graph數(shù)據(jù)是Ne04Jti。n,Ne04J是一個(gè)用Java實(shí)現(xiàn)的兼容ACID的圖形數(shù)據(jù)庫(kù),Ne04J實(shí)現(xiàn)了一個(gè)非常高效的圖形引擎用來實(shí)現(xiàn)快速的面向圖形數(shù)據(jù)的各類操作。由于這類圖形數(shù)據(jù)結(jié)構(gòu)模型的復(fù)雜性,使得圖形數(shù)據(jù)庫(kù)具有較大的可擴(kuò)展性問題,要想實(shí)現(xiàn)分布式的圖形數(shù)據(jù)庫(kù)是非常困難的,這也是圖形數(shù)據(jù)庫(kù)一直未真正流行開來的一個(gè)重要的原因。4、文檔數(shù)據(jù)庫(kù)文檔數(shù)據(jù)庫(kù)是面向文檔的數(shù)據(jù)庫(kù),是用來存儲(chǔ)、檢索、管理文檔信息的數(shù)據(jù)庫(kù),存儲(chǔ)的文檔結(jié)構(gòu)大部分是半結(jié)構(gòu)化,如XML、JSON文檔等。這類數(shù)據(jù)庫(kù)的所存儲(chǔ)的文檔數(shù)據(jù)結(jié)構(gòu)往往是由具體的應(yīng)用決定的,文檔數(shù)據(jù)庫(kù)比較適用于那些不頻繁對(duì)已經(jīng)存在的文檔做修改的應(yīng)用。這一類型數(shù)據(jù)庫(kù)的代表是109en團(tuán)隊(duì)開發(fā)的MongoDB和ApacheCouchDB。與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)采用表格的形式存儲(chǔ)數(shù)據(jù)不同,MongoDB使用的是類似JSON格式的文檔結(jié)構(gòu)來存儲(chǔ)數(shù)據(jù),這種數(shù)據(jù)結(jié)構(gòu)的一個(gè)好處是可以實(shí)現(xiàn)動(dòng)態(tài)的表結(jié)構(gòu)(schema)。盡管MongoDB屬于NoSQL數(shù)據(jù)庫(kù),但是MongoDB實(shí)現(xiàn)了很多傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的功能:(1)含關(guān)鍵字字段查詢、范圍查詢,正則表達(dá)式查詢?cè)趦?nèi)的豐富查詢功能;(2)對(duì)二級(jí)索引的支持;(3)數(shù)據(jù)庫(kù)服務(wù)端運(yùn)行自定義Javascript腳本的功能;(4)集成MapReduce實(shí)現(xiàn)數(shù)據(jù)聚合分析的功能;(5)基于數(shù)據(jù)分片與數(shù)據(jù)備份機(jī)制的分布式存儲(chǔ)功能。規(guī)Key-Value數(shù)據(jù)庫(kù)rf面向列的數(shù)據(jù)庫(kù)文檔數(shù)據(jù)庫(kù)[j圖模型數(shù)據(jù)庫(kù)數(shù)據(jù)模型的復(fù)雜性圖1.1數(shù)據(jù)模型復(fù)雜性與數(shù)據(jù)規(guī)模的關(guān)系示意圖展示了不同數(shù)據(jù)模型復(fù)雜性與數(shù)據(jù)規(guī)模的關(guān)系。圖中根據(jù)數(shù)據(jù)存儲(chǔ)模型的復(fù)
雜性從低到高依次為Key.Value數(shù)據(jù)庫(kù)、類BigTable數(shù)據(jù)庫(kù)、描述復(fù)雜圖模型的圖形數(shù)據(jù)庫(kù)。這張圖從一定程度上反映了數(shù)據(jù)的存儲(chǔ)建模與數(shù)據(jù)規(guī)模的關(guān)系。第二章主要分布式數(shù)據(jù)庫(kù)技術(shù)介紹一、Hadoop技術(shù)架構(gòu)hadoop是一個(gè)免費(fèi)開源的分布式系統(tǒng)基礎(chǔ)架構(gòu),它最原始的版本是由Apache基金會(huì)開發(fā)的。Hadoop核心框架主要包括:HDFS和MapReduce。HDFS提供了海量數(shù)據(jù)存儲(chǔ),MapReduce則提供了海量數(shù)據(jù)計(jì)算和分析過程目前市面上免費(fèi)開源的Hadoop版本主要有三個(gè),分別是:Apache(最原始的版本,所有發(fā)行版均基于這個(gè)版本進(jìn)行改進(jìn))、Cloudera版本(Cloudera’SDistributionIncludingApacheHadoop,簡(jiǎn)稱CDH)、Hortonworks版本(HortonworksDataPlatform,簡(jiǎn)稱HDP)。Hadoop是一個(gè)分布式處理的軟件框架,相對(duì)于單機(jī)運(yùn)行,它更善于處理大數(shù)據(jù)量的問題。實(shí)現(xiàn)了Google的MapReduce編程模型和存儲(chǔ)框架提出的將應(yīng)用程序分割成許多小的并行的程序單元的要求,并且這些單元在任何節(jié)點(diǎn)上都可以執(zhí)行。在MapReduce中,要分清“作業(yè)(job)"和“任務(wù)(task)”。Job是還未執(zhí)行的的應(yīng)用程序,它處于準(zhǔn)備階段。而task則是正在各個(gè)計(jì)算節(jié)點(diǎn)上執(zhí)行的工作單元,是從一個(gè)作業(yè)劃分出來已經(jīng)實(shí)施的程序部分。此外,Hadoop提供的分布式文件系統(tǒng)(HDFS,HadoopDistributedFileSystei)主要負(fù)責(zé)各個(gè)節(jié)點(diǎn)上的數(shù)據(jù)存儲(chǔ),它是實(shí)現(xiàn)高吞吐率的數(shù)據(jù)讀寫功能的基礎(chǔ)。Maslcr節(jié)點(diǎn)Slave節(jié)點(diǎn)圖2.1Hadoop結(jié)構(gòu)圖Maslcr節(jié)點(diǎn)Slave節(jié)點(diǎn)Hadoop在分布式存儲(chǔ)和分布式計(jì)算方面為了可以提高速率和準(zhǔn)確度,都是采用了主/從(Master/Slave)的架構(gòu)模式,一系列在集群中運(yùn)行的后臺(tái)(deamon)程序就是這些要求的根本保障。根據(jù)分工不同可分為以下幾個(gè)部分組成:NameNode、SecondaryNameNode、DataNode、TaskTracker、JobTrackero如上圖2.1所示的,NameNode、SecondaryNameNode>JobTracker運(yùn)行在Master節(jié)點(diǎn)上,TaskTracker和DataNode運(yùn)行在Slave節(jié)點(diǎn)上,本機(jī)的數(shù)據(jù)都盡量交給這些數(shù)據(jù)處理程序來直接處理,以節(jié)約時(shí)間成本。2、郵簡(jiǎn)述HDFS(HadoopDistributedFileSystem)是分布式計(jì)算中數(shù)據(jù)存儲(chǔ)管理的基礎(chǔ)。HDFS的體系結(jié)構(gòu)是主/從(Master/Slave)模式,即一個(gè)NameNode和多個(gè)DataNode,如圖2.2所示。HDFS將數(shù)據(jù)文件分割成大小各異的數(shù)據(jù)塊(Block),分散存儲(chǔ)于各個(gè)DataNode中,并按照“一次寫入、多次讀取”的模式進(jìn)行讀寫。用戶如果要對(duì)數(shù)據(jù)進(jìn)行操作,都有要先訪問NameNode,它會(huì)處理用戶的請(qǐng)求,之后給DataNode分配具體任務(wù),也就是說NameNode負(fù)責(zé)調(diào)度安排,DataNode實(shí)施具體工作。圖2.2HDFS結(jié)構(gòu)示意圖HA(HighAvailability),即高可用性。HA為系統(tǒng)對(duì)外正常提供服務(wù)時(shí)間的百分比,也即是在出現(xiàn)故障的情況下還能保證數(shù)據(jù)存儲(chǔ)的可靠性的程度。HDFS的可靠性能夠利用平均無故障時(shí)間(MTTF)來衡量,即為HDFS正常服務(wù)的平均運(yùn)行時(shí)間;HDFS的可維護(hù)性是利用平均維護(hù)時(shí)間(MTTR)來衡量,即HDFS從不能正常服務(wù)到再次正常服務(wù)之間所需的平均維護(hù)時(shí)間。HDFS的HA可精確定義為如下公式:MTTF/(MTTF+MTTR)*100%(2.1)HDFS具備了較為完善的冗余備份和故障恢復(fù)機(jī)制,可以實(shí)現(xiàn)在集群中可靠地存儲(chǔ)數(shù)據(jù)文件。3、HBASE簡(jiǎn)述HBase是GoogleBigTable的開源實(shí)現(xiàn),是一個(gè)“NoSQL”,HBase不屬于Hadoop,但是依賴于Hadoop和ZooKeeper。其實(shí),與其說它是一個(gè)數(shù)據(jù)庫(kù),倒不如說它是一個(gè)Key-Value對(duì)的倉(cāng)庫(kù)更加合適,它和常用編程語言中Map類也有些相似之處。作為NoSQL,HBase并沒有采用基于行的存儲(chǔ)模式。在HBase中的數(shù)據(jù)表每列單獨(dú)存放在相鄰的物理單元,只需要訪問涉及到的列,因此可以在很大程度上降低整個(gè)集群系統(tǒng)的I/O開銷;HBase還支持并發(fā)地進(jìn)行查詢和處理,如果需要處理好幾列,可以開啟多個(gè)線程,每個(gè)線程處理一列或者幾列,以加快處理速度,因此它采用了這種基于列的存儲(chǔ)方式°HBase的數(shù)據(jù)表具有排列疏松,使用時(shí)間長(zhǎng),維度高的特點(diǎn),它按照Key值排序,其索引是行關(guān)鍵字(key值)、列關(guān)鍵字(Column)以及時(shí)間戳(Timestamp)。行關(guān)鍵字是行在表中的唯一標(biāo)識(shí),如果先后插入兩個(gè)行關(guān)鍵字相同的行,則后面一行會(huì)覆蓋掉前面一行。用戶在HBase表格中存儲(chǔ)數(shù)據(jù),每一行都有一個(gè)可排序的主鍵,多個(gè)在創(chuàng)建表時(shí)固定的列簇和任意多的列。HBase采用了主/從(Master-Slave)的架構(gòu)模式,其中HBase主節(jié)點(diǎn)節(jié)作為Master調(diào)控整個(gè)集群,同時(shí)定期檢測(cè)Regionserver發(fā)來的“心跳”以確認(rèn)其處于工作狀態(tài),同時(shí)為了確保元數(shù)據(jù)表中的所有數(shù)據(jù)都處于在線狀態(tài),HBaseMaster也會(huì)定期對(duì)元數(shù)據(jù)表進(jìn)行掃描。Regionserver運(yùn)行在Slave節(jié)點(diǎn)上,這些具體任務(wù)就是有它來完成的。為了實(shí)現(xiàn)HBaseHBase的分布式特性,集群需要大量的Regionserver。4、Hive簡(jiǎn)述Hive是一個(gè)基于Hadoop生態(tài)體系的數(shù)據(jù)倉(cāng)庫(kù)工具。它的最大優(yōu)勢(shì)是大大降低了MapReduce作業(yè)的開發(fā)時(shí)間。它沒有提供更快地開發(fā)Map和Reduce任務(wù)的方法,而是定義了一種類似SQL的查詢語言(HiveQL,簡(jiǎn)稱HQL)°Hive使用HiveQL語句進(jìn)行數(shù)據(jù)操作,并將其自動(dòng)轉(zhuǎn)化成一個(gè)或者多個(gè)MapReuce作業(yè),最后執(zhí)行這些MapReduce程序并將數(shù)據(jù)結(jié)果提交給最終用戶。HadoopStreaming縮短了“編碼、編譯、提交”的開發(fā)周期,而Hive完全摒棄了這一過程,只需要構(gòu)造HiveQL語句即可。HiveQL語句轉(zhuǎn)換成對(duì)應(yīng)的MapReduce底層操作。它還提供了一系列的工具進(jìn)行數(shù)據(jù)提取轉(zhuǎn)化加載,也可以實(shí)現(xiàn)對(duì)map和reduce函數(shù)的定制,為數(shù)據(jù)操作提供了良好的可擴(kuò)展性。此外,結(jié)合Sqoop、Mahout數(shù)據(jù)挖掘工具,可以有效地實(shí)現(xiàn)對(duì)數(shù)據(jù)倉(cāng)庫(kù)中多維數(shù)據(jù)的挖掘處理。因此,非常適合數(shù)據(jù)倉(cāng)庫(kù)的構(gòu)建。然而,Hadoop是一個(gè)批處理架構(gòu),因此,其任務(wù)的提高和高度會(huì)有較高的延遲和資源消耗。這會(huì)導(dǎo)致Hive即使針對(duì)非常小的數(shù)據(jù)量進(jìn)行查詢操作時(shí),也會(huì)造成十分嚴(yán)重的延遲現(xiàn)象。所以,在小數(shù)據(jù)集的分析和處理上,Hive遠(yuǎn)不如Oracle.DB2等關(guān)系數(shù)據(jù)庫(kù)。Hive的設(shè)計(jì)目的是為可容忍延遲的交互式數(shù)據(jù)查詢與分析提供服務(wù)。此外,Hive不適用于OLTP(聯(lián)機(jī)事務(wù)處理)和實(shí)時(shí)查詢、更新,它最適合用于對(duì)海量不可更改的數(shù)據(jù)集的批處理工作。Hive具有良好的容錯(cuò)機(jī)制、可伸縮性以及數(shù)據(jù)格式的松耦合。5、MongoDB簡(jiǎn)述MongoDB是由C++語言編寫的,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫(kù)系統(tǒng)。在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能oMongoDB旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案°MongoDB將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對(duì)組成。MongoDB文檔類似于JSON對(duì)象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。name:frsue,rtfield:valueage:26ffield;valuestatus:"A"*field;valuegroups:[Mnewsr\"sports"]——field;valueMongoDB的提供了一個(gè)面向文檔存儲(chǔ),操作起來比較簡(jiǎn)單和容易。可以在MongoDB記錄中設(shè)置任何屬性的索引(如:FirstName=〃Sameer〃,Address二〃8GandhiRoad")來實(shí)現(xiàn)更快的排序。可以通過本地或者網(wǎng)絡(luò)創(chuàng)建數(shù)據(jù)鏡像,這使得MongoDB有更強(qiáng)的擴(kuò)展性。如果負(fù)載的增加(需要更多的存儲(chǔ)空間和更強(qiáng)的處理能力),它可以分布在計(jì)算機(jī)網(wǎng)絡(luò)中的其他節(jié)點(diǎn)上這就是所謂的分片。Mongo支持豐富的查詢表達(dá)式。查詢指令使用JSON形式的標(biāo)記,可輕易查詢文檔中內(nèi)嵌的對(duì)象及數(shù)組。使用update。命令可以實(shí)現(xiàn)替換完成的文檔(數(shù)據(jù))或者一些指定的數(shù)據(jù)字段。Mongodb中的Map/reduce主要是用來對(duì)數(shù)據(jù)進(jìn)行批量處理和聚合操作。Map和Reduce。Map函數(shù)調(diào)用emit(key,value)遍歷集合中所有的記錄,將key與value傳給Reduce函數(shù)進(jìn)行處理。Map函數(shù)和Reduce函數(shù)是使用Javascript編寫的,并可以通過db.runCommand或mapreduce命令來執(zhí)行MapReduce操作。GridFS是MongoDB中的一個(gè)內(nèi)置功能,可以用于存放大量小文件。6、Cassandra簡(jiǎn)述Cassandra的數(shù)據(jù)模型是基于列族(ColumnFamily)的四維或五維模型。它借鑒了Amazon的完全分布式的Dynamo為基礎(chǔ),結(jié)合了GoogleBigTable基于列族(ColumnFamily)的數(shù)據(jù)模型,采用Memtable和SSTable的方式進(jìn)行存儲(chǔ)。在Cassandra寫入數(shù)據(jù)之前,需要先記錄日志(CommitLog),然后數(shù)據(jù)開始寫入到ColumnFamily對(duì)應(yīng)的Memtable中,Memtable是一種按照key排序數(shù)據(jù)的內(nèi)存結(jié)構(gòu),在滿足一定條件時(shí),再把Memtable的數(shù)據(jù)批量的刷新到磁盤上,存儲(chǔ)為SSTable。Cassandra是社交網(wǎng)絡(luò)理想的數(shù)據(jù)庫(kù),適合于實(shí)時(shí)事務(wù)處理和提供交互型數(shù)據(jù)。目前twitter和digg中都有使用。在CAP特性上,HBase選擇了CP,Cassandra更傾向于AP,而在一致性上有所減弱。Cassandra和HBase的一個(gè)重要區(qū)別是,Cassandra在每個(gè)節(jié)點(diǎn)是是一個(gè)單Java進(jìn)程,而完整的HBase解決方案卻由不同部分組成:有數(shù)據(jù)庫(kù)進(jìn)程本身,它可能會(huì)運(yùn)行在多個(gè)模式;一個(gè)配置好的HadoopHDFS分布式文件系統(tǒng),以及一個(gè)Zookeeper系統(tǒng)來協(xié)調(diào)不同的HBase進(jìn)程。第三章各類分布式數(shù)據(jù)庫(kù)技術(shù)對(duì)比、HBase與Mongodb對(duì)比對(duì)比項(xiàng)HBaseMongodb語言javaC++存儲(chǔ)方式列式數(shù)據(jù)庫(kù),集群部署時(shí)每個(gè)familycolumn保存在單獨(dú)的hdfs文件中文檔型數(shù)據(jù)庫(kù),整個(gè)數(shù)據(jù)都存在磁盤二級(jí)索引不支持支持主鍵存儲(chǔ)是rowkey,可以是任意字符串(最大長(zhǎng)度是64KB,實(shí)際應(yīng)用中長(zhǎng)度一般為10-100bytes),在hbase內(nèi)部,rowkey保存為字節(jié)數(shù)組。存儲(chǔ)時(shí),數(shù)據(jù)按照Rowkey的字典序(byteorder)排序存儲(chǔ)。記錄插入的順序和存放的順序一樣查詢只支持三種查找:通過單個(gè)rowkey訪問,通過rowkey的range,全表掃描支持集合查找,正則查找,范圍查找,支持skip和limit等等,讀效率比適合寫多讀少效率高M(jìn)apReduce支持支持mapreduce,不過mongodb的mapreduce支持不夠強(qiáng)大,如果沒有使用mongodb分片,mapreduce實(shí)際上不是并行執(zhí)行的數(shù)據(jù)讀寫機(jī)制采用LSM思想(Log-StructuredMerge-Tree),就是將對(duì)數(shù)據(jù)的更改hold在內(nèi)存中,達(dá)到指定的threadhold后將該批更改merge后批量寫入到磁盤,這樣采用的是mapfile+Journal思想,如果記錄不在內(nèi)存,先加載到內(nèi)存,然后在內(nèi)存中更改后記錄日志,然后隔一段時(shí)間批量的寫入data文件,這樣對(duì)內(nèi)存的要求較高,至少需要容納下熱點(diǎn)數(shù)據(jù)
將單個(gè)寫變成了批量寫,大大提高了寫入速度,讀數(shù)據(jù)時(shí)需要mergedisk上的數(shù)據(jù)和memory中的修改數(shù)據(jù),這顯然降低了讀的性能。和索引。二、HBase與Cassandra對(duì)比對(duì)比項(xiàng)語言出發(fā)點(diǎn)HBaseJavaBigTableCassandraJavaBigTableandDynamoLicenseProtocolApacheHTTP/REST(alsoThrift)ApacheCustom,binary(Thrift)數(shù)據(jù)分布表劃分為多個(gè)region存在不同regionserver上改進(jìn)的一致性哈希(虛擬節(jié)點(diǎn))存儲(chǔ)目標(biāo)大文件小文件一致性強(qiáng)一致性最終一致性,QuorumNRW策略架構(gòu)master/slavep2p高可用性伸縮性NameNode是HDFS的單點(diǎn)故障點(diǎn)RegionServer擴(kuò)容,通過將自身發(fā)布到Master,Master均勻分布RegionP2P和去中心化設(shè)計(jì),不會(huì)出現(xiàn)單點(diǎn)故障擴(kuò)容需在HashRing上多個(gè)節(jié)點(diǎn)間調(diào)整數(shù)據(jù)分布讀寫性能數(shù)據(jù)讀寫定位可能要通過最多6次的網(wǎng)絡(luò)RPC,性能較低。數(shù)據(jù)讀寫定位非常快數(shù)據(jù)沖突處理樂觀并發(fā)控制(optimisticconcurrencycontrol)向量時(shí)鐘臨時(shí)故障處理永久故障恢復(fù)RegionServer宕機(jī),重做HLogRegionServer'恢復(fù),master重新給其分配region數(shù)據(jù)回傳機(jī)制:某節(jié)點(diǎn)宕機(jī),hash到該節(jié)點(diǎn)的新數(shù)據(jù)自動(dòng)路由到下一節(jié)點(diǎn)做hintedhandoff,源節(jié)點(diǎn)恢復(fù)后,推送回源節(jié)點(diǎn)。Merkle哈希樹,通過Gossip協(xié)議同步MerkleTree,維護(hù)集群節(jié)點(diǎn)間的數(shù)據(jù)一致性
成員通信及錯(cuò)誤檢測(cè)Zookeeper基于GossipCAP1,強(qiáng)一致性,0數(shù)據(jù)丟失。2,可用性低。3,擴(kuò)容方便。1,弱一致性,數(shù)據(jù)可能丟失。2,可用性高。3,擴(kuò)容方便。二、HBase、Cassandra、MonogDb對(duì)比以下數(shù)據(jù)基于亞馬遜云平臺(tái)上對(duì)三個(gè)主流的NoSQL數(shù)據(jù)庫(kù)性能比較橫坐標(biāo)是吞吐量,縱坐標(biāo)是延遲,這是一對(duì)矛盾,吞吐量越大,延遲越低,代表越好。1.純粹插入,Cassandra領(lǐng)先,Loadphase,100.000.000records*1KBy[INSERTJ■CaBsandra2.-0.vMongodb2.4.65000■CaBsandra2.-0.vMongodb2.4.6Throughput,ops/sec2.讀修改操作各占一半情況下的修改性能:MongoDB明顯延遲增加,落敗:WorkloadA;Update(Update50%Read50%]3.讀修改操作各占一半情況下的讀性能:Cassandra落后3.4.95%的read和5%的update以讀為主的場(chǎng)景下修改性能:MongoDB落后:4.0?0??f%■—0500100015002000rhrougput,ops/sec.95%的read和5%的update以讀為主的場(chǎng)景下讀取性能:三者差不多,HBase好些WorkloadB:Read(5%update,95%read')■Hbmme口HBase好些WorkloadB:Read(5%update,95%read')■Hbmme口9?MongoDb2.fl.61000畋sur&efiE-l始鬻」也>或andrm2.0yx>Throughput,ops/sec6.100%的read:WorkloadC100%Rwd^^C^fis-andra3.0^^Hb^se0.92iWorkloadC100%Rwd^^C^fis-andra3.0^^Hb^se0.92ipiMengpDb2-4.650010001500Throughputopi/set5%的插入和95%的讀的場(chǎng)景下插入性能,Cassandra表現(xiàn)最好。8.5%的插入和95%的讀的場(chǎng)景下讀性能,Cassandra表現(xiàn)最好。WorkbadD:Read(5%inseirt,95%read)100015002000WorkbadD:Read(5%inseirt,95%read)100015002000ThrDughput,ops/sec908070605040302010。QJ耕」OJ><他甲冀0.92MpngaDbJ.4,59.50%的read-modify-write和50%的read,讀取性能:8070605040302080706050403020mo
!SE-ALkcw-rv—d船題M>qWorkloadF;R?ad(R?ad-Mr?dkffWritft50%r10.差:Hba-s&0.92SOO10001SOOThroughputjnp$/spr2000100015C010.差:Hba-s&0.92SOO10001SOOThroughputjnp$/spr2000Throughput,ops/&ec50%的read-modify-write和50%的read,修改性能,MongoDB表現(xiàn)最WorkloadF:Update(Read-Modify-Write50%,Read50%)11.11.90%的插入insert和10%的讀取,插入性能:四、HiveSQL與SQL對(duì)比數(shù)據(jù)庫(kù)的事務(wù)、索引以及更新都是傳統(tǒng)數(shù)據(jù)庫(kù)的重要特性。但是Hive到目前也不支持更新(這里說的是對(duì)行級(jí)別的數(shù)據(jù)進(jìn)行更新),不支持事務(wù);雖然Hive支持建立索引,但是它還不能提升數(shù)據(jù)的查詢速度。下表列出了RMDB和Hive的比較:比較項(xiàng)SQLHiveQLANSISQL支持不完全支持更新UPDATE\INSERT\DELETEinsertOVERWRITE\INTOTABLE事務(wù)支持不支持模式寫模式讀模式數(shù)據(jù)保存塊設(shè)備、本地文件系統(tǒng)HDFS延時(shí)低高多表插入不支持支持子查詢完全支持只能用在From子句中視圖UpdatableRead-only可擴(kuò)展性低高數(shù)據(jù)規(guī)模小大本文采用Oracle與Hive進(jìn)行性能對(duì)比測(cè)試,將測(cè)試數(shù)據(jù)分組,以1000W和2000W條數(shù)據(jù)為一個(gè)級(jí)別,分為5個(gè)組:1000W、2000W、3000W、4000W、6000W、8000W分別為一組測(cè)試數(shù)據(jù)。然后每一組數(shù)據(jù)分別在Hive數(shù)據(jù)倉(cāng)庫(kù)和Oracle數(shù)據(jù)庫(kù)中測(cè)試查詢時(shí)間(分別每組取10次,然后求平均值),最后比較查詢效率。測(cè)試時(shí)間表數(shù)據(jù)量級(jí)(萬條)Oracle測(cè)試時(shí)間(ms)Hive測(cè)試時(shí)間(ms)10006608100482000116811592730001629216682400021207181936000273711985480003362820769由實(shí)驗(yàn)分析可得:當(dāng)數(shù)據(jù)量較小時(shí),Hive優(yōu)勢(shì)無法體現(xiàn),甚至遠(yuǎn)不如Oracle數(shù)據(jù)庫(kù)。但是,隨著數(shù)據(jù)量級(jí)別的不斷增大,當(dāng)數(shù)據(jù)量超過3000W條時(shí),Hive的特點(diǎn)開始發(fā)揮優(yōu)勢(shì),當(dāng)測(cè)試數(shù)據(jù)為4000W條時(shí),Hive查詢時(shí)間已經(jīng)開始略優(yōu)于Oracle數(shù)據(jù)庫(kù),可以預(yù)測(cè)隨著數(shù)據(jù)量級(jí)的不斷增大,Hive數(shù)據(jù)倉(cāng)庫(kù)的優(yōu)勢(shì)會(huì)逐步體現(xiàn)出來。所以,在面對(duì)海量數(shù)據(jù)處理時(shí),基于Hive架構(gòu)數(shù)據(jù)倉(cāng)庫(kù)具有明顯的優(yōu)勢(shì)。五、HDFS、HBase與Hive的關(guān)系HDFS是GFS的一種實(shí)現(xiàn),他的完整名字是分布式文件系統(tǒng),類似于FAT32,NTFS,是一種文件格式,是底層的°Hive與Hbase的數(shù)據(jù)一般都存儲(chǔ)在HDFS上。HadoopHDFS為他們提供了高可靠性的底層存儲(chǔ)支持。容錯(cuò)率很高,即便是在系統(tǒng)崩潰的情況下,也能夠在節(jié)點(diǎn)之間快速傳輸數(shù)據(jù)°HBase是非關(guān)系數(shù)據(jù)庫(kù),是開源的Not-Only-SQL數(shù)據(jù)庫(kù),它的運(yùn)行建立在Hadoop上。HBase依賴于CAP定理(Consistency,Availability,andPartitionTolerance)中的CP項(xiàng)。HDFS最適于執(zhí)行批次分析。然而,它最大的缺點(diǎn)是無法執(zhí)行實(shí)時(shí)分析,而實(shí)時(shí)分析是信息科技行業(yè)的標(biāo)配。HBase能夠處理大規(guī)模數(shù)據(jù),它不適于批次分析,但它可以向Hadoop實(shí)時(shí)地調(diào)用數(shù)據(jù)。HDFS和HBase都可以處理結(jié)構(gòu)、半結(jié)構(gòu)和非結(jié)構(gòu)數(shù)據(jù)。因?yàn)镠DFS建立在舊的MapReduce框架上,所以它缺乏內(nèi)存引擎,數(shù)據(jù)分析速度較慢。相反,HBase使用了內(nèi)存引擎,大大提高了數(shù)據(jù)的讀寫速度。HBase作為面向列的數(shù)據(jù)庫(kù)運(yùn)行在HDFS之上,HDFS缺乏隨即讀寫操作,HBase正是為此而出現(xiàn)。HBase以GoogleBigTable為藍(lán)本,以鍵值對(duì)的形式存儲(chǔ)。項(xiàng)目的目標(biāo)就是快速在主機(jī)內(nèi)數(shù)十億行數(shù)據(jù)中定位所需的數(shù)據(jù)并訪問它oHBase是一個(gè)數(shù)據(jù)庫(kù),一個(gè)NoSql的數(shù)據(jù)庫(kù),像其他數(shù)據(jù)庫(kù)一樣提供隨即讀寫功能,Hadoop不能滿足實(shí)時(shí)需要,HBase正可以滿足。如果你需要實(shí)時(shí)訪問一些數(shù)據(jù),就把它存入HBase。可以用Hadoop作為靜態(tài)數(shù)據(jù)倉(cāng)庫(kù),HBase作為數(shù)據(jù)存儲(chǔ),放那些進(jìn)行一些操作會(huì)改變的數(shù)據(jù)。Hbase與hive都是架構(gòu)在Hadoop之上的。都是用Hadoop作為底層存儲(chǔ)。而Hbase是作為分布式數(shù)據(jù)庫(kù),而hive是作為分布式數(shù)據(jù)倉(cāng)庫(kù)。當(dāng)然hive還是借用Hadoop的MapReduce來完成一些hive中的命令的執(zhí)行。第四章分布式數(shù)據(jù)庫(kù)總結(jié)一、選型原則-所提供的功能是否能夠完整地解決問題,是否適應(yīng)于現(xiàn)有業(yè)務(wù)場(chǎng)景。數(shù)據(jù)庫(kù)的擴(kuò)展性如何。是否允許用戶添加自定義組成來滿足特殊的需求。所選擇分布式數(shù)據(jù)庫(kù)是否有豐富完整的文檔,并且能夠以免費(fèi)甚至付費(fèi)的形式得到專業(yè)的支持。所選擇分布式數(shù)據(jù)庫(kù)是否有很多人使用,尤其是一些大型企業(yè)在使用,并存在著成功的案例。二、選型方案本文建議擬選用關(guān)系型數(shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)與分布式存儲(chǔ)技術(shù)相結(jié)合的模式進(jìn)行數(shù)據(jù)庫(kù)選型。1、HBase作為開源的BigTable解決方案,依托Hadoop生態(tài)圈,越來越多的被企業(yè)用來作為數(shù)據(jù)的在線存儲(chǔ)方案,以解決PB級(jí)數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)與高并發(fā)訪問。技術(shù)社區(qū)資源豐富,在互聯(lián)網(wǎng)、金融、通信領(lǐng)域具有成熟的應(yīng)用案例。2、HBase的存儲(chǔ)方式有2種,一種是使用操作系統(tǒng)的本地文件系統(tǒng),另外一種則是在集群環(huán)境下使用Hadoop的HDFS,相對(duì)而言,使用HDFS將會(huì)使數(shù)據(jù)更加穩(wěn)定。HBase不僅可以向下提供運(yùn)算,它還能夠結(jié)合Hadoop的MapReduce向上提供運(yùn)算,與Spark計(jì)算平臺(tái)具有很好的結(jié)合,滿足未來對(duì)于歷史歸檔數(shù)據(jù)的統(tǒng)計(jì)分析應(yīng)用拓展需求。3、HBase是一個(gè)高可靠性、高性能、可伸縮的分布式存儲(chǔ)系統(tǒng),很適合存儲(chǔ)電子票據(jù)數(shù)據(jù)。HBase可以保障業(yè)務(wù)高并發(fā)開票能力,支持海量票據(jù)存儲(chǔ)和檢索;每份電子票據(jù)存儲(chǔ)三份,互為冗余備份;采用分庫(kù)分表技術(shù)解決了傳統(tǒng)關(guān)系型數(shù)據(jù)所不具備的寫擴(kuò)展能力。4、擴(kuò)展讀寫能力,隨著數(shù)據(jù)量和并發(fā)的增長(zhǎng),請(qǐng)求均勻分布在不同機(jī)器,數(shù)據(jù)自動(dòng)分片(Sharding),自動(dòng)均衡。分片之后,數(shù)據(jù)以Region為單位均勻分布在服務(wù)器節(jié)點(diǎn),跟Hadoop的無縫集成保障了其數(shù)據(jù)可靠性(HDFS)和海量數(shù)據(jù)分析的高性能(MapReduce)。5、水平擴(kuò)展(Scaling-Out)操作簡(jiǎn)單,擴(kuò)容時(shí)通過增加機(jī)器節(jié)點(diǎn)完成,數(shù)據(jù)自動(dòng)平衡,數(shù)據(jù)總量取決于集群節(jié)點(diǎn)數(shù)量,而且對(duì)錯(cuò)誤的兼容性比較高。三、主流HBase產(chǎn)品目前國(guó)內(nèi)市場(chǎng)上HBase產(chǎn)品主要分為兩大流派,一是以阿里云為代表的云數(shù)據(jù)庫(kù)HBase,通過云服務(wù)托管的模式為用戶提供全面的運(yùn)維服務(wù)。二是以硬件廠商為代表的企業(yè)級(jí)大數(shù)據(jù)平臺(tái)建設(shè)方案,通過提供整套大數(shù)據(jù)基礎(chǔ)設(shè)施建設(shè)方案滿足用戶對(duì)大數(shù)據(jù)存儲(chǔ)管理的需求。本文主要以第二種產(chǎn)品為論證對(duì)象,對(duì)主流大數(shù)據(jù)平臺(tái)產(chǎn)品進(jìn)行選型評(píng)估。1、華為FusionInsight企業(yè)級(jí)大數(shù)據(jù)平臺(tái)FusionInsight是華為面向眾多行業(yè)客戶推出的,基于Apache開源社區(qū)軟件進(jìn)行功能增強(qiáng)的企業(yè)級(jí)大數(shù)據(jù)存儲(chǔ)、查詢和分析的統(tǒng)一平臺(tái)。它以海量數(shù)據(jù)處理引擎和實(shí)時(shí)數(shù)據(jù)處理引擎為核心,并針對(duì)金融、運(yùn)營(yíng)商等數(shù)據(jù)密集型行業(yè)的運(yùn)行維護(hù)、應(yīng)用開發(fā)等需求,打造了敏捷、智慧、可信的平臺(tái)軟件、建模中間件及OM系統(tǒng),讓企業(yè)可以更快、更準(zhǔn)、更穩(wěn)的從各類繁雜無序的海量數(shù)據(jù)中發(fā)現(xiàn)全新價(jià)值點(diǎn)和企業(yè)商機(jī)。其主要技術(shù)指標(biāo)如下圖所示:分類指標(biāo)項(xiàng)規(guī)格說明并行計(jì)算引擎(MapReduce)性能指標(biāo)WordCount:平均每節(jié)點(diǎn)處理能力(GB/分鐘)8GB/分鐘12節(jié)點(diǎn)集群;節(jié)點(diǎn)典型配置:CPU:2*E5-2650內(nèi)存:128G硬盤:SATA盤Terasort:平均每節(jié)點(diǎn)處理能力(GB/分鐘)6GB/分鐘并行計(jì)算引擎(Spark)性能指標(biāo)WordCount:平均每節(jié)點(diǎn)處理能力(GB/分鐘)27GB/分鐘/NodeTerasort:平均每節(jié)點(diǎn)處理能力(GB/分鐘)6GB/分鐘/NodeHive性能指標(biāo)處理能力-HiveAggregation:平均每節(jié)點(diǎn)處理能力(GB/分鐘)8GB/分鐘處理能力-HiveJoin:平均每節(jié)點(diǎn)處理能力(GB/分鐘)2GB/分鐘HBase性能指標(biāo)100%隨機(jī)讀:平均每節(jié)點(diǎn)讀取記錄條數(shù)(每條記錄1KB),響應(yīng)時(shí)間小于50MS100%隨機(jī)寫:平均每節(jié)點(diǎn)寫入記錄條數(shù)(每條記錄1KB),響應(yīng)時(shí)間小于50MS順序掃描:平均每節(jié)點(diǎn)scan記錄條數(shù)(每條記錄1KB),響應(yīng)時(shí)間小于50MS產(chǎn)品規(guī)格如下:系統(tǒng)指標(biāo)規(guī)格
系統(tǒng)支持最大節(jié)點(diǎn)數(shù)4000可靠性指標(biāo)-MTTF17520小時(shí)可靠性指標(biāo)-MTTR1小時(shí)可靠性指標(biāo)-MTBF17521小時(shí)可服務(wù)性規(guī)格-可軟件安裝時(shí)間<2小時(shí)可服務(wù)性規(guī)格-擴(kuò)容完成時(shí)間<2小時(shí)100節(jié)點(diǎn)內(nèi)可服務(wù)性規(guī)格-軟件升級(jí)時(shí)間<2小時(shí)100節(jié)點(diǎn)內(nèi)2、浪潮云海Insight大數(shù)據(jù)平臺(tái)云海Insight大數(shù)據(jù)平臺(tái)包含Hadoop與Spark發(fā)行版(云海InsightHD)、分布式并行數(shù)據(jù)庫(kù)(云海InsightMPP)等產(chǎn)品套件,提供多源數(shù)據(jù)集成、高效存儲(chǔ)、分布式計(jì)算與調(diào)度、高并發(fā)訪問以及分析挖掘能力,可應(yīng)對(duì)GB-PB量級(jí)的海量異構(gòu)數(shù)據(jù)場(chǎng)景,幫助客戶輕松構(gòu)建數(shù)據(jù)的全生命周期管理體系。其主要技術(shù)指標(biāo)如下圖所示:分類指標(biāo)項(xiàng)規(guī)格說明并行計(jì)算引擎(MapReduce)性能指標(biāo)WordCount:平均每節(jié)點(diǎn)處理能力(GB/分鐘)8GB/分鐘8節(jié)點(diǎn)集群;節(jié)點(diǎn)典型配置:CPU:2*E5-2640,內(nèi)存:256G,硬盤:SATA盤Terasort:平均每節(jié)點(diǎn)處理能力(GB/分鐘)6.4GB/分鐘并行計(jì)算引擎(Spark)性能指標(biāo)WordCount:平均每節(jié)點(diǎn)處理能力(GB/分鐘)30GB/分鐘/NodeTerasort:平均每節(jié)點(diǎn)處理能力(GB/分鐘)9GB/分鐘/NodeSQLonHadoop性能指標(biāo)處理能力-HiveAggregation:平均每節(jié)點(diǎn)處理能力(GB/分鐘)8GB/分鐘處理能力-HiveJoin:平均每節(jié)點(diǎn)處理能力(GB/分鐘)4GB/分鐘HBase性能指標(biāo)100%隨機(jī)讀:平均每節(jié)點(diǎn)讀取記錄條數(shù)(每條記錄1KB),響應(yīng)時(shí)間小于50MS30,000Records/s100%隨機(jī)寫:平均每節(jié)點(diǎn)寫入記錄條數(shù)(每條記錄1KB),響應(yīng)時(shí)間小于50MS40,000Records/s順序掃描:平均每節(jié)點(diǎn)scan記錄條數(shù)(每條記錄1KB),響應(yīng)時(shí)間小于50MS15,000Records/s
50%隨機(jī)寫+50%隨機(jī)讀:平均每節(jié)點(diǎn)寫入記錄條數(shù)(每條記錄1KB),響應(yīng)時(shí)間小于50MS寫25,000Records/s讀18,000Records/s50%隨機(jī)寫+50%掃描讀:平均每節(jié)點(diǎn)寫入記錄條數(shù)(每條記錄1KB),響應(yīng)時(shí)間小于50MS寫30,000Records/s讀10,000Records/s產(chǎn)品規(guī)格如下:系統(tǒng)指標(biāo)規(guī)格大數(shù)據(jù)處理平臺(tái)Hadoop穩(wěn)定單集群規(guī)模>4000單節(jié)點(diǎn)數(shù)據(jù)加載能力>2GB/分鐘SQL兼容性完善的ANSISQL標(biāo)準(zhǔn)兼容,OLAP擴(kuò)展支持的組件Flume、HDFS、HBASE、Storm、Pig、Mahout等機(jī)器學(xué)習(xí)支持In-DatabaseAnalytics,提供豐富的數(shù)據(jù)挖掘算法分布式并行數(shù)據(jù)庫(kù)MPP穩(wěn)定單集群規(guī)模>200單節(jié)點(diǎn)數(shù)據(jù)加載能力>2TB/小時(shí)SQL兼容性完善的ANSISQL標(biāo)準(zhǔn)兼容,OLAP擴(kuò)展存儲(chǔ)模式支持行級(jí)、列級(jí)、混合存儲(chǔ);壓縮皆可到14倍;支持md5、SHA1、SHA224/256/384/512、AES、PGP對(duì)稱加密、PGP公鑰加密等存儲(chǔ)加密方式內(nèi)存數(shù)據(jù)庫(kù)MemDB穩(wěn)定單集群規(guī)模>200節(jié)點(diǎn);>40TB單節(jié)點(diǎn)并發(fā)查詢能力>2萬/秒支持的查詢接口SQL、Key/Value高級(jí)特性數(shù)據(jù)智能分片、智能均衡、集群多活,支持MapReduce算法等3、IBMInfoSphere大數(shù)據(jù)分析平臺(tái)IBMInfoSphere大數(shù)據(jù)分析平臺(tái)包括BigInsights和Streams,二者互補(bǔ),Biglnsights對(duì)大規(guī)模的靜態(tài)數(shù)據(jù)進(jìn)行分析,它提供多節(jié)點(diǎn)的分布式計(jì)算,可以隨時(shí)增加節(jié)點(diǎn),提升數(shù)據(jù)處理能力。Streams采用內(nèi)存計(jì)算方式分析實(shí)時(shí)數(shù)據(jù)。InfoSphere大數(shù)據(jù)分析平臺(tái)還集成了數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)集成、業(yè)務(wù)流程管理等組件。BigInsights基礎(chǔ)版和企業(yè)版均包含了ApacheHadoop和大量的開源軟件技術(shù),具體包含的開源項(xiàng)目:ApacheHadoop包括HadoopDistributedFileSystem(HDFS)、MapReduce框架和通用的實(shí)用工具,是一種適用于數(shù)據(jù)密集型應(yīng)用的軟件框架,可用于開發(fā)分布式計(jì)算環(huán)境Pig是用于Hadoop的一種高級(jí)編程語言和運(yùn)行時(shí)環(huán)境Jaql是基于JavaScriptObjectNotation(JSON)的一種高級(jí)查詢語言,也支持SQLHive是一種數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)架構(gòu),設(shè)計(jì)用于支持批量查詢和分析Hadoop管理的文件HBase是一種以列為主的數(shù)據(jù)存儲(chǔ)環(huán)境,設(shè)計(jì)用于支持Hadoop中的稀疏填充的大型表格Flume是一種用來數(shù)據(jù)收集并將其加載到Hadoop中的工具Lucene是一種文本搜索和索引技術(shù)Avro是一種數(shù)據(jù)序列化技術(shù)ZooKeeper是分布式應(yīng)用程序的一種協(xié)作服務(wù)Oozie是工作流/作業(yè)編排技術(shù)IBM大數(shù)據(jù)平臺(tái)提供全面的企業(yè)級(jí)Hadoop平臺(tái)、流計(jì)算、分析引擎企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)各種數(shù)據(jù)的存儲(chǔ)、分析和挖掘,結(jié)構(gòu)化數(shù)據(jù)可以使用數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)上冊(cè)科學(xué)教學(xué)設(shè)計(jì)-第五節(jié) 擺的快慢 教科版
- 2025年大二自我鑒定500字(16篇)
- 人教版七年級(jí)上冊(cè)第三單元《第2課 精美的報(bào)刊》教學(xué)設(shè)計(jì)
- 四年級(jí)數(shù)學(xué)上冊(cè) 三 乘法練習(xí)三教學(xué)設(shè)計(jì) 北師大版
- 有關(guān)班主任的工作計(jì)劃(17篇)
- 科學(xué)室工作總結(jié)(5篇)
- 初中英語外研版 (新標(biāo)準(zhǔn))九年級(jí)下冊(cè)Unit 1 Heres to our friendship and the future教學(xué)設(shè)計(jì)及反思
- 13《人物描寫一組》第二課時(shí)《巧用多種方法寫“活”身邊人物》教學(xué)設(shè)計(jì)-2023-2024學(xué)年五年級(jí)語文下冊(cè)統(tǒng)編版
- “時(shí)間從哪里來”跨學(xué)科主題教學(xué)設(shè)計(jì)
- 學(xué)期結(jié)束自我總結(jié)范文300字(4篇)
- 新生兒足底采血檢查
- 采購(gòu)職員離職工作交接詳單
- 青島市特殊建設(shè)工程消防驗(yàn)收辦事指南
- 醫(yī)院培訓(xùn)課件:《體外循環(huán)及ECMO》
- 少數(shù)民族哈薩克族民俗文化科普介紹圖文課件
- CNAS-CL02-A001:2023 醫(yī)學(xué)實(shí)驗(yàn)室質(zhì)量和能力認(rèn)可準(zhǔn)則的應(yīng)用要求
- 華為經(jīng)營(yíng)管理-華為供應(yīng)鏈管理(6版)
- 建筑智能化工程監(jiān)理實(shí)施細(xì)則
- 14S501-2 雙層井蓋圖集
- JGT491-2016 建筑用網(wǎng)格式金屬電纜橋架
- 森林撫育投標(biāo)方案
評(píng)論
0/150
提交評(píng)論