• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于HBase的海量數(shù)據(jù)存儲(chǔ)和快速檢索

      2019-05-24 14:11:40謝地王同喜
      電腦知識(shí)與技術(shù) 2019年4期
      關(guān)鍵詞:海量分布式

      謝地 王同喜

      摘要:隨著科技的發(fā)展,越來越多的信息需要被存儲(chǔ)到數(shù)據(jù)庫中。傳統(tǒng)的數(shù)據(jù)庫逐漸不能存儲(chǔ)海量的數(shù)據(jù),如何儲(chǔ)存海量數(shù)據(jù)是一個(gè)值得關(guān)注的問題。大數(shù)據(jù)的出現(xiàn),就是為了解決海量數(shù)據(jù)的存儲(chǔ)問題。隨著海量數(shù)據(jù)的不斷增加,傳統(tǒng)數(shù)據(jù)庫存儲(chǔ)空間也越來越大,數(shù)據(jù)操作性能變差,甚至最后可能導(dǎo)致服務(wù)器崩潰,且傳統(tǒng)數(shù)據(jù)庫擴(kuò)展費(fèi)用昂貴?;诹惺酱鎯?chǔ)的HBase存儲(chǔ)技術(shù)能夠有效地處理海量數(shù)據(jù),通過列式存儲(chǔ)檢索能忽略掉部分列數(shù)據(jù)從而實(shí)現(xiàn)更快的檢索,研究海量數(shù)據(jù)的存儲(chǔ)與快速檢索能夠幫助我們高效的處理今后日益復(fù)雜的數(shù)據(jù),通過列式的分布式存儲(chǔ)技術(shù)將類似的數(shù)據(jù)存儲(chǔ)在一起壓縮率更高,檢索效率更好。

      關(guān)鍵詞:HBase;海量;列式存儲(chǔ);分布式;快速檢索

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2019)04-0014-02

      1 引言

      當(dāng)產(chǎn)生的億級(jí)別的數(shù)據(jù)被存儲(chǔ)到數(shù)據(jù)庫中,對(duì)數(shù)據(jù)操作的性能肯定會(huì)下降。當(dāng)對(duì)這一系列數(shù)據(jù)進(jìn)行檢索以及求和排序等操作的時(shí)候,訪問的速度會(huì)由于內(nèi)存占用過大而檢索速度降低,甚至?xí)l(fā)生數(shù)據(jù)庫丟失數(shù)據(jù),或者數(shù)據(jù)溢出等現(xiàn)象,有可能最后導(dǎo)致數(shù)據(jù)庫服務(wù)器崩潰,采用分布式HBase列式存儲(chǔ)技術(shù)能夠有效解決這些問題。在處理數(shù)據(jù)時(shí),可以將數(shù)據(jù)通過主節(jié)點(diǎn)分配到不同的節(jié)點(diǎn)上進(jìn)行并行處理。

      2 國內(nèi)外研究現(xiàn)狀

      伴隨科技的不斷進(jìn)步,各個(gè)行業(yè)都產(chǎn)生了大量的數(shù)據(jù),這些數(shù)據(jù)越來越多維化且復(fù)雜化,這些海量數(shù)據(jù)都是有用的,如何存儲(chǔ)這些海量的數(shù)據(jù)[4],以及如何實(shí)現(xiàn)海量數(shù)據(jù)的快速檢索以及讀寫操作,有著重要的意義。由此產(chǎn)生了對(duì)大數(shù)據(jù)的研究,大數(shù)據(jù)下產(chǎn)生各種適合存儲(chǔ)海量數(shù)據(jù)的數(shù)據(jù)庫,以及計(jì)算框架和模型,有利于快速存儲(chǔ)并檢索分析海量的數(shù)據(jù)。

      在國內(nèi)為應(yīng)對(duì)海量數(shù)據(jù)的存儲(chǔ)及快速檢索,一些國內(nèi)的單位開始搭建自己的數(shù)據(jù)倉庫,比如中國銀行廣州分行就已經(jīng)建構(gòu)了屬于自己的數(shù)據(jù)倉庫,包括從數(shù)據(jù)的采集,處理以及海量數(shù)據(jù)的存儲(chǔ)已經(jīng)檢索方面,但是數(shù)據(jù)量相對(duì)來說比較小。比如網(wǎng)上購物平臺(tái)淘寶,每一個(gè)客戶相關(guān)的數(shù)據(jù)量級(jí)別至少是百萬以上,每天的數(shù)據(jù)量都是千億級(jí)別,萬億級(jí)別的數(shù)據(jù),而這些數(shù)據(jù)都是不能夠輕易地丟棄的,必須被實(shí)時(shí)存儲(chǔ)起來,并且能夠處理PB甚至比PB更高的實(shí)時(shí)數(shù)據(jù)。面對(duì)這些數(shù)據(jù),要構(gòu)建一個(gè)成本較低、高性能、高負(fù)載、分布式處理的海量數(shù)據(jù)庫,并且這些數(shù)據(jù)信息也包括圖片,視頻,本文,音頻等信息。淘寶公司采用了大數(shù)據(jù)技術(shù),用Hive數(shù)據(jù)倉庫和HBase數(shù)據(jù)庫對(duì)海量數(shù)據(jù)進(jìn)行存儲(chǔ),查詢以及分析。HBase采用了分布式存儲(chǔ)檢索技術(shù),能夠多結(jié)點(diǎn)分布式處理這些數(shù)據(jù)。

      Facebook每月的瀏覽量達(dá)到數(shù)億級(jí)別的瀏覽量,F(xiàn)acebook的照片量以及視頻音頻信息非常巨大,每個(gè)月超過數(shù)億級(jí)別的照片上傳到網(wǎng)站上面,同樣面對(duì)這些海量的數(shù)據(jù)信息。Facebook采用HBase來做數(shù)據(jù)的實(shí)時(shí)查詢以及檢索。

      3 HBase存儲(chǔ)與快速檢索

      3.1 HBase預(yù)分區(qū)存儲(chǔ)

      把需要存儲(chǔ)的海量數(shù)據(jù)通過sqoop工具或者直接存儲(chǔ)到HBase表中,HBase數(shù)據(jù)庫在創(chuàng)建表的時(shí)候會(huì)自動(dòng)分配出Region區(qū)域。在讀入數(shù)據(jù)的時(shí)候,數(shù)據(jù)會(huì)不停地存儲(chǔ)到這個(gè)Region區(qū)域中,直到這個(gè)分區(qū)足夠大的時(shí)候才會(huì)自動(dòng)切分這些Region分區(qū),并且每個(gè)Region區(qū)域都存在著一個(gè)startKey和endKey,這兩個(gè)值確定了數(shù)據(jù)的存儲(chǔ)范圍,即當(dāng)Row Key的值落在某個(gè)區(qū)域就會(huì)被放入到某個(gè)Region區(qū)域。當(dāng)沒有對(duì)數(shù)據(jù)進(jìn)行分區(qū)的時(shí)候,當(dāng)數(shù)據(jù)達(dá)到一定值的時(shí)候會(huì)自動(dòng)進(jìn)行分區(qū),由于在HBase本身的結(jié)構(gòu)特征,表中Row Key是通過升序方式進(jìn)行排序的,所以后面存入的數(shù)據(jù)都是被劃分到后面的一個(gè)區(qū)域中,前面的Region區(qū)域空間中并沒有存儲(chǔ)到后面導(dǎo)入的數(shù)據(jù),導(dǎo)致沒有完全填充滿數(shù)據(jù)。由于存儲(chǔ)的數(shù)據(jù)量非常大,會(huì)在該過程中會(huì)發(fā)生多次切分Region區(qū)域的情況,每次切分有一部分?jǐn)?shù)據(jù)都將不會(huì)被利用到,大大增加了存儲(chǔ)效率以及存儲(chǔ)空間,甚至可能導(dǎo)致HBase服務(wù)宕機(jī)。在應(yīng)對(duì)海量的數(shù)據(jù)時(shí),需要根據(jù)這些數(shù)據(jù)對(duì)表進(jìn)行分區(qū)處理,然后通過對(duì)Row Key進(jìn)行hash散列化,使這些海量數(shù)據(jù)能夠均勻地分布在Region分區(qū)內(nèi),從而大大提高Region區(qū)域的利用率。Region結(jié)構(gòu)圖如下:

      算法思路:首先通過算法產(chǎn)生隨機(jī)的Row Key,這些行鍵會(huì)通過升序方式放入到一個(gè)集合中,然后進(jìn)行對(duì)對(duì)表進(jìn)行預(yù)分區(qū)處理,最后將這些Row Key均勻放入到分區(qū)塊中。通過 rowKeyGenerator類產(chǎn)生Row Key:

      設(shè)置Region分區(qū)的數(shù)據(jù),需對(duì)Row Key進(jìn)行迭代遍歷,設(shè)置合適的Region分割值,最后將Row Key排序放入到相應(yīng)的塊中,完成預(yù)分區(qū)處理。

      在預(yù)分區(qū)的過程中已經(jīng)設(shè)置好每次數(shù)據(jù)切割的split值,然后再將這些隨機(jī)產(chǎn)生的Row Key對(duì)應(yīng)到相應(yīng)的Region區(qū)域。減少了默認(rèn)的預(yù)分區(qū)過程中部分?jǐn)?shù)據(jù)塊中數(shù)據(jù)未填充滿,以及多次自動(dòng)切分過程中的存儲(chǔ)效率問題,然后將這些海量的數(shù)據(jù)通過根據(jù)隨時(shí)產(chǎn)生的Row Key存儲(chǔ)到表結(jié)構(gòu)當(dāng)中。

      3.2 HBase二級(jí)快速索引

      將存儲(chǔ)的數(shù)據(jù)通過分區(qū)優(yōu)化策略,以及建表中列族優(yōu)化的策略將數(shù)據(jù)存儲(chǔ)到表中。為了實(shí)現(xiàn)海量數(shù)據(jù)的快速檢索,利用HBase表中的二級(jí)索引方式建立索引。傳統(tǒng)的一級(jí)索引方式只是將索引建立在Row Key中,只能基于Row Rey對(duì)數(shù)據(jù)進(jìn)行掃描,只能解決一些簡(jiǎn)單的SQL語句。但是如果我們需要對(duì)HBase進(jìn)行一些不同列族之間的數(shù)據(jù)進(jìn)行聯(lián)合查詢的時(shí)候,我們必須要采取二級(jí)索引的方式,二級(jí)索引的方式必須要建立在Region級(jí)別之上,主要是為了防止將索引表和數(shù)據(jù)表建立在不同的Region區(qū)域下。

      二級(jí)索引建立和查詢的思路過程:首先通過客戶端向各個(gè)Region區(qū)域發(fā)送消息,分別在各個(gè)Region區(qū)域建立索引,并存儲(chǔ)數(shù)據(jù)。檢索的過程是客戶端會(huì)向各個(gè)區(qū)域發(fā)送信息,各個(gè)Region區(qū)域會(huì)對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行檢索,查詢,并將最后的結(jié)果返回給客戶端,客戶端獲取到數(shù)據(jù),最后提交數(shù)據(jù)。

      (1)Region區(qū)域先建立起索引,索引信息如下:

      (2)在Region收到客戶端發(fā)來的信息,建立Scanner對(duì)象對(duì)Region區(qū)域中的Row Key進(jìn)行搜尋:

      (3)在搜尋的過程中會(huì)根據(jù)相應(yīng)的Row Key值進(jìn)行定位,得到索引的值。然后根據(jù)seekNext()方法得到下一個(gè)Row Key,然后得到索引過程中的值,后將相應(yīng)的值得到保存并將結(jié)果提高給客戶端實(shí)現(xiàn)數(shù)據(jù)的快速檢索。

      通過二次索引能夠快速定位到需要檢索的數(shù)據(jù),有利于數(shù)據(jù)的快速檢索,并且能提高檢索效率,相比于一級(jí)索引具有更高的優(yōu)勢(shì),更適合海量數(shù)據(jù)的檢索。

      4 總結(jié)

      傳統(tǒng)的數(shù)據(jù)庫已經(jīng)不再適合存儲(chǔ)海量的數(shù)據(jù),但可以通過將傳統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)通過sqooq工具導(dǎo)入到HBase中,通過HBase列式存儲(chǔ)能夠解決傳統(tǒng)數(shù)據(jù)庫在存儲(chǔ)海量數(shù)據(jù)時(shí)的難點(diǎn),加快數(shù)據(jù)的檢索效率。HBase列式存儲(chǔ),主要是通過鍵值對(duì)方式進(jìn)行存儲(chǔ),能夠支持實(shí)時(shí)的查詢,并且在數(shù)據(jù)導(dǎo)入到HBase表中可以先對(duì)表進(jìn)行預(yù)分區(qū)處理,使數(shù)據(jù)都能夠均勻地分布在每一個(gè)分區(qū)內(nèi),再采取二級(jí)索引的方式對(duì)數(shù)據(jù)進(jìn)行快速檢索,而傳統(tǒng)的行式存儲(chǔ)方式通過將一行行數(shù)據(jù)地放在同一個(gè)區(qū)域,在數(shù)據(jù)檢索時(shí)無法忽略無關(guān)的列,增加檢索耗時(shí)。當(dāng)然在為了加快數(shù)據(jù)檢索效率方面,可以將elasticResearch工具和HBase進(jìn)行聯(lián)合使用,elasticResearch主要是支持json數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)的檢索,可以通過對(duì)HBase中的數(shù)據(jù)建立索引實(shí)現(xiàn)數(shù)據(jù)的快速定位。

      參考文獻(xiàn):

      [1] 李存琛. 海量數(shù)據(jù)分布式存儲(chǔ)技術(shù)的研究與應(yīng)用[D]. 北京郵電大學(xué),2012.

      [2] 唐亦鵬. 海量數(shù)據(jù)研究系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 哈爾濱工業(yè)大學(xué),2014.

      [3] 卓海藝. 基于HBase的海量數(shù)據(jù)實(shí)時(shí)查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京郵電大學(xué),2013.

      [4] 齊方方. 海量數(shù)據(jù)存儲(chǔ)和準(zhǔn)實(shí)時(shí)查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 西南石油大學(xué),2015.

      [5] Nick Dimiduk. HBase實(shí)戰(zhàn)[M]. 謝磊. 北京:人民郵電出版社,2013:1-315.

      [6] 李軍. 大數(shù)據(jù):從海量到精準(zhǔn)[M] 北京:清華大學(xué)出版社,2014:1-302.

      [7]趙剛. 大數(shù)據(jù)[M] 北京:電子工業(yè)出版社,2013 1-278.

      [8] 付文靜. 基于HBase的大數(shù)據(jù)存儲(chǔ)查詢技術(shù)研究[D]. 電子科技大學(xué),2015.

      [9] 馬翠云. 基于HBase的大規(guī)模數(shù)據(jù)存儲(chǔ)解決方案的設(shè)計(jì)和實(shí)現(xiàn)[D]. 山東大學(xué),2015.

      [10] 馮曉普. HBase存儲(chǔ)的研究與應(yīng)用[D]. 北京郵電大學(xué),2014.

      [11] Jeffrey Dean.Sanjy Ghemawat. MapReduce:Simplified data Process-ing On Large Clusters [J].Communications of the ACM,2005,51(1):107-113.

      【通聯(lián)編輯:梁書】

      猜你喜歡
      海量分布式
      一種傅里葉域海量數(shù)據(jù)高速譜聚類方法
      構(gòu)建高速海量視頻智慧云聯(lián)網(wǎng)平臺(tái)
      海量快遞垃圾正在“圍城”——“綠色快遞”勢(shì)在必行
      分布式光伏發(fā)展的四大矛盾
      能源(2017年7期)2018-01-19 05:05:03
      分布式光伏熱錢洶涌
      能源(2017年10期)2017-12-20 05:54:07
      基于預(yù)處理MUSIC算法的分布式陣列DOA估計(jì)
      分布式光伏:爆發(fā)還是徘徊
      能源(2017年5期)2017-07-06 09:25:54
      一個(gè)圖形所蘊(yùn)含的“海量”巧題
      一種海量衛(wèi)星導(dǎo)航軌跡點(diǎn)地圖匹配方法
      西門子 分布式I/O Simatic ET 200AL
      西林县| 金昌市| 宁陵县| 凌海市| 台中市| 栾川县| 博野县| 衡水市| 平和县| 前郭尔| 全南县| 山东省| 台东市| 林西县| 奉节县| 新民市| 沾化县| 灯塔市| 舟山市| 富蕴县| 青神县| 重庆市| 新河县| 德昌县| 凤庆县| 三明市| 清镇市| 吴桥县| 阿坝县| 太原市| 乐安县| 蕲春县| 鄂托克前旗| 科尔| 麦盖提县| 格尔木市| 伊宁市| 垦利县| 南溪县| 庐江县| 女性|