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

nosql存儲(chǔ)大文件,nosql列存儲(chǔ)

互聯(lián)網(wǎng)如何海量存儲(chǔ)數(shù)據(jù)?

目前存儲(chǔ)海量數(shù)據(jù)的技術(shù)主要包括NoSQL、分布式文件系統(tǒng)、和傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)。隨著互聯(lián)網(wǎng)行業(yè)不斷的發(fā)展,產(chǎn)生的數(shù)據(jù)量越來(lái)越多,并且這些數(shù)據(jù)的特點(diǎn)是半結(jié)構(gòu)化和非結(jié)構(gòu)化,數(shù)據(jù)很可能是不精確的,易變的。這樣傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)就無(wú)法發(fā)揮它的優(yōu)勢(shì)。因此,目前互聯(lián)網(wǎng)行業(yè)偏向于使用NoSQL和分布式文件系統(tǒng)來(lái)存儲(chǔ)海量數(shù)據(jù)。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)絡(luò)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、召陵網(wǎng)站維護(hù)、網(wǎng)站推廣。

下面介紹下常用的NoSQL和分布式文件系統(tǒng)。

NoSQL

互聯(lián)網(wǎng)行業(yè)常用的NoSQL有:HBase、MongoDB、Couchbase、LevelDB。

HBase是Apache Hadoop的子項(xiàng)目,理論依據(jù)為Google論文 Bigtable: A Distributed Storage System for Structured Data開(kāi)發(fā)的。HBase適合存儲(chǔ)半結(jié)構(gòu)化或非結(jié)構(gòu)化的數(shù)據(jù)。HBase的數(shù)據(jù)模型是稀疏的、分布式的、持久穩(wěn)固的多維map。HBase也有行和列的概念,這是與RDBMS相同的地方,但卻又不同。HBase底層采用HDFS作為文件系統(tǒng),具有高可靠性、高性能。

MongoDB是一種支持高性能數(shù)據(jù)存儲(chǔ)的開(kāi)源文檔型數(shù)據(jù)庫(kù)。支持嵌入式數(shù)據(jù)模型以減少對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的I/O、利用索引實(shí)現(xiàn)快速查詢,并且嵌入式文檔和集合也支持索引,它復(fù)制能力被稱作復(fù)制集(replica set),提供了自動(dòng)的故障遷移和數(shù)據(jù)冗余。MongoDB的分片策略將數(shù)據(jù)分布在服務(wù)器集群上。

Couchbase這種NoSQL有三個(gè)重要的組件:Couchbase服務(wù)器、Couchbase Gateway、Couchbase Lite。Couchbase服務(wù)器,支持橫向擴(kuò)展,面向文檔的數(shù)據(jù)庫(kù),支持鍵值操作,類(lèi)似于SQL查詢和內(nèi)置的全文搜索;Couchbase Gateway提供了用于RESTful和流式訪問(wèn)數(shù)據(jù)的應(yīng)用層API。Couchbase Lite是一款面向移動(dòng)設(shè)備和“邊緣”系統(tǒng)的嵌入式數(shù)據(jù)庫(kù)。Couchbase支持千萬(wàn)級(jí)海量數(shù)據(jù)存儲(chǔ)

分布式文件系統(tǒng)

如果針對(duì)單個(gè)大文件,譬如超過(guò)100MB的文件,使用NoSQL存儲(chǔ)就不適當(dāng)了。使用分布式文件系統(tǒng)的優(yōu)勢(shì)在于,分布式文件系統(tǒng)隔離底層數(shù)據(jù)存儲(chǔ)和分布的細(xì)節(jié),展示給用戶的是一個(gè)統(tǒng)一的邏輯視圖。常用的分布式文件系統(tǒng)有Google File System、HDFS、MooseFS、Ceph、GlusterFS、Lustre等。

相比過(guò)去打電話、發(fā)短信、用彩鈴的“老三樣”,移動(dòng)互聯(lián)網(wǎng)的發(fā)展使得人們可以隨時(shí)隨地通過(guò)刷微博、看視頻、微信聊天、瀏覽網(wǎng)頁(yè)、地圖導(dǎo)航、網(wǎng)上購(gòu)物、外賣(mài)訂餐等,這些業(yè)務(wù)的海量數(shù)據(jù)都構(gòu)建在大規(guī)模網(wǎng)絡(luò)云資源池之上。當(dāng)14億中國(guó)人把衣食住行搬上移動(dòng)互聯(lián)網(wǎng)的同時(shí),也給網(wǎng)絡(luò)云資源池帶來(lái)巨大業(yè)務(wù)挑戰(zhàn)。

