国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)的制作方法

      文檔序號(hào):11155595閱讀:346來源:國知局
      一種基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)的制造方法與工藝

      本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)。



      背景技術(shù):

      隨著信息化的發(fā)展,企業(yè)要處理的數(shù)據(jù)呈爆炸式的增長(zhǎng),數(shù)據(jù)量都達(dá)到了超大規(guī)模(例如從TB級(jí)到PB級(jí)),由此帶來了一系列的問題。數(shù)據(jù)量的增多,系統(tǒng)的負(fù)載越來越大,數(shù)據(jù)的入庫和查詢性能隨之下降。在不增加硬件成本的情況下,如何發(fā)揮系統(tǒng)的最大性能,使入庫和查詢的速度最快,是許多企業(yè)面臨的難題。

      云計(jì)算的出現(xiàn)為海量數(shù)據(jù)處理提供了有效地解決途徑,在通常的云計(jì)算解決方案中存在基于Hadoop的框架設(shè)計(jì),Hadoop中包括:分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),MapReduce為海量的數(shù)據(jù)提供了計(jì)算。通過Hadoop的HDFS可以方便的實(shí)現(xiàn)海量數(shù)據(jù)存儲(chǔ),同時(shí)有效防止單點(diǎn)故障,避免不必要的損失。但是,在HDFS上進(jìn)行數(shù)據(jù)檢索時(shí),常用的方法是開啟全局搜索MapReduce,即需要進(jìn)行大規(guī)模數(shù)據(jù)的并行運(yùn)算,這需要完整過濾一遍HDFS上存儲(chǔ)的所有數(shù)據(jù)。在云計(jì)算中,尤其是海量數(shù)據(jù)的情況下,現(xiàn)有技術(shù)中在HDFS上使用MapReduce進(jìn)行全局搜索會(huì)對(duì)系統(tǒng)資源造成巨大的浪費(fèi),耗費(fèi)大量的時(shí)間。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明的目的在于提供一種基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng),用于提高數(shù)據(jù)查詢的效率,快速響應(yīng)客戶端的查詢請(qǐng)求。

      為了達(dá)到上述目的,本發(fā)明采用這樣的如下技術(shù)方案:

      本發(fā)明提供一種基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng),所述基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)包括:客戶端、實(shí)時(shí)傳輸中間件、分布式文件系統(tǒng)HDFS,其中,

      所述HDFS包括:控制節(jié)點(diǎn)namenode和多個(gè)數(shù)據(jù)節(jié)點(diǎn)datanode;

      所述控制節(jié)點(diǎn),用于在所述多個(gè)數(shù)據(jù)節(jié)點(diǎn)上啟動(dòng)多線程,實(shí)時(shí)的創(chuàng)建需要入庫的多個(gè)數(shù)據(jù)分別對(duì)應(yīng)的索引,并將多個(gè)索引按照創(chuàng)建時(shí)間保存在多個(gè)索引文件中;

      所述客戶端,用于通過所述實(shí)時(shí)傳輸中間件向所述HDFS發(fā)送數(shù)據(jù)獲取get請(qǐng)求;

      所述實(shí)時(shí)傳輸中間件,用于將所述客戶端發(fā)送的數(shù)據(jù)獲取請(qǐng)求轉(zhuǎn)發(fā)給所述控制節(jié)點(diǎn);

      所述控制節(jié)點(diǎn),用于根據(jù)所述客戶端發(fā)送的數(shù)據(jù)獲取請(qǐng)求創(chuàng)建查詢?nèi)蝿?wù),所述查詢?nèi)蝿?wù)包括:目標(biāo)數(shù)據(jù)所滿足的查詢條件,所述查詢條件包括:查詢時(shí)間條件;根據(jù)所述查詢條件中的查詢時(shí)間條件和所述多個(gè)索引文件進(jìn)行匹配,篩選出滿足所述查詢時(shí)間條件的索引條件;將所述查詢?nèi)蝿?wù)分發(fā)到所述多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,根據(jù)所述篩選出的索引文件和所述查詢條件查詢所述多個(gè)數(shù)據(jù)節(jié)點(diǎn),從而得到滿足所述查詢條件的數(shù)據(jù)的位置;再次向所述多個(gè)數(shù)據(jù)節(jié)點(diǎn)分發(fā)所述查詢?nèi)蝿?wù),根據(jù)所述滿足所述查詢條件的數(shù)據(jù)的位置在所述多個(gè)數(shù)據(jù)節(jié)點(diǎn)上讀取數(shù)據(jù),當(dāng)所述多個(gè)數(shù)據(jù)節(jié)點(diǎn)中任何一個(gè)數(shù)據(jù)節(jié)點(diǎn)查詢成功時(shí),返回查詢結(jié)果;

      所述實(shí)時(shí)傳輸中間件,用于按照預(yù)置的輪詢周期輪詢查詢結(jié)果目錄,如果所述查詢結(jié)果目錄不為空,則讀取所述查詢結(jié)果目錄中的查詢結(jié)果文件并返回給客戶端;

      所述客戶端,用于通過所述實(shí)時(shí)傳輸中間件實(shí)時(shí)的獲取到所述查詢結(jié)果文件。

      采用上述技術(shù)方案后,本發(fā)明提供的技術(shù)方案將有如下優(yōu)點(diǎn):

      本發(fā)明實(shí)施例提供的基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)中,可以實(shí)現(xiàn)對(duì)大數(shù)據(jù)實(shí)時(shí)處理,在大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)中可以實(shí)現(xiàn)數(shù)據(jù)的入庫,查詢,傳輸都是并發(fā)的,且是實(shí)時(shí)的。本發(fā)明實(shí)施例中在創(chuàng)建查詢?nèi)蝿?wù)的同時(shí),進(jìn)行過濾索引,過濾索引的同時(shí)可以將過濾完的索引文件分發(fā)到datanode上面,同時(shí)datanode完成本地文件的查詢,并向客戶端返回查詢結(jié)果。并且本發(fā)明實(shí)施例中任何datanode的查詢完成,都可以通過實(shí)時(shí)傳輸中間件的周期輪詢機(jī)制快速的向客戶端返回查詢結(jié)果。本發(fā)明實(shí)施例中,在HDFS內(nèi)的數(shù)據(jù)查詢處理過程都是并發(fā)執(zhí)行的,最大限度的利用了計(jì)算機(jī)的硬件設(shè)備,使查詢達(dá)到了實(shí)時(shí)完成,極大地提高了查詢的效率,用戶執(zhí)行查詢操作時(shí)便能獲得查詢結(jié)果,提高數(shù)據(jù)查詢的效率,快速響應(yīng)客戶端的查詢請(qǐng)求。

      附圖說明

      圖1為本發(fā)明實(shí)施例提供一種基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)的組成結(jié)構(gòu)示意圖;

      圖2為本發(fā)明實(shí)施例提供基于jetty的查詢流程示意圖。

      具體實(shí)施方式

      本發(fā)明實(shí)施例提供了一種基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng),用于提高數(shù)據(jù)查詢的效率,快速響應(yīng)客戶端的查詢請(qǐng)求。

      為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域的技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,以便包含一系列單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于那些單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它單元。

      以下分別進(jìn)行詳細(xì)說明。

      本發(fā)明基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)的一個(gè)實(shí)施例,可以實(shí)現(xiàn)在分布式系統(tǒng)基礎(chǔ)架構(gòu)上完成數(shù)據(jù)的快速實(shí)時(shí)查詢。本發(fā)明實(shí)施例可以克服現(xiàn)有技術(shù)中的云計(jì)算解決方案中常用數(shù)據(jù)處理方法會(huì)造成系統(tǒng)資源浪費(fèi),數(shù)據(jù)處理時(shí)間長(zhǎng)的缺點(diǎn),提供一種有效的海量數(shù)據(jù)實(shí)時(shí)處理方法。本發(fā)明實(shí)施例中數(shù)據(jù)的入庫,查詢,傳輸都是并發(fā)的、實(shí)時(shí)的。請(qǐng)參閱圖1所示,本發(fā)明提供的基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng),包括:客戶端、實(shí)時(shí)傳輸中間件、分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS),其中,

      HDFS包括:控制節(jié)點(diǎn)(namenode)和多個(gè)數(shù)據(jù)節(jié)點(diǎn)(datanode);

      控制節(jié)點(diǎn),用于在多個(gè)數(shù)據(jù)節(jié)點(diǎn)上啟動(dòng)多線程,實(shí)時(shí)的創(chuàng)建需要入庫的多個(gè)數(shù)據(jù)分別對(duì)應(yīng)的索引,并將多個(gè)索引按照創(chuàng)建時(shí)間保存在多個(gè)索引文件中;

      客戶端,用于通過實(shí)時(shí)傳輸中間件向HDFS發(fā)送數(shù)據(jù)獲取get請(qǐng)求;

      實(shí)時(shí)傳輸中間件,用于將客戶端發(fā)送的數(shù)據(jù)獲取請(qǐng)求轉(zhuǎn)發(fā)給控制節(jié)點(diǎn);

      控制節(jié)點(diǎn),用于根據(jù)客戶端發(fā)送的數(shù)據(jù)獲取請(qǐng)求創(chuàng)建查詢?nèi)蝿?wù),查詢?nèi)蝿?wù)包括:目標(biāo)數(shù)據(jù)所滿足的查詢條件,查詢條件包括:查詢時(shí)間條件;根據(jù)查詢條件中的查詢時(shí)間條件和多個(gè)索引文件進(jìn)行匹配,篩選出滿足查詢時(shí)間條件的索引條件;將查詢?nèi)蝿?wù)分發(fā)到多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,根據(jù)篩選出的索引文件和查詢條件查詢多個(gè)數(shù)據(jù)節(jié)點(diǎn),從而得到滿足查詢條件的數(shù)據(jù)的位置;再次向多個(gè)數(shù)據(jù)節(jié)點(diǎn)分發(fā)查詢?nèi)蝿?wù),根據(jù)滿足查詢條件的數(shù)據(jù)的位置在多個(gè)數(shù)據(jù)節(jié)點(diǎn)上讀取數(shù)據(jù),當(dāng)多個(gè)數(shù)據(jù)節(jié)點(diǎn)中任何一個(gè)數(shù)據(jù)節(jié)點(diǎn)查詢成功時(shí),返回查詢結(jié)果;

      實(shí)時(shí)傳輸中間件,用于按照預(yù)置的輪詢周期輪詢查詢結(jié)果目錄,如果查詢結(jié)果目錄不為空,則讀取查詢結(jié)果目錄中的查詢結(jié)果文件并返回給客戶端;

      客戶端,用于通過實(shí)時(shí)傳輸中間件實(shí)時(shí)的獲取到查詢結(jié)果文件。

      本發(fā)明實(shí)施例中,基于Hadoop實(shí)現(xiàn)HDFS,HDFS有高容錯(cuò)性的特點(diǎn),HDFS可以提供高吞吐量(high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序,HDFS放寬了POSIX的要求,可以以流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。

      其中,實(shí)時(shí)傳輸中間件設(shè)置在客戶端和HDFS之間,客戶端和HDFS之間的交互通過實(shí)時(shí)傳輸中間件來完成,例如查詢請(qǐng)求的轉(zhuǎn)發(fā)和查詢結(jié)果的轉(zhuǎn)發(fā)等。在本發(fā)明的一些實(shí)施例中,實(shí)時(shí)傳輸中間件,具體為:使用jetty作為網(wǎng)絡(luò)(web)容器。jetty是一個(gè)開源的servlet容器作為web容器,它為基于Java的web容器,例如JSP和servlet提供運(yùn)行環(huán)境,servlet(server applet),全稱Java Servlet,用Java編寫的服務(wù)器端程序,其主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。

      在本發(fā)明實(shí)施例中,HDFS內(nèi)包括有控制節(jié)點(diǎn)和多個(gè)數(shù)據(jù)節(jié)點(diǎn),數(shù)據(jù)節(jié)點(diǎn)是數(shù)據(jù)存儲(chǔ)單元,底層接口傳輸過來的需要可以存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)上,當(dāng)客戶端需要從HDFS讀取數(shù)據(jù)時(shí),可以從HDFS內(nèi)的數(shù)據(jù)節(jié)點(diǎn)上讀取到。本發(fā)明實(shí)施例中的控制節(jié)點(diǎn)可以分為主控制節(jié)點(diǎn)和備控制節(jié)點(diǎn),從而通過主備模式保證HDFS能夠及時(shí)響應(yīng)客戶端的請(qǐng)求。本發(fā)明實(shí)施例中,HDFS內(nèi)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)執(zhí)行查詢?nèi)蝿?wù)是獨(dú)立的,各個(gè)數(shù)據(jù)節(jié)點(diǎn)查詢反饋也是獨(dú)立實(shí)現(xiàn),只要有任何數(shù)據(jù)節(jié)點(diǎn)查詢完成,都可以通過實(shí)時(shí)傳輸中間件向客戶端反饋查詢結(jié)果,不需要所有數(shù)據(jù)節(jié)點(diǎn)查詢完畢后再統(tǒng)一反饋查詢結(jié)果,因此具有很高的數(shù)據(jù)查詢效率。

      本發(fā)明實(shí)施例提供的基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)中,可以實(shí)現(xiàn)對(duì)大數(shù)據(jù)實(shí)時(shí)處理,在大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)中可以實(shí)現(xiàn)數(shù)據(jù)的入庫,查詢,傳輸都是并發(fā)的,且是實(shí)時(shí)的。本發(fā)明實(shí)施例中在創(chuàng)建查詢?nèi)蝿?wù)的同時(shí),進(jìn)行過濾索引,過濾索引的同時(shí)可以將過濾完的索引文件分發(fā)到datanode上面,同時(shí)datanode完成本地文件的查詢,并向客戶端返回查詢結(jié)果。并且本發(fā)明實(shí)施例中任何datanode的查詢完成,都可以通過實(shí)時(shí)傳輸中間件的周期輪詢機(jī)制快速的向客戶端返回查詢結(jié)果。本發(fā)明實(shí)施例中,在HDFS內(nèi)的數(shù)據(jù)查詢處理過程都是并發(fā)執(zhí)行的,最大限度的利用了計(jì)算機(jī)的硬件設(shè)備,使查詢達(dá)到了實(shí)時(shí)完成,極大地提高了查詢的效率,用戶執(zhí)行查詢操作時(shí)便能獲得查詢結(jié)果,提高數(shù)據(jù)查詢的效率,快速響應(yīng)客戶端的查詢請(qǐng)求。

      在本發(fā)明的一些實(shí)施例中,控制節(jié)點(diǎn),具體用于按照B+樹的結(jié)構(gòu)實(shí)時(shí)的創(chuàng)建需要入庫的多個(gè)數(shù)據(jù)分別對(duì)應(yīng)的索引;以及,

      控制節(jié)點(diǎn),具體用于根據(jù)篩選出的索引文件和查詢條件通過B+樹查詢多個(gè)數(shù)據(jù)節(jié)點(diǎn),從而得到滿足查詢條件的數(shù)據(jù)的位置。

      其中,本發(fā)明實(shí)施例中基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)可以實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)入庫。以現(xiàn)有的HDFS為基礎(chǔ),在每臺(tái)datanode上啟動(dòng)多線程創(chuàng)建索引,并行創(chuàng)建索引文件。對(duì)一些重要字段建立索引,以B+樹的結(jié)構(gòu)生成,每一條新的記錄只需要插入到B+樹中。B+樹的插入僅在葉結(jié)點(diǎn)上進(jìn)行。每插入一個(gè)(關(guān)鍵碼-指針)索引項(xiàng)后都要判斷結(jié)點(diǎn)中的子樹棵數(shù)是否超出范圍。當(dāng)插入后結(jié)點(diǎn)中的子樹棵數(shù)大于m(B+樹的階數(shù))時(shí),需要將葉結(jié)點(diǎn)分裂為兩個(gè)結(jié)點(diǎn)。它們的雙親結(jié)點(diǎn)中應(yīng)同時(shí)包含這兩個(gè)結(jié)點(diǎn)的最大關(guān)鍵碼和結(jié)點(diǎn)地址。此后,問題歸于在非葉結(jié)點(diǎn)中的插入了。在非葉結(jié)點(diǎn)中關(guān)鍵碼的插入與葉結(jié)點(diǎn)的插入類似,非葉結(jié)點(diǎn)中的子樹棵數(shù)的上限為m,超出這個(gè)范圍也要進(jìn)行結(jié)點(diǎn)分裂。在做根結(jié)點(diǎn)分裂時(shí),因?yàn)闆]有雙親結(jié)點(diǎn),就必須創(chuàng)建新的雙親結(jié)點(diǎn),作為樹的新根。

      在本發(fā)明的一些實(shí)施例中,客戶端,還用于繼續(xù)向HDFS發(fā)送數(shù)據(jù)獲取繼續(xù)請(qǐng)求;

      HDFS,還用于通過控制節(jié)點(diǎn)響應(yīng)據(jù)獲取繼續(xù)請(qǐng)求,從多個(gè)數(shù)據(jù)節(jié)點(diǎn)中啟動(dòng)多線程獲取數(shù)據(jù)獲取繼續(xù)請(qǐng)求對(duì)應(yīng)的查詢結(jié)果;

      實(shí)時(shí)傳輸中間件,還用于按照預(yù)置的輪詢周期讀取到數(shù)據(jù)獲取繼續(xù)請(qǐng)求對(duì)應(yīng)的查詢結(jié)果,并返回給客戶端。

      本發(fā)明實(shí)施例中,實(shí)時(shí)傳輸中間件可以使用jetty作為web容器,在HDFS上做數(shù)據(jù)查詢的同時(shí),jetty輪循查詢結(jié)果目錄,如果不為空,則讀取查詢結(jié)果文件并返回給客戶端。客戶端繼續(xù)向HDFS端發(fā)送數(shù)據(jù)獲取繼續(xù)(continue)請(qǐng)求,控制節(jié)點(diǎn)啟動(dòng)多線程讀取查詢結(jié)果,通過jetty將讀取到的查詢結(jié)果返回給客戶端,如果返回的讀取數(shù)據(jù)為空,流程結(jié)束,如果不為空,客戶端繼續(xù)發(fā)送continue請(qǐng)求。查詢過程中,任何datanode查詢成功,即向客戶端返回?cái)?shù)據(jù),不需要所有datanode查詢完成。

      如圖2所示,為發(fā)明實(shí)施例中jetty的查詢流程圖,使用jetty作為web容器,首先客戶端向HDFS端發(fā)送get請(qǐng)求,控制節(jié)點(diǎn)端解析json串,json是一種輕量級(jí)的數(shù)據(jù)交換格式,根據(jù)json串中的查詢條件實(shí)例化job對(duì)象,提交job進(jìn)行分布式查詢,最后返回結(jié)果。在HDFS上做查詢的同時(shí),jetty輪循查詢結(jié)果目錄,如果不為空,則讀取文件并返回給客戶端,客戶端繼續(xù)向HDFS端發(fā)送continue請(qǐng)求,控制節(jié)點(diǎn)端啟動(dòng)多線程讀取查詢結(jié)果,將讀取數(shù)據(jù)返回給客戶端。如果查詢結(jié)果為空并且HDFS上的查詢已經(jīng)結(jié)束,則返回空,流程結(jié)束。在其中任何一個(gè)步驟,若產(chǎn)生失敗則返回,例如異常、請(qǐng)求錯(cuò)誤、索引文件夾不存在等情況。

      在本發(fā)明的一些實(shí)施例中,客戶端,還用于實(shí)時(shí)傳輸中間件發(fā)送結(jié)束請(qǐng)求;

      實(shí)時(shí)傳輸中間件,還用于接收到客戶端發(fā)送的結(jié)束請(qǐng)求之后,停止輪詢查詢結(jié)果目錄。

      其中,若客戶端向?qū)崟r(shí)傳輸中間件發(fā)送結(jié)束請(qǐng)求,則實(shí)時(shí)傳輸中間件不再向客戶端返回查詢結(jié)果,從而實(shí)現(xiàn)對(duì)客戶端的及時(shí)響應(yīng),減少對(duì)傳輸資源的占用,提高資源使用效率。

      在本發(fā)明的一些實(shí)施例中,控制節(jié)點(diǎn),具體用于得到滿足查詢條件的數(shù)據(jù)的位置之后,根據(jù)滿足查詢條件的數(shù)據(jù)的位置確定目標(biāo)數(shù)據(jù)所在數(shù)據(jù)節(jié)點(diǎn)的互聯(lián)網(wǎng)協(xié)議IP地址和偏移量,根據(jù)IP找到存儲(chǔ)目標(biāo)數(shù)據(jù)的數(shù)據(jù)節(jié)點(diǎn),再根據(jù)偏移量從存儲(chǔ)目標(biāo)數(shù)據(jù)的數(shù)據(jù)節(jié)點(diǎn)中查找到目標(biāo)數(shù)據(jù)。

      本發(fā)明實(shí)施例中基于Hadoop的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)可以實(shí)現(xiàn)實(shí)時(shí)查詢:使用分布式計(jì)算系統(tǒng),在控制節(jié)點(diǎn)端創(chuàng)建并提交查詢?nèi)蝿?wù)(job)進(jìn)行查詢,查詢分為如下過程:首先在控制節(jié)點(diǎn)上進(jìn)行索引過濾,由于索引文件的名稱是按照時(shí)間創(chuàng)建的,根據(jù)查詢條件中的查詢時(shí)間條件和索引文件的名稱進(jìn)行匹配,篩選滿足條件的索引文件。將查詢?nèi)蝿?wù)分發(fā)到每臺(tái)datanode上,根據(jù)篩選出的索引文件和查詢條件通過B+樹查詢,得到滿足條件的數(shù)據(jù)的位置,再次進(jìn)行任務(wù)的分發(fā),根據(jù)上一步得到的數(shù)據(jù)的位置在每臺(tái)機(jī)器上讀取數(shù)據(jù),并返回查詢結(jié)果。高效B+結(jié)構(gòu)和查詢的并行執(zhí)行,使查詢達(dá)到了實(shí)時(shí)完成。其中,數(shù)據(jù)的位置記錄了存儲(chǔ)數(shù)據(jù)所在機(jī)器(datanode)的IP地址和偏移量,根據(jù)IP地址找到機(jī)器,再根據(jù)偏移量就能找到對(duì)應(yīng)的數(shù)據(jù)。

      在本發(fā)明的一些實(shí)施例中,查詢時(shí)間條件,包括:查詢開始時(shí)間和查詢結(jié)束時(shí)間,其中,查詢條件中必須有查詢時(shí)間條件,即可以獲取客戶端設(shè)置的查詢開始時(shí)間和查詢結(jié)束時(shí)間,從而可以按照客戶端的數(shù)據(jù)獲取請(qǐng)求來執(zhí)行查詢?nèi)蝿?wù),按照該查詢開始時(shí)間啟動(dòng)查詢?nèi)蝿?wù),按照該查詢結(jié)束時(shí)間結(jié)束查詢?nèi)蝿?wù)。

      本發(fā)明實(shí)施例中所有處理都是并發(fā)執(zhí)行的,最大限度的利用了計(jì)算機(jī)的硬件設(shè)備,極大地提高了處理效率。使用戶執(zhí)行查詢操作時(shí)便能獲得查詢結(jié)果。本發(fā)明包括數(shù)據(jù)的實(shí)時(shí)入庫,實(shí)時(shí)查詢,實(shí)時(shí)結(jié)果傳輸,數(shù)據(jù)的入庫,查詢,傳輸都是并發(fā)的、實(shí)時(shí)的。本發(fā)明實(shí)施例提供的大數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)中,數(shù)據(jù)的入庫,查詢,傳輸都是并發(fā)的,實(shí)時(shí)的。在創(chuàng)建任務(wù)的同時(shí),進(jìn)行過濾索引,過濾索引的同時(shí),將過濾完的索引文件分發(fā)到datanode上面,同時(shí)datanode完成本地文件的查詢,并向客戶端返回?cái)?shù)據(jù)。任何datanode的查詢完成,即向用戶返回查詢結(jié)果。本發(fā)明方法處理過程都是并發(fā)執(zhí)行的,最大限度的利用了計(jì)算機(jī)的硬件設(shè)備,高效B+結(jié)構(gòu)和查詢的并行執(zhí)行,使查詢達(dá)到了實(shí)時(shí)完成,極大地提高了查詢的效率,用戶執(zhí)行查詢操作時(shí)便能獲得查詢結(jié)果。

      另外需說明的是,以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。另外,本發(fā)明提供的裝置實(shí)施例附圖中,模塊之間的連接關(guān)系表示它們之間具有通信連接,具體可以實(shí)現(xiàn)為一條或多條通信總線或信號(hào)線。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。

      通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過專用硬件包括專用集成電路、專用CPU、專用存儲(chǔ)器、專用元器件等來實(shí)現(xiàn)。一般情況下,凡由計(jì)算機(jī)程序完成的功能都可以很容易地用相應(yīng)的硬件來實(shí)現(xiàn),而且,用來實(shí)現(xiàn)同一功能的具體硬件結(jié)構(gòu)也可以是多種多樣的,例如模擬電路、數(shù)字電路或?qū)S秒娐返?。但是,?duì)本發(fā)明而言更多情況下軟件程序?qū)崿F(xiàn)是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤、U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。

      綜上所述,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照上述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)上述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1