欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

《NoSQL數(shù)據(jù)庫(kù)》作業(yè),nosql數(shù)據(jù)庫(kù)入門與實(shí)踐章節(jié)題答案第三章

簡(jiǎn)述什么是nosql數(shù)據(jù)庫(kù),并列舉兩種常見的nosql數(shù)據(jù)庫(kù)名稱及其特點(diǎn)

NoSQL太火,冒出太多產(chǎn)品了,保守估計(jì)也成百上千了。

成都創(chuàng)新互聯(lián)是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計(jì)公司的優(yōu)秀設(shè)計(jì)人員和策劃人員組成的一個(gè)具有豐富經(jīng)驗(yàn)的團(tuán)隊(duì),其中包括網(wǎng)站策劃、網(wǎng)頁(yè)美工、網(wǎng)站程序員、網(wǎng)頁(yè)設(shè)計(jì)師、平面廣告設(shè)計(jì)師、網(wǎng)絡(luò)營(yíng)銷人員及形象策劃。承接:成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站改版、網(wǎng)頁(yè)設(shè)計(jì)制作、網(wǎng)站建設(shè)與維護(hù)、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫(kù)開發(fā),以高性價(jià)比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺(tái)等全方位的服務(wù)。

互聯(lián)網(wǎng)公司常用的基本集中在以下幾種,每種只舉一個(gè)比較常見或者應(yīng)用比較成功的例子吧。

1. In-Memory KV Store : Redis

in memory key-value store,同時(shí)提供了更加豐富的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算的能力,成功用法是替代memcached,通過(guò)checkpoint和commit log提供了快速的宕機(jī)恢復(fù),同時(shí)支持replication提供讀可擴(kuò)展和高可用。

2. Disk-Based KV Store: Leveldb

真正基于磁盤的key-value storage, 模型單一簡(jiǎn)單,數(shù)據(jù)量不受限于內(nèi)存大小,數(shù)據(jù)落盤高可靠,Google的幾位大神出品的精品,LSM模型天然寫優(yōu)化,順序?qū)懕P的方式對(duì)于新硬件ssd再適合不過(guò)了,不足是僅提供了一個(gè)庫(kù),需要自己封裝server端。

3. Document Store: Mongodb

分布式nosql,具備了區(qū)別mysql的最大亮點(diǎn):可擴(kuò)展性。mongodb 最新引人的莫過(guò)于提供了sql接口,是目前nosql里最像mysql的,只是沒有ACID的特性,發(fā)展很快,支持了索引等特性,上手容易,對(duì)于數(shù)據(jù)量遠(yuǎn)超內(nèi)存限制的場(chǎng)景來(lái)說(shuō),還需要慎重。

4. Column Table Store: HBase

這個(gè)富二代似乎不用贅述了,最大的優(yōu)勢(shì)是開源,對(duì)于普通的scan和基于行的get等基本查詢,性能完全不是問(wèn)題,只是只提供裸的api,易用性上是短板,可擴(kuò)展性方面是最強(qiáng)的,其次坐上了Hadoop的快車,社區(qū)發(fā)展很快,各種基于其上的開源產(chǎn)品不少,來(lái)解決諸如join、聚集運(yùn)算等復(fù)雜查詢。

nosql數(shù)據(jù)庫(kù)是什么 具有代表性以key-value的形式存儲(chǔ)的

什么是NoSQL

大家有沒有聽說(shuō)過(guò)“NoSQL”呢?近年,這個(gè)詞極受關(guān)注。看到“NoSQL”這個(gè)詞,大家可能會(huì)誤以為是“No!SQL”的縮寫,并深感憤怒:“SQL怎么會(huì)沒有必要了呢?”但實(shí)際上,它是“Not Only SQL”的縮寫。它的意義是:適用關(guān)系型數(shù)據(jù)庫(kù)的時(shí)候就使用關(guān)系型數(shù)據(jù)庫(kù),不適用的時(shí)候也沒有必要非使用關(guān)系型數(shù)據(jù)庫(kù)不可,可以考慮使用更加合適的數(shù)據(jù)存儲(chǔ)。

為彌補(bǔ)關(guān)系型數(shù)據(jù)庫(kù)的不足,各種各樣的NoSQL數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生。

為了更好地了解本書所介紹的NoSQL數(shù)據(jù)庫(kù),對(duì)關(guān)系型數(shù)據(jù)庫(kù)的理解是必不可少的。那么,就讓我們先來(lái)看一看關(guān)系型數(shù)據(jù)庫(kù)的歷史、分類和特征吧。

關(guān)系型數(shù)據(jù)庫(kù)簡(jiǎn)史

1969年,埃德加?6?1弗蘭克?6?1科德(Edgar Frank Codd)發(fā)表了劃時(shí)代的論文,首次提出了關(guān)系數(shù)據(jù)模型的概念。但可惜的是,刊登論文的《IBM Research Report》只是IBM公司的內(nèi)部刊物,因此論文反響平平。1970年,他再次在刊物《Communication of the ACM》上發(fā)表了題為“A Relational Model of Data for Large Shared Data banks”(大型共享數(shù)據(jù)庫(kù)的關(guān)系模型)的論文,終于引起了大家的關(guān)注。

科德所提出的關(guān)系數(shù)據(jù)模型的概念成為了現(xiàn)今關(guān)系型數(shù)據(jù)庫(kù)的基礎(chǔ)。當(dāng)時(shí)的關(guān)系型數(shù)據(jù)庫(kù)由于硬件性能低劣、處理速度過(guò)慢而遲遲沒有得到實(shí)際應(yīng)用。但之后隨著硬件性能的提升,加之使用簡(jiǎn)單、性能優(yōu)越等優(yōu)點(diǎn),關(guān)系型數(shù)據(jù)庫(kù)得到了廣泛的應(yīng)用。

通用性及高性能

雖然本書是講解NoSQL數(shù)據(jù)庫(kù)的,但有一個(gè)重要的大前提,請(qǐng)大家一定不要誤解。這個(gè)大前提就是“關(guān)系型數(shù)據(jù)庫(kù)的性能絕對(duì)不低,它具有非常好的通用性和非常高的性能”。毫無(wú)疑問(wèn),對(duì)于絕大多數(shù)的應(yīng)用來(lái)說(shuō)它都是最有效的解決方案。

突出的優(yōu)勢(shì)

關(guān)系型數(shù)據(jù)庫(kù)作為應(yīng)用廣泛的通用型數(shù)據(jù)庫(kù),它的突出優(yōu)勢(shì)主要有以下幾點(diǎn):