首先,用戶需求動(dòng)態(tài)變化,傳統(tǒng)業(yè)務(wù)流量主要是端到端模式,較為穩(wěn)定;而互聯(lián)網(wǎng)流量易受熱點(diǎn)內(nèi)容牽引,數(shù)據(jù)流量流向復(fù)雜和規(guī)模多變:比如雙十一購(gòu)物狂潮,電商平臺(tái)訂單創(chuàng)建峰值達(dá)到58.3萬(wàn)筆,要求通信網(wǎng)絡(luò)提供高并發(fā)支持;又如優(yōu)酷春節(jié)期間有超過(guò)23億人次上網(wǎng)刷劇、抖音拜年短視頻增長(zhǎng)超10倍,需要通信網(wǎng)絡(luò)能夠靈活擴(kuò)充帶寬。面對(duì)用戶動(dòng)態(tài)多變的需求,通信網(wǎng)絡(luò)需要具備快速洞察和響應(yīng)用戶需求的能力,提供高效、彈性、智能的數(shù)據(jù)服務(wù)。

“隨著通信網(wǎng)絡(luò)管道十倍百倍加粗、節(jié)點(diǎn)數(shù)從千萬(wàn)級(jí)逐漸躍升至百億千億級(jí),如何‘接得住、存得下’海量數(shù)據(jù),成為網(wǎng)絡(luò)云資源池建設(shè)面臨的巨大考驗(yàn)”,李輝表示。一直以來(lái),作為新數(shù)據(jù)存儲(chǔ)首倡者和引領(lǐng)者,浪潮存儲(chǔ)攜手通信行業(yè)用戶,不斷 探索 提速通信網(wǎng)絡(luò)云基礎(chǔ)設(shè)施的各種姿勢(shì)。

早在2018年,浪潮存儲(chǔ)就參與了通信行業(yè)基礎(chǔ)設(shè)施建設(shè),四年內(nèi)累計(jì)交付約5000套存儲(chǔ)產(chǎn)品,涵蓋全閃存儲(chǔ)、高端存儲(chǔ)、分布式存儲(chǔ)等明星產(chǎn)品。其中在網(wǎng)絡(luò)云建設(shè)中,浪潮存儲(chǔ)已連續(xù)兩年兩次中標(biāo)全球最大的NFV網(wǎng)絡(luò)云項(xiàng)目,其中在網(wǎng)絡(luò)云二期建設(shè)中,浪潮存儲(chǔ)提供數(shù)千節(jié)點(diǎn),為上層網(wǎng)元、應(yīng)用提供高效數(shù)據(jù)服務(wù)。在最新的NFV三期項(xiàng)目中,浪潮存儲(chǔ)也已中標(biāo)。

能夠與通信用戶在網(wǎng)絡(luò)云建設(shè)中多次握手,背后是浪潮存儲(chǔ)的持續(xù)技術(shù)投入與創(chuàng)新。浪潮存儲(chǔ)6年內(nèi)投入超30億研發(fā)經(jīng)費(fèi),開(kāi)發(fā)了業(yè)界首個(gè)“多合一”極簡(jiǎn)架構(gòu)的浪潮并行融合存儲(chǔ)系統(tǒng)。此存儲(chǔ)系統(tǒng)能夠統(tǒng)籌管理數(shù)千個(gè)節(jié)點(diǎn),實(shí)現(xiàn)性能、容量線性擴(kuò)展;同時(shí)基于浪潮iTurbo智能加速引擎的智能IO均衡、智能資源調(diào)度、智能元數(shù)據(jù)管理等功能,與自研NVMe SSD閃存盤(pán)進(jìn)行系統(tǒng)級(jí)別聯(lián)調(diào)優(yōu)化,讓百萬(wàn)級(jí)IO均衡落盤(pán)且路徑更短,將存儲(chǔ)系統(tǒng)性能發(fā)揮到極致。

