内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

包含hdfsnosql的詞條

什么是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ǔ)。

山陰網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),山陰網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為山陰上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的山陰做網(wǎ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ù)核心技術(shù)有哪些?

大數(shù)據(jù)技術(shù)的體系龐大且復(fù)雜,基礎(chǔ)的技術(shù)包含數(shù)據(jù)的采集、數(shù)據(jù)預(yù)處理、分布式存儲(chǔ)、數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)、機(jī)器學(xué)習(xí)、并行計(jì)算、可視化等。

1、數(shù)據(jù)采集與預(yù)處理:FlumeNG實(shí)時(shí)日志收集系統(tǒng),支持在日志系統(tǒng)中定制各類(lèi)數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);Zookeeper是一個(gè)分布式的,開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),提供數(shù)據(jù)同步服務(wù)。

2、數(shù)據(jù)存儲(chǔ):Hadoop作為一個(gè)開(kāi)源的框架,專(zhuān)為離線和大規(guī)模數(shù)據(jù)分析而設(shè)計(jì),HDFS作為其核心的存儲(chǔ)引擎,已被廣泛用于數(shù)據(jù)存儲(chǔ)。HBase,是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),可以認(rèn)為是hdfs的封裝,本質(zhì)是數(shù)據(jù)存儲(chǔ)、NoSQL數(shù)據(jù)庫(kù)。

3、數(shù)據(jù)清洗:MapReduce作為Hadoop的查詢引擎,用于大規(guī)模數(shù)據(jù)集的并行計(jì)算。

4、數(shù)據(jù)查詢分析:Hive的核心工作就是把SQL語(yǔ)句翻譯成MR程序,可以將結(jié)構(gòu)化的數(shù)據(jù)映射為一張數(shù)據(jù)庫(kù)表,并提供HQL(HiveSQL)查詢功能。Spark啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。

5、數(shù)據(jù)可視化:對(duì)接一些BI平臺(tái),將分析得到的數(shù)據(jù)進(jìn)行可視化,用于指導(dǎo)決策服務(wù)。

NoSQL與Hadoop的區(qū)別?

NoSQL,是not only sql,是非關(guān)系數(shù)據(jù)庫(kù),不同于oracle等關(guān)系數(shù)據(jù)庫(kù)。

hadoop,是分布式解決方案,即為Mapreduce(計(jì)算的)和HDFS(文件系統(tǒng)),使用Hadoop和NoSQL可以構(gòu)造海量數(shù)據(jù)解決方案。

hdfs文件系統(tǒng)可以代替mysql嗎

不能。

不是一個(gè)概念。mysql是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)。hdfs是nosql hadoop的存儲(chǔ)方式。hdfs是分布式的自帶高可用存儲(chǔ),文件格式跟mysql的存儲(chǔ)引擎不一樣。大數(shù)據(jù)離線存儲(chǔ),當(dāng)然是hdfs更合適。通過(guò)Map/Reduce進(jìn)行批處理遞送到Apache Hadoop仍然是中樞環(huán)節(jié)。但隨著要從“超思維速度“分析方面獲取競(jìng)爭(zhēng)優(yōu)勢(shì)的壓力遞增,因此Hadoop(分布式文件系統(tǒng))自身經(jīng)歷重大的發(fā)展。

科技的發(fā)展允許實(shí)時(shí)查詢,如Apache Drill, Cloudera Impala和Stinger Initiative正脫穎而出,新一代的資源管理Apache YARN 支持這些。為了支持這種日漸強(qiáng)調(diào)實(shí)時(shí)性操作,我們正發(fā)布一個(gè)新MySQL Applier for Hadoop(用于Hadoop的MySQL Applier)組件。它能夠把MySQL中變化的事務(wù)復(fù)制到Hadoop / Hive / HDFS。Applier 組件補(bǔ)充現(xiàn)有基于批處理Apache Sqoop的連接性。

文章名稱:包含hdfsnosql的詞條
轉(zhuǎn)載注明:http://www.rwnh.cn/article10/dsigedo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、做網(wǎng)站、網(wǎng)站內(nèi)鏈外貿(mào)建站、搜索引擎優(yōu)化網(wǎng)站建設(shè)

廣告

聲明:本網(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)頁(yè)設(shè)計(jì)公司
周宁县| 宝坻区| 华宁县| 岳阳县| 股票| 团风县| 泗水县| 台江县| 鄂托克前旗| 娱乐| 都江堰市| 射洪县| 武清区| 四平市| 六枝特区| 台江县| 昂仁县| 临海市| 合水县| 翁牛特旗| 调兵山市| 澄迈县| 柳林县| 渑池县| 东至县| 织金县| 前郭尔| 景泰县| 清河县| 独山县| 湟中县| 永吉县| 滦南县| 临夏县| 保德县| 志丹县| 河东区| 洛隆县| 静宁县| 临西县| 金山区|