保持?jǐn)?shù)據(jù)的一致性(事務(wù)處理)

由于以標(biāo)準(zhǔn)化為前提,數(shù)據(jù)更新的開銷很小(相同的字段基本上都只有一處)

可以進(jìn)行JOIN等復(fù)雜查詢

存在很多實(shí)際成果和專業(yè)技術(shù)信息(成熟的技術(shù))

這其中,能夠保持?jǐn)?shù)據(jù)的一致性是關(guān)系型數(shù)據(jù)庫(kù)的最大優(yōu)勢(shì)。在需要嚴(yán)格保證數(shù)據(jù)一致性和處理完整性的情況下,用關(guān)系型數(shù)據(jù)庫(kù)是肯定沒有錯(cuò)的。但是有些情況不需要JOIN,對(duì)上述關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)也沒有什么特別需要,這時(shí)似乎也就沒有必要拘泥于關(guān)系型數(shù)據(jù)庫(kù)了。

關(guān)系型數(shù)據(jù)庫(kù)的不足

不擅長(zhǎng)的處理

就像之前提到的那樣,關(guān)系型數(shù)據(jù)庫(kù)的性能非常高。但是它畢竟是一個(gè)通用型的數(shù)據(jù)庫(kù),并不能完全適應(yīng)所有的用途。具體來(lái)說(shuō)它并不擅長(zhǎng)以下處理:

大量數(shù)據(jù)的寫入處理

為有數(shù)據(jù)更新的表做索引或表結(jié)構(gòu)(schema)變更

字段不固定時(shí)應(yīng)用

對(duì)簡(jiǎn)單查詢需要快速返回結(jié)果的處理

。。。。。。

NoSQL數(shù)據(jù)庫(kù)

為了彌補(bǔ)關(guān)系型數(shù)據(jù)庫(kù)的不足(特別是最近幾年),NoSQL數(shù)據(jù)庫(kù)出現(xiàn)了。關(guān)系型數(shù)據(jù)庫(kù)應(yīng)用廣泛,能進(jìn)行事務(wù)處理和JOIN等復(fù)雜處理。相對(duì)地,NoSQL數(shù)據(jù)庫(kù)只應(yīng)用在特定領(lǐng)域,基本上不進(jìn)行復(fù)雜的處理,但它恰恰彌補(bǔ)了之前所列舉的關(guān)系型數(shù)據(jù)庫(kù)的不足之處。

易于數(shù)據(jù)的分散

如前所述,關(guān)系型數(shù)據(jù)庫(kù)并不擅長(zhǎng)大量數(shù)據(jù)的寫入處理。原本關(guān)系型數(shù)據(jù)庫(kù)就是以JOIN為前提的,就是說(shuō),各個(gè)數(shù)據(jù)之間存在關(guān)聯(lián)是關(guān)系型數(shù)據(jù)庫(kù)得名的主要原因。為了進(jìn)行JOIN處理,關(guān)系型數(shù)據(jù)庫(kù)不得不把數(shù)據(jù)存儲(chǔ)在同一個(gè)服務(wù)器內(nèi),這不利于數(shù)據(jù)的分散。相反,NoSQL數(shù)據(jù)庫(kù)原本就不支持JOIN處理,各個(gè)數(shù)據(jù)都是獨(dú)立設(shè)計(jì)的,很容易把數(shù)據(jù)分散到多個(gè)服務(wù)器上。由于數(shù)據(jù)被分散到了多個(gè)服務(wù)器上,減少了每個(gè)服務(wù)器上的數(shù)據(jù)量,即使要進(jìn)行大量數(shù)據(jù)的寫入操作,處理起來(lái)也更加容易。同理,數(shù)據(jù)的讀入操作當(dāng)然也同樣容易。

提升性能和增大規(guī)模

下面說(shuō)一點(diǎn)題外話,如果想要使服務(wù)器能夠輕松地處理更大量的數(shù)據(jù),那么只有兩個(gè)選擇:一是提升性能,二是增大規(guī)模。下面我們來(lái)整理一下這兩者的不同。

首先,提升性能指的就是通過(guò)提升現(xiàn)行服務(wù)器自身的性能來(lái)提高處理能力。這是非常簡(jiǎn)單的方法,程序方面也不需要進(jìn)行變更,但需要一些費(fèi)用。若要購(gòu)買性能翻倍的服務(wù)器,需要花費(fèi)的資金往往不只是原來(lái)的2倍,可能需要多達(dá)5到10倍。這種方法雖然簡(jiǎn)單,但是成本較高。

另一方面,增大規(guī)模指的是使用多臺(tái)廉價(jià)的服務(wù)器來(lái)提高處理能力。它需要對(duì)程序進(jìn)行變更,但由于使用廉價(jià)的服務(wù)器,可以控制成本。另外,以后只要依葫蘆畫瓢增加廉價(jià)服務(wù)器的數(shù)量就可以了。

不對(duì)大量數(shù)據(jù)進(jìn)行處理的話就沒有使用的必要嗎?

NoSQL數(shù)據(jù)庫(kù)基本上來(lái)說(shuō)為了“使大量數(shù)據(jù)的寫入處理更加容易(讓增加服務(wù)器數(shù)量更容易)”而設(shè)計(jì)的。但如果不是對(duì)大量數(shù)據(jù)進(jìn)行操作的話,NoSQL數(shù)據(jù)庫(kù)的應(yīng)用就沒有意義嗎?

答案是否定的。的確,它在處理大量數(shù)據(jù)方面很有優(yōu)勢(shì)。但實(shí)際上NoSQL數(shù)據(jù)庫(kù)還有各種各樣的特點(diǎn),如果能夠恰當(dāng)?shù)乩眠@些特點(diǎn)將會(huì)是非常有幫助。具體的例子將會(huì)在第2章和第3章進(jìn)行介紹,這些用途將會(huì)讓你感受到利用NoSQL的好處。

希望順暢地對(duì)數(shù)據(jù)進(jìn)行緩存(Cache)處理

希望對(duì)數(shù)組類型的數(shù)據(jù)進(jìn)行高速處理

希望進(jìn)行全部保存

多樣的NoSQL數(shù)據(jù)庫(kù)

NoSQL數(shù)據(jù)庫(kù)存在著“key-value存儲(chǔ)”、“文檔型數(shù)據(jù)庫(kù)”、“列存儲(chǔ)數(shù)據(jù)庫(kù)”等各種各樣的種類,每種數(shù)據(jù)庫(kù)又包含各自的特點(diǎn)。下一節(jié)讓我們一起來(lái)了解一下NoSQL數(shù)據(jù)庫(kù)的種類和特點(diǎn)。