“為了確保全球最大規(guī)模的網(wǎng)絡(luò)云正常上線運(yùn)行,我們聯(lián)合用戶對(duì)存儲(chǔ)集群展開(kāi)了長(zhǎng)達(dá)數(shù)月的魔鬼測(cè)試”,浪潮存儲(chǔ)工程師表示。網(wǎng)絡(luò)云的IO以虛擬機(jī)數(shù)據(jù)和上層應(yīng)用數(shù)據(jù)為主,浪潮按照每個(gè)存儲(chǔ)集群支持15000臺(tái)虛機(jī)進(jìn)行配置,分別對(duì)單卷隨機(jī)讀寫(xiě)、順序?qū)憽⒒旌献x寫(xiě)以及全系統(tǒng)隨機(jī)讀寫(xiě)的IO、帶寬、時(shí)延等指標(biāo)進(jìn)行了360無(wú)死角測(cè)試,達(dá)到了通信用戶提出的單卷、系統(tǒng)性能不低于4萬(wàn)和12萬(wàn)IOPS、時(shí)延小于3ms的要求,產(chǎn)品成熟度得到了驗(yàn)證。

以通信行業(yè)為例,2020年全國(guó)移動(dòng)互聯(lián)網(wǎng)接入流量1656億GB,相當(dāng)于中國(guó)14億人每人消耗118GB數(shù)據(jù);其中春節(jié)期間,移動(dòng)互聯(lián)網(wǎng)更是創(chuàng)下7天消耗36億GB數(shù)據(jù)流量的記錄,還“捎帶”打了548億分鐘電話、發(fā)送212億條短信……海量實(shí)時(shí)數(shù)據(jù)洪流,在網(wǎng)絡(luò)云資源池(NFV)支撐下收放自如,其中分布式存儲(chǔ)平臺(tái)發(fā)揮了作用。如此樣板工程,其巨大示范及拉動(dòng)作用不言而喻。

NoSQL-HDFS-基本概念

Hadoop

文件系統(tǒng):文件系統(tǒng)是用來(lái)存儲(chǔ)和管理文件,并且提供文件的查詢、增加、刪除等操作。

直觀上的體驗(yàn):在shell窗口輸入 ls 命令,就可以看到當(dāng)前目錄下的文件夾、文件。

文件存儲(chǔ)在哪里?硬盤(pán)

一臺(tái)只有250G硬盤(pán)的電腦,如果需要存儲(chǔ)500G的文件可以怎么辦?先將電腦硬盤(pán)擴(kuò)容至少250G,再將文件分割成多塊,放到多塊硬盤(pán)上儲(chǔ)存。

通過(guò) hdfs dfs -ls 命令可以查看分布式文件系統(tǒng)中的文件,就像本地的ls命令一樣。

HDFS在客戶端上提供了查詢、新增和刪除的指令,可以實(shí)現(xiàn)將分布在多臺(tái)機(jī)器上的文件系統(tǒng)進(jìn)行統(tǒng)一的管理。

在分布式文件系統(tǒng)中,一個(gè)大文件會(huì)被切分成塊,分別存儲(chǔ)到幾臺(tái)機(jī)器上。結(jié)合上文中提到的那個(gè)存儲(chǔ)500G大文件的那個(gè)例子,這500G的文件會(huì)按照一定的大小被切分成若干塊,然后分別存儲(chǔ)在若干臺(tái)機(jī)器上,然后提供統(tǒng)一的操作接口。

看到這里,不少人可能會(huì)覺(jué)得,分布式文件系統(tǒng)不過(guò)如此,很簡(jiǎn)單嘛。事實(shí)真的是這樣的么?

潛在問(wèn)題

假如我有一個(gè)1000臺(tái)機(jī)器組成的分布式系統(tǒng),一臺(tái)機(jī)器每天出現(xiàn)故障的概率是0.1%,那么整個(gè)系統(tǒng)每天出現(xiàn)故障的概率是多大呢?答案是(1-0.1%)^1000=63%,因此需要提供一個(gè)容錯(cuò)機(jī)制來(lái)保證發(fā)生差錯(cuò)時(shí)文件依然可以讀出,這里暫時(shí)先不展開(kāi)介紹。

如果要存儲(chǔ)PB級(jí)或者EB級(jí)的數(shù)據(jù),成千上萬(wàn)臺(tái)機(jī)器組成的集群是很常見(jiàn)的,所以說(shuō)分布式系統(tǒng)比單機(jī)系統(tǒng)要復(fù)雜得多呀。

這是一張HDFS的架構(gòu)簡(jiǎn)圖:

client通過(guò)nameNode了解數(shù)據(jù)在哪些DataNode上,從而發(fā)起查詢。此外,不僅是查詢文件,寫(xiě)入文件的時(shí)候也是先去請(qǐng)教N(yùn)ameNode,看看應(yīng)該往哪個(gè)DateNode中去寫(xiě)。