NoSQL數(shù)據(jù)庫(kù)是什么

NoSQL說(shuō)起來(lái)簡(jiǎn)單,但實(shí)際上到底有多少種呢?我在提筆的時(shí)候,到NoSQL的官方網(wǎng)站上確認(rèn)了一下,竟然已經(jīng)有122種了。另外官方網(wǎng)站上也介紹了本書沒有涉及到的圖形數(shù)據(jù)庫(kù)和對(duì)象數(shù)據(jù)庫(kù)等各個(gè)類別。不知不覺間,原來(lái)已經(jīng)出現(xiàn)了這么多的NoSQL數(shù)據(jù)庫(kù)啊。

本節(jié)將為大家介紹具有代表性的NoSQL數(shù)據(jù)庫(kù)。

key-value存儲(chǔ)

這是最常見的NoSQL數(shù)據(jù)庫(kù),它的數(shù)據(jù)是以key-value的形式存儲(chǔ)的。雖然它的處理速度非常快,但是基本上只能通過(guò)key的完全一致查詢獲取數(shù)據(jù)。根據(jù)數(shù)據(jù)的保存方式可以分為臨時(shí)性、永久性和兩者兼具三種。

臨時(shí)性

memcached屬于這種類型。所謂臨時(shí)性就是 “數(shù)據(jù)有可能丟失”的意思。memcached把所有數(shù)據(jù)都保存在內(nèi)存中,這樣保存和讀取的速度非常快,但是當(dāng)memcached停止的時(shí)候,數(shù)據(jù)就不存在了。由于數(shù)據(jù)保存在內(nèi)存中,所以無(wú)法操作超出內(nèi)存容量的數(shù)據(jù)(舊數(shù)據(jù)會(huì)丟失)。

在內(nèi)存中保存數(shù)據(jù)

可以進(jìn)行非常快速的保存和讀取處理

數(shù)據(jù)有可能丟失

永久性

Tokyo Tyrant、Flare、ROMA等屬于這種類型。和臨時(shí)性相反,所謂永久性就是“數(shù)據(jù)不會(huì)丟失”的意思。這里的key-value存儲(chǔ)不像memcached那樣在內(nèi)存中保存數(shù)據(jù),而是把數(shù)據(jù)保存在硬盤上。與memcached在內(nèi)存中處理數(shù)據(jù)比起來(lái),由于必然要發(fā)生對(duì)硬盤的IO操作,所以性能上還是有差距的。但數(shù)據(jù)不會(huì)丟失是它最大的優(yōu)勢(shì)。

在硬盤上保存數(shù)據(jù)

可以進(jìn)行非常快速的保存和讀取處理(但無(wú)法與memcached相比)

數(shù)據(jù)不會(huì)丟失

兩者兼具

Redis屬于這種類型。Redis有些特殊,臨時(shí)性和永久性兼具,且集合了臨時(shí)性key-value存儲(chǔ)和永久性key-value存儲(chǔ)的優(yōu)點(diǎn)。Redis首先把數(shù)據(jù)保存到內(nèi)存中,在滿足特定條件(默認(rèn)是15分鐘一次以上,5分鐘內(nèi)10個(gè)以上,1分鐘內(nèi)10000個(gè)以上的key發(fā)生變更)的時(shí)候?qū)?shù)據(jù)寫入到硬盤中。這樣既確保了內(nèi)存中數(shù)據(jù)的處理速度,又可以通過(guò)寫入硬盤來(lái)保證數(shù)據(jù)的永久性。這種類型的數(shù)據(jù)庫(kù)特別適合于處理數(shù)組類型的數(shù)據(jù)。

同時(shí)在內(nèi)存和硬盤上保存數(shù)據(jù)

可以進(jìn)行非常快速的保存和讀取處理

保存在硬盤上的數(shù)據(jù)不會(huì)消失(可以恢復(fù))

適合于處理數(shù)組類型的數(shù)據(jù)

面向文檔的數(shù)據(jù)庫(kù)

MongoDB、CouchDB屬于這種類型。它們屬于NoSQL數(shù)據(jù)庫(kù),但與key-value存儲(chǔ)相異。

不定義表結(jié)構(gòu)

面向文檔的數(shù)據(jù)庫(kù)具有以下特征:即使不定義表結(jié)構(gòu),也可以像定義了表結(jié)構(gòu)一樣使用。關(guān)系型數(shù)據(jù)庫(kù)在變更表結(jié)構(gòu)時(shí)比較費(fèi)事,而且為了保持一致性還需修改程序。然而NoSQL數(shù)據(jù)庫(kù)則可省去這些麻煩(通常程序都是正確的),確實(shí)是方便快捷。

可以使用復(fù)雜的查詢條件

跟key-value存儲(chǔ)不同的是,面向文檔的數(shù)據(jù)庫(kù)可以通過(guò)復(fù)雜的查詢條件來(lái)獲取數(shù)據(jù)。雖然不具備事務(wù)處理和JOIN這些關(guān)系型數(shù)據(jù)庫(kù)所具有的處理能力,但除此以外的其他處理基本上都能實(shí)現(xiàn)。這是非常容易使用的NoSQL數(shù)據(jù)庫(kù)。

不需要定義表結(jié)構(gòu)

可以利用復(fù)雜的查詢條件

面向列的數(shù)據(jù)庫(kù)

Cassandra、Hbase、HyperTable屬于這種類型。由于近年來(lái)數(shù)據(jù)量出現(xiàn)爆發(fā)性增長(zhǎng),這種類型的NoSQL數(shù)據(jù)庫(kù)尤其引人注目。

面向行的數(shù)據(jù)庫(kù)和面向列的數(shù)據(jù)庫(kù)

普通的關(guān)系型數(shù)據(jù)庫(kù)都是以行為單位來(lái)存儲(chǔ)數(shù)據(jù)的,擅長(zhǎng)進(jìn)行以行為單位的讀入處理,比如特定條件數(shù)據(jù)的獲取。因此,關(guān)系型數(shù)據(jù)庫(kù)也被稱為面向行的數(shù)據(jù)庫(kù)。相反,面向列的數(shù)據(jù)庫(kù)是以列為單位來(lái)存儲(chǔ)數(shù)據(jù)的,擅長(zhǎng)以列為單位讀入數(shù)據(jù)。

高擴(kuò)展性

面向列的數(shù)據(jù)庫(kù)具有高擴(kuò)展性,即使數(shù)據(jù)增加也不會(huì)降低相應(yīng)的處理速度(特別是寫入速度),所以它主要應(yīng)用于需要處理大量數(shù)據(jù)的情況。另外,利用面向列的數(shù)據(jù)庫(kù)的優(yōu)勢(shì),把它作為批處理程序的存儲(chǔ)器來(lái)對(duì)大量數(shù)據(jù)進(jìn)行更新也是非常有用的。但由于面向列的數(shù)據(jù)庫(kù)跟現(xiàn)行數(shù)據(jù)庫(kù)存儲(chǔ)的思維方式有很大不同,應(yīng)用起來(lái)十分困難。

高擴(kuò)展性(特別是寫入處理)

應(yīng)用十分困難

最近,像Twitter和Facebook這樣需要對(duì)大量數(shù)據(jù)進(jìn)行更新和查詢的網(wǎng)絡(luò)服務(wù)不斷增加,面向列的數(shù)據(jù)庫(kù)的優(yōu)勢(shì)對(duì)其中一些服務(wù)是非常有用的,但是由于這與本書所要介紹的內(nèi)容關(guān)系不大,就不進(jìn)行詳細(xì)介紹了。

總結(jié):

NoSQL并不是No-SQL,而是指Not Only SQL。

NoSQL的出現(xiàn)是為了彌補(bǔ)SQL數(shù)據(jù)庫(kù)因?yàn)槭聞?wù)等機(jī)制帶來(lái)的對(duì)海量數(shù)據(jù)、高并發(fā)請(qǐng)求的處理的性能上的欠缺。

NoSQL不是為了替代SQL而出現(xiàn)的,它是一種替補(bǔ)方案,而不是解決方案的首選。

絕大多數(shù)的NoSQL產(chǎn)品都是基于大內(nèi)存和高性能隨機(jī)讀寫的(比如具有更高性能的固態(tài)硬盤陣列),一般的小型企業(yè)在選擇NoSQL時(shí)一定要慎重!不要為了NoSQL而NoSQL,可能會(huì)導(dǎo)致花了冤枉錢又耽擱了項(xiàng)目進(jìn)程。

NoSQL不是萬(wàn)能的,但在大型項(xiàng)目中,你往往需要它!

如何建立一個(gè)完整可用的安全大數(shù)據(jù)平臺(tái)

要建立一個(gè)大數(shù)據(jù)系統(tǒng),我們需要從數(shù)據(jù)流的源頭跟蹤到最后有價(jià)值的輸出,并在現(xiàn)有的Hadoop和大數(shù)據(jù)生態(tài)圈內(nèi)根據(jù)實(shí)際需求挑選并整合各部分合適的組件來(lái)構(gòu)建一個(gè)能夠支撐多種查詢和分析功能的系統(tǒng)平臺(tái)。這其中既包括了對(duì)數(shù)據(jù)存儲(chǔ)的選擇,也涵蓋了數(shù)據(jù)線上和線下處理分離等方面的思考和權(quán)衡。此外,沒有任何一個(gè)引入大數(shù)據(jù)解決方案的商業(yè)應(yīng)用在生產(chǎn)環(huán)境上承擔(dān)的起安全隱患。

1

計(jì)算框架篇

大數(shù)據(jù)的價(jià)值

只有在能指導(dǎo)人們做出有價(jià)值的決定時(shí),數(shù)據(jù)才能體現(xiàn)其自身的價(jià)值。因此,大數(shù)據(jù)技術(shù)要服務(wù)于實(shí)際的用途,才是有意義的。一般來(lái)說(shuō),大數(shù)據(jù)可以從以下三個(gè)方面指導(dǎo)人們做出有價(jià)值的決定:

報(bào)表生成(比如根據(jù)用戶歷史點(diǎn)擊行為的跟蹤和綜合分析、 應(yīng)用程序活躍程度和用戶粘性計(jì)算等);

診斷分析(例如分析為何用戶粘性下降、根據(jù)日志分析系統(tǒng)為何性能下降、垃圾郵件以及病毒的特征檢測(cè)等);

決策(例如個(gè)性化新聞閱讀或歌曲推薦、預(yù)測(cè)增加哪些功能能增加用戶粘性、幫助廣告主進(jìn)行廣告精準(zhǔn)投放、設(shè)定垃圾郵件和病毒攔截策略等)。

圖 1

進(jìn)一步來(lái)看,大數(shù)據(jù)技術(shù)從以下三個(gè)方面解決了傳統(tǒng)技術(shù)難以達(dá)成的目標(biāo)(如圖1):

在歷史數(shù)據(jù)上的低延遲(交互式)查詢,目標(biāo)是加快決策過(guò)程和時(shí)間, 例如分析一個(gè)站點(diǎn)為何變緩慢并嘗試修復(fù)它;

在實(shí)時(shí)數(shù)據(jù)上的低延遲查詢,目的是幫助用戶和應(yīng)用程序在實(shí)時(shí)數(shù)據(jù)上做出決策, 例如實(shí)時(shí)檢測(cè)并阻攔病毒蠕蟲(一個(gè)病毒蠕蟲可以在1.3秒內(nèi)攻擊1百萬(wàn)臺(tái)主機(jī));

更加精細(xì)高級(jí)的數(shù)據(jù)處理算法,這可以幫助用戶做出“更好”的決策, 例如圖數(shù)據(jù)處理、異常點(diǎn)檢測(cè)、趨勢(shì)分析及其他機(jī)器學(xué)習(xí)算法。

蛋糕模式

從將數(shù)據(jù)轉(zhuǎn)換成價(jià)值的角度來(lái)說(shuō),在Hadoop生態(tài)圈十年蓬勃成長(zhǎng)的過(guò)程中,YARN和Spark這二者可以算得上是里程碑事件。Yarn的出現(xiàn)使得集群資源管理和數(shù)據(jù)處理流水線分離,大大革新并推動(dòng)了大數(shù)據(jù)應(yīng)用層面各種框架的發(fā)展(SQL on Hadoop框架, 流數(shù)據(jù),圖數(shù)據(jù),機(jī)器學(xué)習(xí))。

它使得用戶不再受到MapReduce開發(fā)模式的約束,而是可以創(chuàng)建種類更為豐富的分布式應(yīng)用程序,并讓各類應(yīng)用程序運(yùn)行在統(tǒng)一的架構(gòu)上,消除了為其他框架維護(hù)獨(dú)有資源的開銷。就好比一個(gè)多層蛋糕,下面兩層是HDFS和Yarn, 而MapReduce就只是蛋糕上層的一根蠟燭而已,在蛋糕上還能插各式各樣的蠟燭。