為了某一份數(shù)據(jù)只寫(xiě)入到一個(gè)Datanode中,而這個(gè)Datanode因?yàn)槟承┰虺鲥e(cuò)無(wú)法讀取的問(wèn)題,需要通過(guò)冗余備份的方式來(lái)進(jìn)行容錯(cuò)處理。因此,HDFS在寫(xiě)入一個(gè)數(shù)據(jù)塊的時(shí)候,不會(huì)僅僅寫(xiě)入一個(gè)DataNode,而是會(huì)寫(xiě)入到多個(gè)DataNode中,這樣,如果其中一個(gè)DataNode壞了,還可以從其余的DataNode中拿到數(shù)據(jù),保證了數(shù)據(jù)不丟失。

實(shí)際上,每個(gè)數(shù)據(jù)塊在HDFS上都會(huì)保存多份,保存在不同的DataNode上。這種是犧牲一定存儲(chǔ)空間換取可靠性的做法。

接下來(lái)我們來(lái)看一下完整的文件寫(xiě)入的流程:

大文件要寫(xiě)入HDFS,client端根據(jù)配置將大文件分成固定大小的塊,然后再上傳到HDFS。

讀取文件的流程:

1、client詢問(wèn)NameNode,我要讀取某個(gè)路徑下的文件,麻煩告訴我這個(gè)文件都在哪些DataNode上?

2、NameNode回復(fù)client,這個(gè)路徑下的文件被切成了3塊,分別在DataNode1、DataNode3和DataNode4上

3、client去找DataNode1、DataNode3和DataNode4,拿到3個(gè)文件塊,通過(guò)stream讀取并且整合起來(lái)

文件寫(xiě)入的流程:

1、client先將文件分塊,然后詢問(wèn)NameNode,我要寫(xiě)入一個(gè)文件到某個(gè)路徑下,文件有3塊,應(yīng)該怎么寫(xiě)?

2、NameNode回復(fù)client,可以分別寫(xiě)到DataNode1、DataNode2、DataNode3、DataNode4上,記住,每個(gè)塊重復(fù)寫(xiě)3份,總共是9份

3、client找到DataNode1、DataNode2、DataNode3、DataNode4,把數(shù)據(jù)寫(xiě)到他們上面

出于容錯(cuò)的考慮,每個(gè)數(shù)據(jù)塊有3個(gè)備份,但是3個(gè)備份快都直接由client端直接寫(xiě)入勢(shì)必會(huì)帶來(lái)client端過(guò)重的寫(xiě)入壓力,這個(gè)點(diǎn)是否有更好的解決方案呢?回憶一下mysql主備之間是通過(guò)binlog文件進(jìn)行同步的,HDFS當(dāng)然也可以借鑒這個(gè)思想,數(shù)據(jù)其實(shí)只需要寫(xiě)入到一個(gè)datanode上,然后由datanode之間相互進(jìn)行備份同步,減少了client端的寫(xiě)入壓力,那么至于是一個(gè)datanode寫(xiě)入成功即成功,還是需要所有的參與備份的datanode返回寫(xiě)入成功才算成功,是可靠性配置的策略,當(dāng)然這個(gè)設(shè)置會(huì)影響到數(shù)據(jù)寫(xiě)入的吞吐率,我們可以看到可靠性和效率永遠(yuǎn)是“魚(yú)和熊掌不可兼得”的。

潛在問(wèn)題

NameNode確實(shí)會(huì)回放editlog,但是不是每次都從頭回放,它會(huì)先加載一個(gè)fsimage,這個(gè)文件是之前某一個(gè)時(shí)刻整個(gè)NameNode的文件元數(shù)據(jù)的內(nèi)存快照,然后再在這個(gè)基礎(chǔ)上回放editlog,完成后,會(huì)清空editlog,再把當(dāng)前文件元數(shù)據(jù)的內(nèi)存狀態(tài)寫(xiě)入fsimage,方便下一次加載。

這樣,全量回放就變成了增量回放,但是如果NameNode長(zhǎng)時(shí)間未重啟過(guò),editlog依然會(huì)比較大,恢復(fù)的時(shí)間依然比較長(zhǎng),這個(gè)問(wèn)題怎么解呢?

SecondNameNode是一個(gè)NameNode內(nèi)的定時(shí)任務(wù)線程,它會(huì)定期地將editlog寫(xiě)入fsimage,然后情況原來(lái)的editlog,從而保證editlog的文件大小維持在一定大小。