在這一架構(gòu)體系中,總體數(shù)據(jù)處理分析作業(yè)分三塊(圖2),在HBase上做交互式查詢(Apache Phoenix, Cloudera Impala等), 在歷史數(shù)據(jù)集上編寫MapReduce程序抑或利用Hive等做批處理業(yè)務(wù), 另外對(duì)于實(shí)時(shí)流數(shù)據(jù)分析Apache Storm則會(huì)是一種標(biāo)準(zhǔn)選擇方案。

雖然Yarn的出現(xiàn)極大地豐富了Hadoop生態(tài)圈的應(yīng)用場(chǎng)景,但仍存有兩個(gè)顯而易見的挑戰(zhàn):一是在一個(gè)平臺(tái)上需要維護(hù)三個(gè)開發(fā)堆棧;二是在不同框架內(nèi)很難共享數(shù)據(jù),比如很難在一個(gè)框架內(nèi)對(duì)流數(shù)據(jù)做交互式查詢。這也意味著我們需要一個(gè)更為統(tǒng)一和支持更好抽象的計(jì)算框架的出現(xiàn)。

圖 2

一統(tǒng)江湖

Spark的出現(xiàn)使得批處理任務(wù),交互式查詢,實(shí)時(shí)流數(shù)據(jù)處理被整合到一個(gè)統(tǒng)一的框架內(nèi)(圖3),同時(shí)Spark和現(xiàn)有的開源生態(tài)系統(tǒng)也能夠很好地兼容(Hadoop, HDFS, Yarn, Hive, Flume)。 通過(guò)啟用內(nèi)存分布數(shù)據(jù)集,優(yōu)化迭代工作負(fù)載, 用戶能夠更簡(jiǎn)單地操作數(shù)據(jù),并在此基礎(chǔ)上開發(fā)更為精細(xì)的算法,如機(jī)器學(xué)習(xí)和圖算法等。

有三個(gè)最主要的原因促使Spark目前成為了時(shí)下最火的大數(shù)據(jù)開源社區(qū)(擁有超過(guò)來(lái)自200多個(gè)公司的800多個(gè)contributors):

Spark可以擴(kuò)展部署到超過(guò)8000節(jié)點(diǎn)并處理PB級(jí)別的數(shù)據(jù),同時(shí)也提供了很多不錯(cuò)的工具供應(yīng)用開發(fā)者進(jìn)行管理和部署;

Spark提供了一個(gè)交互式shell供開發(fā)者可以用Scala或者Python即時(shí)性試驗(yàn)不同的功能;

Spark提供了很多內(nèi)置函數(shù)使得開發(fā)者能夠比較容易地寫出低耦合的并且能夠并發(fā)執(zhí)行的代碼,這樣開發(fā)人員就更能集中精力地為用戶提供更多的業(yè)務(wù)功能而不是花費(fèi)時(shí)間在優(yōu)化并行化代碼之上。

當(dāng)然Spark也和當(dāng)年的MapReduce一樣不是萬(wàn)靈藥,比如對(duì)實(shí)時(shí)性要求很高的流數(shù)據(jù)處理上Apache Storm還是被作為主流選擇, 因?yàn)镾park Streaming實(shí)際上是microbatch(將一個(gè)流數(shù)據(jù)按時(shí)間片切成batch,每個(gè)batch提交一個(gè)job)而不是事件觸發(fā)實(shí)時(shí)系統(tǒng),所以雖然支持者們認(rèn)為microbatch在系統(tǒng)延時(shí)性上貢獻(xiàn)并不多,但在生產(chǎn)環(huán)境中和Apache Storm相比還不是特別能滿足對(duì)低延時(shí)要求很高的應(yīng)用場(chǎng)景。

比如在實(shí)踐過(guò)程中, 如果統(tǒng)計(jì)每條消息的平均處理時(shí)間,很容易達(dá)到毫秒級(jí)別,但一旦統(tǒng)計(jì)類似service assurance(確保某條消息在毫秒基本能被處理完成)的指標(biāo), 系統(tǒng)的瓶頸有時(shí)還是不能避免。

但同時(shí)我們不能不注意到,在許多用例當(dāng)中,與流數(shù)據(jù)的交互以及和靜態(tài)數(shù)據(jù)集的結(jié)合是很有必要的, 例如我們需要在靜態(tài)數(shù)據(jù)集上進(jìn)行分類器的模型計(jì)算,并在已有分類器模型的基礎(chǔ)上,對(duì)實(shí)時(shí)進(jìn)入系統(tǒng)的流數(shù)據(jù)進(jìn)行交互計(jì)算來(lái)判定類別。

由于Spark的系統(tǒng)設(shè)計(jì)對(duì)各類工作(批處理、流處理以及交互式工作)進(jìn)行了一個(gè)共有抽象,并且生態(tài)圈內(nèi)延伸出了許多豐富的庫(kù)(MLlib機(jī)器學(xué)習(xí)庫(kù)、SQL語(yǔ)言API、GraphX), 使得用戶可以在每一批流數(shù)據(jù)上進(jìn)行靈活的Spark相關(guān)操作,在開發(fā)上提供了許多便利。

Spark的成熟使得Hadoop生態(tài)圈在短短一年之間發(fā)生了翻天覆地的變化, Cloudera和Hortonworks紛紛加入了Spark陣營(yíng),而Hadoop項(xiàng)目群中除了Yarn之外已經(jīng)沒有項(xiàng)目是必須的了(雖然Mesos已在一些場(chǎng)合替代了Yarn), 因?yàn)榫瓦BHDFS,Spark都可以不依賴。但很多時(shí)候我們?nèi)匀恍枰馡mpala這樣的依賴分布式文件系統(tǒng)的MPP解決方案并利用Hive管理文件到表的映射,因此Hadoop傳統(tǒng)生態(tài)圈依然有很強(qiáng)的生命力。

另外在這里簡(jiǎn)要對(duì)比一下交互式分析任務(wù)中各類SQL on Hadoop框架,因?yàn)檫@也是我們?cè)趯?shí)際項(xiàng)目實(shí)施中經(jīng)常遇到的問(wèn)題。我們主要將注意力集中在Spark SQL, Impala和Hive on Tez上, 其中Spark SQL是三者之中歷史最短的,論文發(fā)表在15年的SIGMOD會(huì)議上, 原文對(duì)比了數(shù)據(jù)倉(cāng)庫(kù)上不同類型的查詢?cè)赟hark(Spark最早對(duì)SQL接口提供的支持)、Spark SQL和Impala上的性能比較。