NameNode掛了, SecondNameNode并不能替代NameNode,所以如果集群中只有一個(gè)NameNode,它掛了,整個(gè)系統(tǒng)就掛了。hadoop2.x之前,整個(gè)集群只能有一個(gè)NameNode,是有可能發(fā)生單點(diǎn)故障的,所以hadoop1.x有本身的不穩(wěn)定性。但是hadoop2.x之后,我們可以在集群中配置多個(gè)NameNode,就不會(huì)有這個(gè)問(wèn)題了,但是配置多個(gè)NameNode,需要注意的地方就更多了,系統(tǒng)就更加復(fù)雜了。

俗話說(shuō)“一山不容二虎”,兩個(gè)NameNode只能有一個(gè)是活躍狀態(tài)active,另一個(gè)是備份狀態(tài)standby,我們看一下兩個(gè)NameNode的架構(gòu)圖。

兩個(gè)NameNode通過(guò)JournalNode實(shí)現(xiàn)同步editlog,保持狀態(tài)一致可以相互替換。

因?yàn)閍ctive的NameNode掛了之后,standby的NameNode要馬上接替它,所以它們的數(shù)據(jù)要時(shí)刻保持一致,在寫(xiě)入數(shù)據(jù)的時(shí)候,兩個(gè)NameNode內(nèi)存中都要記錄數(shù)據(jù)的元信息,并保持一致。這個(gè)JournalNode就是用來(lái)在兩個(gè)NameNode中同步數(shù)據(jù)的,并且standby NameNode實(shí)現(xiàn)了SecondNameNode的功能。

進(jìn)行數(shù)據(jù)同步操作的過(guò)程如下:

active NameNode有操作之后,它的editlog會(huì)被記錄到JournalNode中,standby NameNode會(huì)從JournalNode中讀取到變化并進(jìn)行同步,同時(shí)standby NameNode會(huì)監(jiān)聽(tīng)記錄的變化。這樣做的話就是實(shí)時(shí)同步了,并且standby NameNode就實(shí)現(xiàn)了SecondNameNode的功能。

優(yōu)點(diǎn):

缺點(diǎn):

數(shù)據(jù)庫(kù)存大文件用什么類(lèi)型

超大的數(shù)據(jù)用NoSQL數(shù)據(jù)庫(kù)存儲(chǔ)。

它可以支持超大規(guī)模數(shù)據(jù)存儲(chǔ),靈活的數(shù)據(jù)模型可以很好地支持Web2.0應(yīng)用。具有強(qiáng)大的橫向擴(kuò)展能力等。

而且,云數(shù)據(jù)庫(kù)具有高可擴(kuò)展性、高可用性、采用多租形式和支持資源有效分發(fā)等特點(diǎn)。

云數(shù)據(jù)庫(kù)是基于云計(jì)算技術(shù)發(fā)展的一種共享基礎(chǔ)架構(gòu)的方法,是部署和虛擬化在云計(jì)算環(huán)境中的數(shù)據(jù)庫(kù)。

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

什么是NoSQL數(shù)據(jù)庫(kù)?從名稱“非SQL”或“非關(guān)系型”衍生而來(lái),這些數(shù)據(jù)庫(kù)不使用類(lèi)似SQL的查詢語(yǔ)言,通常稱為結(jié)構(gòu)化存儲(chǔ)。這些數(shù)據(jù)庫(kù)自1960年就已經(jīng)存在,但是直到現(xiàn)在一些大公司(例如Google和Facebook)開(kāi)始使用它們時(shí),這些數(shù)據(jù)庫(kù)才流行起來(lái)。該數(shù)據(jù)庫(kù)最明顯的優(yōu)勢(shì)是擺脫了一組固定的列、連接和類(lèi)似SQL的查詢語(yǔ)言的限制。有時(shí),NoSQL這個(gè)名稱也可能表示“不僅僅SQL”,來(lái)確保它們可能支持SQL。 NoSQL數(shù)據(jù)庫(kù)使用諸如鍵值、寬列、圖形或文檔之類(lèi)的數(shù)據(jù)結(jié)構(gòu),并且可以如JSON之類(lèi)的不同格式存儲(chǔ)。

分享文章:nosql存儲(chǔ)大文件,nosql列存儲(chǔ)
分享URL:http://chinadenli.net/article10/dsggodo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站小程序開(kāi)發(fā)服務(wù)器托管網(wǎng)站排名網(wǎng)站設(shè)計(jì)公司網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(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)站