也就是說(shuō), 雖然Spark SQL在Shark的基礎(chǔ)上利用Catalyst optimizer在代碼生成上做了很多優(yōu)化,但總體性能還是比不上Impala, 尤其是當(dāng)做join操作的時(shí)候, Impala可以利用“predicate pushdown”更早對(duì)表進(jìn)行選擇操作從而提高性能。

不過(guò)Spark SQL的Catalyst optimizer一直在持續(xù)優(yōu)化中,相信未來(lái)會(huì)有更多更好的進(jìn)展。Cloudera的Benchmark評(píng)測(cè)中Impala一直比其他SQL on Hadoop框架性能更加優(yōu)越,但同時(shí)Hortonworks評(píng)測(cè)則指出雖然單個(gè)數(shù)據(jù)倉(cāng)庫(kù)查詢Impala可以在很短的時(shí)間內(nèi)完成,但是一旦并發(fā)多個(gè)查詢Hive on Tez的優(yōu)勢(shì)就展示出來(lái)。另外Hive on Tez在SQL表達(dá)能力也要比Impala更強(qiáng)(主要是因?yàn)镮mpala的嵌套存儲(chǔ)模型導(dǎo)致的), 因此根據(jù)不同的場(chǎng)景選取不同的解決方案是很有必要的。

圖 3

各領(lǐng)風(fēng)騷抑或代有才人出?

近一年比較吸引人眼球的Apache Flink(與Spark一樣已有5年歷史,前身已經(jīng)是柏林理工大學(xué)一個(gè)研究性項(xiàng)目,被其擁躉推崇為繼MapReduce, Yarn,Spark之后第四代大數(shù)據(jù)分析處理框架)。 與Spark相反,F(xiàn)link是一個(gè)真正的實(shí)時(shí)流數(shù)據(jù)處理系統(tǒng),它將批處理看作是流數(shù)據(jù)的特例,同Spark一樣它也在嘗試建立一個(gè)統(tǒng)一的平臺(tái)運(yùn)行批量,流數(shù)據(jù),交互式作業(yè)以及機(jī)器學(xué)習(xí),圖算法等應(yīng)用。

Flink有一些設(shè)計(jì)思路是明顯區(qū)別于Spark的,一個(gè)典型的例子是內(nèi)存管理,F(xiàn)link從一開始就堅(jiān)持自己精確的控制內(nèi)存使用并且直接操作二進(jìn)制數(shù)據(jù),而Spark一直到1.5版本都還是試用java的內(nèi)存管理來(lái)做數(shù)據(jù)緩存,這也導(dǎo)致了Spark很容易遭受OOM以及JVM GC帶來(lái)的性能損失。

但是從另外一個(gè)角度來(lái)說(shuō), Spark中的RDD在運(yùn)行時(shí)被存成java objects的設(shè)計(jì)模式也大大降低了用戶編程設(shè)計(jì)門檻, 同時(shí)隨著Tungsten項(xiàng)目的引入,Spark現(xiàn)在也逐漸轉(zhuǎn)向自身的內(nèi)存管理, 具體表現(xiàn)為Spark生態(tài)圈內(nèi)從傳統(tǒng)的圍繞RDD(分布式j(luò)ava對(duì)象集合)為核心的開發(fā)逐漸轉(zhuǎn)向以DataFrame(分布式行對(duì)象集合)為核心。

總的來(lái)說(shuō),這兩個(gè)生態(tài)圈目前都在互相學(xué)習(xí),F(xiàn)link的設(shè)計(jì)基因更為超前一些,但Spark社區(qū)活躍度大很多,發(fā)展到目前毫無(wú)疑問(wèn)是更為成熟的選擇,比如對(duì)數(shù)據(jù)源的支持(HBase, Cassandra, Parquet, JSON, ORC)更為豐富以及更為統(tǒng)一簡(jiǎn)潔的計(jì)算表示。另一方面,Apache Flink作為一個(gè)由歐洲大陸發(fā)起的項(xiàng)目,目前已經(jīng)擁有來(lái)自北美、歐洲以及亞洲的許多貢獻(xiàn)者,這是否能夠一改歐洲在開源世界中一貫的被動(dòng)角色,我們將在未來(lái)拭目以待。

2

NoSQL數(shù)據(jù)庫(kù)篇

NoSQL數(shù)據(jù)庫(kù)在主流選擇上依舊集中在MongoDB, HBase和Cassandra這三者之間。在所有的NoSQL選擇中,用C 編寫的MongoDB幾乎應(yīng)該是開發(fā)者最快也最易部署的選擇。MongoDB是一個(gè)面向文檔的數(shù)據(jù)庫(kù),每個(gè)文檔/記錄/數(shù)據(jù)(包括爬取的網(wǎng)頁(yè)數(shù)據(jù)及其他大型對(duì)象如視頻等)是以一種BSON(Binary JSON)的二進(jìn)制數(shù)據(jù)格式存儲(chǔ), 這使得MongoDB并不需要事先定義任何模式, 也就是模式自由(可以把完全不同結(jié)構(gòu)的記錄放在同一個(gè)數(shù)據(jù)庫(kù)里)。

MongoDB對(duì)于完全索引的支持在應(yīng)用上是很方便的,同時(shí)也具備一般NoSQL分布式數(shù)據(jù)庫(kù)中可擴(kuò)展,支持復(fù)制和故障恢復(fù)等功能。 MongoDB一般應(yīng)用于高度伸縮性的緩存及大尺寸的JSON數(shù)據(jù)存儲(chǔ)業(yè)務(wù)中,但不能執(zhí)行“JOIN”操作,而且數(shù)據(jù)占用空間也比較大,最被用戶詬病的就是由于MongoDB提供的是數(shù)據(jù)庫(kù)級(jí)鎖粒度導(dǎo)致在一些情況下建索引操作會(huì)引發(fā)整個(gè)數(shù)據(jù)庫(kù)阻塞。一般來(lái)說(shuō),MongoDB完全可以滿足一些快速迭代的中小型項(xiàng)目的需求。

下面來(lái)主要談?wù)凜assandra和HBase之間的比較選擇。Cassandra和HBase有著截然不同的基因血統(tǒng)。HBase和其底層依賴的系統(tǒng)架構(gòu)源自于著名的Google FileSystem(發(fā)表于2003年)和Google BigTable設(shè)計(jì)(發(fā)表于2006年), 其克服了HDFS注重吞吐量卻犧牲I/O的缺點(diǎn),提供了一個(gè)存儲(chǔ)中間層使得用戶或者應(yīng)用程序可以隨機(jī)讀寫數(shù)據(jù)。

具體來(lái)說(shuō),HBase的更新和刪除操作實(shí)際上是先發(fā)生在內(nèi)存MemStore中, 當(dāng)MemStore滿了以后會(huì)Flush到StoreFile, 之后當(dāng)StoreFile文件數(shù)量增長(zhǎng)到一定閾值后會(huì)觸發(fā)Compact合并操作,因此HBase的更新操作其實(shí)是不斷追加的操作,而最終所有更新和刪除數(shù)據(jù)的持久化操作都是在之后Compact過(guò)程中進(jìn)行的。

這使得應(yīng)用程序在向內(nèi)存MemStore寫入數(shù)據(jù)后,所做的修改馬上就能得到反映,用戶讀到的數(shù)據(jù)絕不會(huì)是陳舊的數(shù)據(jù),保證了I/O高性能和數(shù)據(jù)完全一致性; 另一方面來(lái)說(shuō), HBase基于Hadoop生態(tài)系統(tǒng)的基因就已經(jīng)決定了他自身的高度可擴(kuò)展性、容錯(cuò)性。

在數(shù)據(jù)模型上,Cassandra和HBase類似實(shí)現(xiàn)了一個(gè)key-value提供面向列式存儲(chǔ)服務(wù),其系統(tǒng)設(shè)計(jì)參考了 Amazon Dynamo (發(fā)表于2007年) 分布式哈希(DHT)的P2P結(jié)構(gòu)(實(shí)際上大部分Cassandra的初始工作都是由兩位從Amazon的Dynamo組跳槽到Facebook的工程師完成),同樣具有很高的可擴(kuò)展性和容錯(cuò)性等特點(diǎn)。

除此之外, 相對(duì)HBase的主從結(jié)構(gòu),Cassandra去中心化的P2P結(jié)構(gòu)能夠更簡(jiǎn)單地部署和維護(hù),比如增加一臺(tái)機(jī)器只需告知Cassandra系統(tǒng)新節(jié)點(diǎn)在哪,剩下的交給系統(tǒng)完成就行了。同時(shí),Cassandra對(duì)多數(shù)據(jù)中心的支持也更好,如果需要在多個(gè)數(shù)據(jù)中心進(jìn)行數(shù)據(jù)遷移Cassandra會(huì)是一個(gè)更優(yōu)的選擇。

Eric Brewer教授提出的經(jīng)典CAP理論認(rèn)為任何基于網(wǎng)絡(luò)的數(shù)據(jù)共享系統(tǒng),最多只能滿足數(shù)據(jù)一致性、可用性、分區(qū)容忍性三要素中的兩個(gè)要素。實(shí)際分布式系統(tǒng)的設(shè)計(jì)過(guò)程往往都是在一致性與可用性上進(jìn)行取舍,相比于HBase數(shù)據(jù)完全一致性的系統(tǒng)設(shè)計(jì),Cassandra選擇了在優(yōu)先考慮數(shù)據(jù)可用性的基礎(chǔ)上讓用戶自己根據(jù)應(yīng)用程序需求決定系統(tǒng)一致性級(jí)別。

比如:用戶可以配置QUONUM參數(shù)來(lái)決定系統(tǒng)需要幾個(gè)節(jié)點(diǎn)返回?cái)?shù)據(jù)才能向客戶端做出響應(yīng),ONE指只要有一個(gè)節(jié)點(diǎn)返回?cái)?shù)據(jù)就可以對(duì)客戶端做出響應(yīng),ALL指等于數(shù)據(jù)復(fù)制份數(shù)的所有節(jié)點(diǎn)都返回結(jié)果才能向客戶端做出響應(yīng),對(duì)于數(shù)據(jù)一致性要求不是特別高的可以選擇ONE,它是最快的一種方式。

從基因和發(fā)展歷史上來(lái)說(shuō),HBase更適合用做數(shù)據(jù)倉(cāng)庫(kù)和大規(guī)模數(shù)據(jù)處理與分析(比如對(duì)網(wǎng)頁(yè)數(shù)據(jù)建立索引), 而Cassandra則更適合用作實(shí)時(shí)事務(wù)和交互式查詢服務(wù)。Cassandra在國(guó)外市場(chǎng)占有比例和發(fā)展要遠(yuǎn)比國(guó)內(nèi)紅火, 在不少權(quán)威測(cè)評(píng)網(wǎng)站上排名都已經(jīng)超過(guò)了HBase。目前Apache Cassandra的商業(yè)化版本主要由軟件公司DataStax進(jìn)行開發(fā)和銷售推廣。另外還有一些NoSQL分布式數(shù)據(jù)庫(kù)如Riak, CouchDB也都在各自支持的廠商推動(dòng)下取得了不錯(cuò)的發(fā)展。

雖然我們也考慮到了HBase在實(shí)際應(yīng)用中的不便之處比如對(duì)二級(jí)索引的支持程度不夠(只支持通過(guò)單個(gè)行鍵訪問(wèn),通過(guò)行鍵的范圍查詢,全表掃描),不過(guò)在明略的大數(shù)據(jù)基礎(chǔ)平臺(tái)上,目前整合的是依然是HBase。

理由也很簡(jiǎn)單,HBase出身就與Hadoop的生態(tài)系統(tǒng)緊密集成,其能夠很容易與其他SQL on Hadoop框架(Cloudera Impala, Apache Phoenix, or Hive on Tez)進(jìn)行整合,而不需要重新部署一套分布式數(shù)據(jù)庫(kù)系統(tǒng),而且可以很方便地將同樣的數(shù)據(jù)內(nèi)容在同一個(gè)生態(tài)系統(tǒng)中根據(jù)不同框架需要來(lái)變換存儲(chǔ)格式(比如存儲(chǔ)成Hive表或者Parquet格式)。

我們?cè)诤芏囗?xiàng)目中都有需要用到多種SQL on Hadoop框架,來(lái)應(yīng)對(duì)不同應(yīng)用場(chǎng)景的情況,也體會(huì)到了在同一生態(tài)系統(tǒng)下部署多種框架的簡(jiǎn)便性。 但同時(shí)我們也遇到了一些問(wèn)題, 因?yàn)镠Base項(xiàng)目本身與HDFS和Zookeeper系統(tǒng)分別是由不同開源團(tuán)隊(duì)進(jìn)行維護(hù)的,所以在系統(tǒng)整合時(shí)我們需要先對(duì)HBase所依賴的其他模塊進(jìn)行設(shè)置再對(duì)HBase進(jìn)行配置,在一定程度上降低了系統(tǒng)維護(hù)的友好性。

目前我們也已經(jīng)在考慮將Cassandra應(yīng)用到一些新的客戶項(xiàng)目中,因?yàn)楹芏嗥髽I(yè)級(jí)的應(yīng)用都需要將線上線下數(shù)據(jù)庫(kù)進(jìn)行分離,HBase更適合存儲(chǔ)離線處理的結(jié)果和數(shù)據(jù)倉(cāng)庫(kù),而更適合用作實(shí)時(shí)事務(wù)和并發(fā)交互性能更好的Cassandra作為線上服務(wù)數(shù)據(jù)庫(kù)會(huì)是一種很好的選擇。

3

大數(shù)據(jù)安全篇

隨著越來(lái)越多各式各樣的數(shù)據(jù)被存儲(chǔ)在大數(shù)據(jù)系統(tǒng)中,任何對(duì)企業(yè)級(jí)數(shù)據(jù)的破壞都是災(zāi)難性的,從侵犯隱私到監(jiān)管違規(guī),甚至?xí)斐晒酒放频钠茐牟⒆罱K影響到股東收益。給大數(shù)據(jù)系統(tǒng)提供全面且有效的安全解決方案的需求已經(jīng)十分迫切:

大數(shù)據(jù)系統(tǒng)存儲(chǔ)著許多重要且敏感的數(shù)據(jù),這些數(shù)據(jù)是企業(yè)長(zhǎng)久以來(lái)的財(cái)富

與大數(shù)據(jù)系統(tǒng)互動(dòng)的外部系統(tǒng)是動(dòng)態(tài)變化的,這會(huì)給系統(tǒng)引入新的安全隱患

在一個(gè)企業(yè)的內(nèi)部,不同Business Units會(huì)用不同的方式與大數(shù)據(jù)系統(tǒng)進(jìn)行交互,比如線上的系統(tǒng)會(huì)實(shí)時(shí)給集群推送數(shù)據(jù)、數(shù)據(jù)科學(xué)家團(tuán)隊(duì)則需要分析存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)內(nèi)的歷史數(shù)據(jù)、運(yùn)維團(tuán)隊(duì)則會(huì)需要對(duì)大數(shù)據(jù)系統(tǒng)擁有管理權(quán)限。

因此為了保護(hù)公司業(yè)務(wù)、客戶、財(cái)務(wù)和名譽(yù)免于被侵害,大數(shù)據(jù)系統(tǒng)運(yùn)維團(tuán)隊(duì)必須將系統(tǒng)安全高度提高到和其他遺留系統(tǒng)一樣的級(jí)別。同時(shí)大數(shù)據(jù)系統(tǒng)并不意味著引入大的安全隱患,通過(guò)精細(xì)完整的設(shè)計(jì),仍然能夠把一些傳統(tǒng)的系統(tǒng)安全解決方案對(duì)接到最新的大數(shù)據(jù)集群系統(tǒng)中。

一般來(lái)說(shuō),一個(gè)完整的企業(yè)級(jí)安全框架包括五個(gè)部分:

Administration: 大數(shù)據(jù)集群系統(tǒng)的集中式管理,設(shè)定全局一致的安全策略

Authentication: 對(duì)用戶和系統(tǒng)的認(rèn)證

Authorization:授權(quán)個(gè)人用戶和組對(duì)數(shù)據(jù)的訪問(wèn)權(quán)限

Audit:維護(hù)數(shù)據(jù)訪問(wèn)的日志記錄

Data Protection:數(shù)據(jù)脫敏和加密以達(dá)到保護(hù)數(shù)據(jù)的目的

系統(tǒng)管理員要能夠提供覆蓋以上五個(gè)部分的企業(yè)級(jí)安全基礎(chǔ)設(shè)施,否則任何一環(huán)的缺失都可能給整個(gè)系統(tǒng)引入安全性風(fēng)險(xiǎn)。

在大數(shù)據(jù)系統(tǒng)安全集中式管理平臺(tái)這塊,由Hortonworks推出的開源項(xiàng)目Apache Ranger就可以十分全面地為用戶提供Hadoop生態(tài)圈的集中安全策略的管理,并解決授權(quán)(Authorization)和審計(jì)(Audit)。例如,運(yùn)維管理員可以輕松地為個(gè)人用戶和組對(duì)文件、數(shù)據(jù)等的訪問(wèn)策略,然后審計(jì)對(duì)數(shù)據(jù)源的訪問(wèn)。

與Ranger提供相似功能的還有Cloudera推出的Apache Sentry項(xiàng)目,相比較而言Ranger的功能會(huì)更全面一些。

而在認(rèn)證(Authentication)方面, 一種普遍采用的解決方案是將基于Kerberos的認(rèn)證方案對(duì)接到企業(yè)內(nèi)部的LDAP環(huán)境中, Kerberos也是唯一為Hadoop全面實(shí)施的驗(yàn)證技術(shù)。

另外值得一提的是Apache Knox Gateway項(xiàng)目,與Ranger提高集群內(nèi)部組件以及用戶互相訪問(wèn)的安全不同,Knox提供的是Hadoop集群與外界的唯一交互接口,也就是說(shuō)所有與集群交互的REST API都通過(guò)Knox處理。這樣,Knox就給大數(shù)據(jù)系統(tǒng)提供了一個(gè)很好的基于邊緣的安全(perimeter-based security)。

基于以上提到的五個(gè)安全指標(biāo)和Hadoop生態(tài)圈安全相關(guān)的開源項(xiàng)目, 已經(jīng)足已證明基于Hadoop的大數(shù)據(jù)平臺(tái)我們是能夠構(gòu)建一個(gè)集中、一致、全面且有效的安全解決方案。

我市再ITjob管網(wǎng)上面找的

網(wǎng)站標(biāo)題:《NoSQL數(shù)據(jù)庫(kù)》作業(yè),nosql數(shù)據(jù)庫(kù)入門與實(shí)踐章節(jié)題答案第三章
網(wǎng)頁(yè)路徑:http://chinadenli.net/article27/dsgescj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)微信小程序網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)