欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)并行處理方法、裝置及系統(tǒng)的制作方法

文檔序號(hào):6334110閱讀:505來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):數(shù)據(jù)并行處理方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)處理技術(shù),具體涉及一種數(shù)據(jù)并行處理方法、裝置及系統(tǒng)。
背景技術(shù)
Hadoop是基于shared-nothing架構(gòu)的海量數(shù)據(jù)存儲(chǔ)和計(jì)算的分布式系統(tǒng),它由 若干個(gè)成員組成,主要包括HDFS (Hadoop Distributed File System,分布式文件系統(tǒng))、 MapReduce (并行計(jì)算框架),HBase (Google BigTable的開(kāi)源實(shí)現(xiàn))等。其中,MapReduce作 為一套開(kāi)放式的并行計(jì)算框架能夠與目前流行的各種分布式產(chǎn)品結(jié)合實(shí)現(xiàn)靈活的并行計(jì) 算和分布式計(jì)算功能,可以將HDFS、HBase、Cassandra(—個(gè)混合型的非關(guān)系的數(shù)據(jù)庫(kù))等 平臺(tái)的數(shù)據(jù)作為MapReduce的輸入源進(jìn)行并行加工處理,并將處理后的數(shù)據(jù)輸出到HDFS、 HBase, Cassandra 等輸出源中。MapReduce的計(jì)算過(guò)程簡(jiǎn)而言之,就是將大數(shù)據(jù)集分解為成百上千的小數(shù)據(jù)集,每 個(gè)或若干個(gè)數(shù)據(jù)集分別由集群中的一個(gè)節(jié)點(diǎn)(通常是一臺(tái)普通的計(jì)算機(jī))進(jìn)行處理并生成 中間結(jié)果,然后這些中間結(jié)果又由大量的節(jié)點(diǎn)進(jìn)行合并,形成最終結(jié)果。MapReduce計(jì)算模型的原理是利用一個(gè)輸入key/value對(duì)來(lái)產(chǎn)生一個(gè)或一批輸 出的key/value對(duì),其核心是利用兩個(gè)函數(shù)即Map和Reduce來(lái)表達(dá)這個(gè)計(jì)算,而函數(shù)Map 和Reduce由用戶(hù)來(lái)實(shí)現(xiàn)。在MapReduce框架中,每一次計(jì)算請(qǐng)求被稱(chēng)為作業(yè)。在分布式計(jì)算MapReduce框 架中,分兩步完成這個(gè)作業(yè)。首先是將該作業(yè)拆分成若干個(gè)Map任務(wù),分配到不同的機(jī)器上 去執(zhí)行,每一個(gè)Map任務(wù)將輸入文件的一部分作為自己的輸入,經(jīng)過(guò)一些計(jì)算,生成某種格 式的中間文件,其格式與最終所需的文件格式完全一致,但是僅僅包含一部分?jǐn)?shù)據(jù)。等到所 有Map任務(wù)完成后,進(jìn)入下一個(gè)步驟,用以合并這些中間文件獲得最后的輸出文件。此時(shí), 系統(tǒng)會(huì)生成若干個(gè)Reduce任務(wù),同樣也是分配到不同的機(jī)器去執(zhí)行,它的目標(biāo)就是將若干 個(gè)Map任務(wù)生成的中間文件為匯總到最后的輸出文件中去。經(jīng)過(guò)如上步驟,作業(yè)完成,所需 的目標(biāo)文件生成。整個(gè)算法的關(guān)鍵,就在于增加了一個(gè)中間文件生成的流程,大大提高了靈 活性,使其分布式擴(kuò)展性得到了保證。目前,要實(shí)現(xiàn)數(shù)據(jù)的分布式加工處理,由于采集系統(tǒng)采集文件存儲(chǔ)在本地,無(wú)法直 接通過(guò)并行計(jì)算框架MapReduce進(jìn)行處理,需要先將文件從采集服務(wù)器拷貝到HDFS上,然 后再通過(guò)MapReduce進(jìn)行數(shù)據(jù)加工處理。這種處理方式至少存在以下缺點(diǎn)1.需要將文件從本地文件系統(tǒng)拷貝到分布式文件系統(tǒng)中;2.需要在分布式文件系統(tǒng)和本地文件系統(tǒng)中保留兩份相同的數(shù)據(jù),增加了不必要 的存儲(chǔ)空間;3.對(duì)于數(shù)據(jù)一致性要求高的系統(tǒng),需要確定拷貝過(guò)程中沒(méi)有丟失數(shù)據(jù)和重復(fù)數(shù) 據(jù),增加了數(shù)據(jù)一致性檢查的難度;4.由于處理大量小文件的時(shí)候,需要為每個(gè)小文件啟動(dòng)一個(gè)任務(wù)來(lái)進(jìn)行處理,增 加了任務(wù)多次啟動(dòng)和停止的額外開(kāi)銷(xiāo),處理效率非常低。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例針對(duì)上述現(xiàn)有技術(shù)存在的缺點(diǎn),提供一種數(shù)據(jù)并行處理方法、裝置 及系統(tǒng),以簡(jiǎn)化處理流程,節(jié)省存儲(chǔ)空間,并提高數(shù)據(jù)處理效率及數(shù)據(jù)處理的可靠性。為此,本發(fā)明實(shí)施例提供如下技術(shù)方案一種數(shù)據(jù)并行處理方法,包括實(shí)時(shí)檢測(cè)數(shù)據(jù)采集服務(wù)器中需要處理的數(shù)據(jù);對(duì)檢測(cè)到的數(shù)據(jù)進(jìn)行分區(qū)和/或聚合處理,使其形成大小為預(yù)定值的數(shù)據(jù)分區(qū);建立與各數(shù)據(jù)分區(qū)對(duì)應(yīng)的描述信息,并將所述描述信息依次存入數(shù)據(jù)分區(qū)隊(duì)列 中;收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Map任務(wù)的請(qǐng)求后,從所述數(shù)據(jù)分區(qū)隊(duì)列中讀取一 個(gè)描述信息,并根據(jù)所述描述信息獲取對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù);將獲取的數(shù)據(jù)傳送到Map任務(wù)的輸入源。一種數(shù)據(jù)并行處理裝置,包括檢測(cè)單元,用于實(shí)時(shí)檢測(cè)數(shù)據(jù)采集服務(wù)器中需要處理的數(shù)據(jù);數(shù)據(jù)分區(qū)生成單元,用于對(duì)所述檢測(cè)單元檢測(cè)到的數(shù)據(jù)進(jìn)行分區(qū)和/或聚合處 理,使其形成大小為預(yù)定值的數(shù)據(jù)分區(qū);描述信息建立單元,用于建立與各數(shù)據(jù)分區(qū)對(duì)應(yīng)的描述信息,并將所述描述信息 依次存入數(shù)據(jù)分區(qū)隊(duì)列中;請(qǐng)求接收單元,用于接收Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Map任務(wù)的請(qǐng)求;數(shù)據(jù)流處理器,用于在所述請(qǐng)求接收單元收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Map任務(wù) 的請(qǐng)求后,從所述數(shù)據(jù)分區(qū)隊(duì)列中讀取一個(gè)描述信息,并根據(jù)所述描述信息獲取對(duì)應(yīng)的數(shù) 據(jù)分區(qū)中的數(shù)據(jù);數(shù)據(jù)傳送單元,用于將所述數(shù)據(jù)流處理器獲取的數(shù)據(jù)傳送到Map任務(wù)的輸入源。一種數(shù)據(jù)并行處理系統(tǒng),包括數(shù)據(jù)采集服務(wù)器、并行加載平臺(tái)和Hadoop系統(tǒng),所 述Hadoop系統(tǒng)包括處理節(jié)點(diǎn)和管理節(jié)點(diǎn),其中所述數(shù)據(jù)采集服務(wù)器,用于采集需要處理的數(shù)據(jù);所述并行加載平臺(tái),用于實(shí)時(shí)檢測(cè)數(shù)據(jù)采集服務(wù)器中需要處理的數(shù)據(jù);對(duì)檢測(cè)到 的數(shù)據(jù)進(jìn)行分區(qū)和/或聚合處理,使其形成大小為預(yù)定值的數(shù)據(jù)分區(qū);建立與各數(shù)據(jù)分區(qū) 對(duì)應(yīng)的描述信息,并將所述描述信息依次存入數(shù)據(jù)分區(qū)隊(duì)列中;收到Hadoop系統(tǒng)中處理節(jié) 點(diǎn)的Map任務(wù)的請(qǐng)求后,從所述數(shù)據(jù)分區(qū)隊(duì)列中讀取一個(gè)描述信息,并根據(jù)所述描述信息 獲取對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù);將獲取的數(shù)據(jù)傳送到Map任務(wù)的輸入源。所述Hadoop系統(tǒng),用于并行處理各處理節(jié)點(diǎn)的Map任務(wù)的輸入源收到的數(shù)據(jù),并 將處理后的數(shù)據(jù)輸出。本發(fā)明實(shí)施例數(shù)據(jù)并行處理方法、裝置及系統(tǒng),應(yīng)用于Hadoop系統(tǒng)的并行計(jì)算框 架MapReduce,將數(shù)據(jù)從采集服務(wù)器上直接傳送到MapReduce節(jié)點(diǎn)上進(jìn)行處理,無(wú)需將文件 從采集服務(wù)器拷貝到HDFS上,從而節(jié)省了存儲(chǔ)空間,簡(jiǎn)化了處理流程,提高了數(shù)據(jù)處理效 率及數(shù)據(jù)處理的可靠性。進(jìn)一步地,可以將MapReduce的輸入擴(kuò)展到應(yīng)用程序的輸出上,在不需將應(yīng)用程
6序的輸出首先輸出到文件系統(tǒng)的情況下,就可以并行處理應(yīng)用程序的輸出;并且可以將 MapReduce的輸出擴(kuò)展到應(yīng)用程序的輸入上,使MapReduce任務(wù)直接將處理后的數(shù)據(jù)輸出 到應(yīng)用程序。


為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,還可以根據(jù)這些附圖獲得其他 的附圖。圖1是現(xiàn)有技術(shù)中MapReduce的一個(gè)典型處理流程示意圖;圖2是本發(fā)明實(shí)施例數(shù)據(jù)并行處理方法的流程圖;圖3是本發(fā)明實(shí)施例數(shù)據(jù)并行處理裝置的一種結(jié)構(gòu)示意圖;圖4是本發(fā)明實(shí)施例數(shù)據(jù)并行處理系統(tǒng)的組網(wǎng)示意圖。
具體實(shí)施例方式為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和實(shí)施方式對(duì)本 發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。本發(fā)明實(shí)施例數(shù)據(jù)并行處理方法、裝置及系統(tǒng)應(yīng)用于Hadoop的并行計(jì)算框架 MapReduce,為了更好地理解本發(fā)明方案,首先對(duì)現(xiàn)有技術(shù)中MapReduce的處理流程做簡(jiǎn)單 說(shuō)明。在后面實(shí)施例的描述中,將保存在采集服務(wù)器端的文件稱(chēng)作本地文件。如圖1所示,是現(xiàn)有技術(shù)中MapReduce的一個(gè)典型處理流程,其中Map任務(wù)通過(guò)相應(yīng)的輸入源類(lèi)讀取需要處理的數(shù)據(jù),經(jīng)過(guò)對(duì)數(shù)據(jù)進(jìn)行收斂/聚合 處理后,由Reduce任務(wù)通過(guò)相應(yīng)的輸出源類(lèi)輸出。Hadoop可以處理多種不同的數(shù)據(jù)格式,存儲(chǔ)在分布式文件系統(tǒng)上的文件到數(shù)據(jù) 庫(kù),但其無(wú)法直接提供對(duì)采集服務(wù)器端的本地文件系統(tǒng)(如日志式文件系統(tǒng)ext3 (Third extended file system))的文件進(jìn)行處理,也無(wú)法將處理后的數(shù)據(jù)直接輸出到本地文件系 統(tǒng)中。為此,本發(fā)明實(shí)施例數(shù)據(jù)并行處理方法、裝置及系統(tǒng),將數(shù)據(jù)從采集服務(wù)器上直接 傳送到MapReduce節(jié)點(diǎn)上進(jìn)行處理,避免了文件拷貝的操作,從而節(jié)省存儲(chǔ)空間,簡(jiǎn)化處理 流程,提高數(shù)據(jù)處理效率及數(shù)據(jù)處理的可靠性。如圖2所示,是本發(fā)明實(shí)施例數(shù)據(jù)并行處理方法的流程圖,包括以下基本步驟步驟201,實(shí)時(shí)檢測(cè)數(shù)據(jù)采集服務(wù)器中需要處理的數(shù)據(jù)。所述需要處理的數(shù)據(jù)可以是以下任意一種或多種磁盤(pán)上存儲(chǔ)的文件中的數(shù)據(jù), 實(shí)時(shí)數(shù)據(jù)、應(yīng)用程序輸出的數(shù)據(jù)等。對(duì)于磁盤(pán)上存儲(chǔ)的文件中的數(shù)據(jù),可以周期性地對(duì)其進(jìn)行檢測(cè),比如周期性地掃 描磁盤(pán)上的文件;對(duì)于實(shí)時(shí)數(shù)據(jù)和應(yīng)用程序輸出的數(shù)據(jù),可以通過(guò)對(duì)其輸出接口實(shí)時(shí)監(jiān)測(cè) 獲得,對(duì)此將在后面詳細(xì)說(shuō)明。步驟202,對(duì)檢測(cè)到的數(shù)據(jù)進(jìn)行分區(qū)和/或聚合處理,使其形成大小為預(yù)定值的數(shù)據(jù)分區(qū)。所述分區(qū)是指對(duì)檢測(cè)到的較大文件中的數(shù)據(jù)進(jìn)行拆分,相反,所述聚合是指對(duì)檢 測(cè)到小文件中的數(shù)據(jù)塊進(jìn)行合并。比如,對(duì)檢測(cè)到的數(shù)據(jù)進(jìn)行分區(qū)和/或聚合處理后,使其形成一個(gè)個(gè)穩(wěn)定大小的 數(shù)據(jù)分區(qū),比如64Mbit的數(shù)據(jù)分區(qū),這樣在后續(xù)將其傳送到MapReduce節(jié)點(diǎn)上處理時(shí),可以 使每個(gè)Map任務(wù)一次處理一個(gè)所述數(shù)據(jù)分區(qū)中的數(shù)據(jù),從而提高Hadoop對(duì)小文件的處理效率。步驟203,建立與各數(shù)據(jù)分區(qū)對(duì)應(yīng)的描述信息,并將所述描述信息依次存入數(shù)據(jù)分 區(qū)隊(duì)列中。對(duì)于形成的每個(gè)數(shù)據(jù)分區(qū),可以建立與其對(duì)應(yīng)的描述信息,以便在需要將數(shù)據(jù)傳 送給MapReduce節(jié)點(diǎn)時(shí),根據(jù)該描述信息獲得相應(yīng)分區(qū)中的數(shù)據(jù)。數(shù)據(jù)分區(qū)的描述信息可以包括文件名、偏移量、數(shù)據(jù)塊大小等信息,比如可以采 用以下形式的描述信息List of {struct FileSplit {String fiIeName ;//文件名long offset ; // 偏移量long size ; // 大小}} 步驟204,收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Map任務(wù)的請(qǐng)求后,從所述數(shù)據(jù)分區(qū)隊(duì)列 中讀取一個(gè)描述信息,并根據(jù)所述描述信息獲取對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù)。在Hadoop系統(tǒng)中,管理節(jié)點(diǎn)可以獲知采集服務(wù)器集群中需要處理的數(shù)據(jù)量,并根 據(jù)該數(shù)據(jù)量為各MapReduce節(jié)點(diǎn)分配任務(wù),以使不同的MapReduce節(jié)點(diǎn)對(duì)采集服務(wù)器集群 中需要處理的數(shù)據(jù)進(jìn)行并行處理。每個(gè)MapReduce節(jié)點(diǎn)啟動(dòng)后,Map任務(wù)通過(guò)輸入源請(qǐng)求數(shù)據(jù),Reduce任務(wù)通過(guò)輸出 源輸出處理后的數(shù)據(jù)。在本發(fā)明實(shí)施例的應(yīng)用系統(tǒng)與MapReduce節(jié)點(diǎn)建立連接后,會(huì)接收到Map任務(wù)發(fā) 送的請(qǐng)求信號(hào),此時(shí),可以根據(jù)所述數(shù)據(jù)分區(qū)隊(duì)列中的描述信息,獲得相對(duì)應(yīng)的數(shù)據(jù)分區(qū)中 的數(shù)據(jù)。需要說(shuō)明的是,在從所述數(shù)據(jù)分區(qū)隊(duì)列中讀取一個(gè)描述信息時(shí),可以依次讀取,當(dāng) 然也可以任意選擇其中之一,但讀取的描述信息應(yīng)該是還未處理的數(shù)據(jù)分區(qū)對(duì)應(yīng)的描述信 息。為此,可以通過(guò)設(shè)置一個(gè)讀取標(biāo)記來(lái)實(shí)現(xiàn)。如果一個(gè)描述信息已被讀取,則將其標(biāo)記為 已讀取,則在下一次接收到Map任務(wù)的請(qǐng)求信號(hào)后,從所述數(shù)據(jù)分區(qū)隊(duì)列中未被標(biāo)記的描 述信息中進(jìn)行選擇。步驟205,將獲取的數(shù)據(jù)傳送到Map任務(wù)的輸入源。在本發(fā)明實(shí)施例中,為了防止數(shù)據(jù)被重復(fù)處理,在數(shù)據(jù)處理完成后,可以將已經(jīng)處 理完的文件(該文件的所有數(shù)據(jù)分區(qū)都已被處理完成)刪除和/或備份起來(lái)。具體地,如 果所述數(shù)據(jù)分區(qū)是經(jīng)過(guò)分區(qū)處理形成的,則在該數(shù)據(jù)分區(qū)以及與該數(shù)據(jù)分區(qū)同屬于一個(gè)文
8件的其他數(shù)據(jù)分區(qū)都已被讀取后,才可刪除和/或備份所述文件;如果所述數(shù)據(jù)分區(qū)是經(jīng) 過(guò)聚合處理形成的,則在該數(shù)據(jù)分區(qū)被讀取后,即可刪除和/或備份該數(shù)據(jù)分區(qū)中的數(shù)據(jù) 所屬的文件。本發(fā)明實(shí)施例數(shù)據(jù)并行處理方法,將數(shù)據(jù)從采集服務(wù)器上直接傳送到MapReduce 節(jié)點(diǎn)上進(jìn)行處理,避免了文件拷貝的操作,從而節(jié)省了存儲(chǔ)空間,簡(jiǎn)化了處理流程,提高了 數(shù)據(jù)處理效率及數(shù)據(jù)處理的可靠性。而且,將MapReduce的輸入擴(kuò)展到了應(yīng)用程序的輸出 上,在不需將應(yīng)用程序的輸出首先輸出到文件系統(tǒng)的情況下,就可以并行處理應(yīng)用程序的 輸出。在本發(fā)明實(shí)施例中,還可進(jìn)一步包括以下步驟收到Reduce任務(wù)的請(qǐng)求信號(hào)后,獲取Reduce任務(wù)的輸出源輸出的數(shù)據(jù);
將輸出的數(shù)據(jù)寫(xiě)到文件或者應(yīng)用程序中。也就是說(shuō),本發(fā)明實(shí)施例數(shù)據(jù)并行處理方法,不僅可以將MapReduce的輸入擴(kuò)展 到應(yīng)用程序中,而且可以將MapReduce并行計(jì)算后的輸出直接輸出到應(yīng)用程序中,這對(duì)于 某些查詢(xún)應(yīng)用來(lái)說(shuō)非常有利,提高了處理的響應(yīng)速度。為了配合實(shí)時(shí)數(shù)據(jù)和應(yīng)用程序加載服務(wù),實(shí)現(xiàn)本地實(shí)時(shí)數(shù)據(jù)和應(yīng)用程序數(shù)據(jù)的并 行計(jì)算功能,需要實(shí)現(xiàn)輸入輸出源。在本發(fā)明實(shí)施例中,所述輸入輸出源可以通過(guò)與實(shí)時(shí)數(shù) 據(jù)和應(yīng)用程序加載服務(wù)建立TCP連接,通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)的傳輸功能。對(duì)于輸入源,可以通過(guò)以下方式實(shí)現(xiàn)Hadoop系統(tǒng)中管理節(jié)點(diǎn)獲取數(shù)據(jù)流處理線程池中空閑的線程數(shù);根據(jù)所述空閑的線程數(shù)為一個(gè)或多個(gè)所述處理節(jié)點(diǎn)分配任務(wù),并指定該任務(wù)需要 偵聽(tīng)的IP地址和端口號(hào);Hadoop系統(tǒng)中處理節(jié)點(diǎn)根據(jù)所述IP地址和端口號(hào)獲取實(shí)時(shí)數(shù)據(jù)或者應(yīng)用程序輸 出的數(shù)據(jù)。具體的實(shí)現(xiàn)可以從Hadoop的輸入數(shù)據(jù)格式基類(lèi)繼承,并實(shí)現(xiàn)其中的虛方法。MapReduce提供的輸入格式基類(lèi)如下所示public abstract class InputFormat<K, V> {public abstractList<InputSplit>getSplits(JobContext context)throws IOException,InterruptedException ;public abstractRecordReader<K, V>createRecordReader(InputSplit split,TaskAttemptContextcontext) throws IOException,InterruptedException ;}該類(lèi)中提供了兩個(gè)函數(shù),可以在繼承類(lèi)中實(shí)現(xiàn),其中
第一個(gè)函數(shù)getSplits的實(shí)現(xiàn)邏輯為1)與實(shí)時(shí)數(shù)據(jù)和應(yīng)用數(shù)據(jù)加載服務(wù)建立連接;2)獲取數(shù)據(jù)流處理線程池中空閑置線程數(shù)N ;3)根據(jù)獲取的空閑線程數(shù),建立List<InputSplit>并插入N條記錄,每條 InputSplit中指定服務(wù)的偵聽(tīng)I(yíng)P和端口號(hào),用來(lái)在后續(xù)實(shí)現(xiàn)N個(gè)任務(wù)同時(shí)運(yùn)行,這樣可以 使得有N個(gè)任務(wù)同時(shí)從實(shí)時(shí)數(shù)據(jù)和應(yīng)用數(shù)據(jù)加載服務(wù)中獲取數(shù)據(jù)。第二個(gè)函數(shù)createRecordReader,用來(lái)創(chuàng)建一個(gè)記錄讀取器,該記錄讀取器的實(shí) 現(xiàn)邏輯為1)每個(gè)任務(wù)通過(guò)InputSplit中指定的信息,建立與實(shí)時(shí)數(shù)據(jù)和應(yīng)用數(shù)據(jù)加載服 務(wù)的連接;
法。


2)實(shí)時(shí)數(shù)據(jù)和應(yīng)用數(shù)據(jù)加載服務(wù)為每個(gè)連接分配一個(gè)線程;
3)分配的線程將數(shù)據(jù)傳輸?shù)饺蝿?wù)中,任務(wù)對(duì)收到的數(shù)據(jù)進(jìn)行處理。
對(duì)于輸出源,同樣可以從Hadoop的輸出數(shù)據(jù)格式基類(lèi)繼承,并實(shí)現(xiàn)其中的虛方
MapReduce提供的輸出格式基類(lèi)如下所示 public abstract class OutputFormat<K, V> { public abstract Recordffriter<K, V>
getRecordffriter(TaskAttemptContext context
)throws IOException, InterruptedException ; public abstract void checkOutputSpecs(JobContext context
)throws IOException,
InterruptedException ; public abstract
OutputCommitter getOutputCommitter(TaskAttemptContext context
)throws IOException,
InterruptedException ;
}
輸出源的實(shí)現(xiàn)需要繼承OutputFormat基類(lèi),實(shí)現(xiàn)其中的虛方法。其中 函數(shù)getRecordWriter用來(lái)創(chuàng)建一個(gè)寫(xiě)入器,寫(xiě)入數(shù)據(jù)到文件或者應(yīng)用程序中,
寫(xiě)入器的實(shí)現(xiàn)邏輯如下
1)連接到實(shí)時(shí)數(shù)據(jù)和應(yīng)用數(shù)據(jù)加載服務(wù);
2)通過(guò)網(wǎng)絡(luò)將要寫(xiě)入的輸入傳輸?shù)綄?shí)時(shí)數(shù)據(jù)和應(yīng)用數(shù)據(jù)加載服務(wù)中;
3)實(shí)時(shí)數(shù)據(jù)和應(yīng)用數(shù)據(jù)加載服務(wù)分配一個(gè)線程來(lái)接收數(shù)據(jù),并寫(xiě)到本地文件系統(tǒng)中。需要說(shuō)明的是,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部 分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取 存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如R0M/RAM、磁碟、光盤(pán)等。在具體應(yīng)用中,可以設(shè)置多個(gè)線程,通過(guò)調(diào)度不同的線程來(lái)完成對(duì)Map任務(wù)的請(qǐng) 求及Reduce任務(wù)的請(qǐng)求的處理等操作。
10
另外,在本發(fā)明實(shí)施例中,為了保證處理資源的平衡性,還可以根據(jù)整個(gè)服務(wù)的運(yùn) 行情況,進(jìn)行動(dòng)態(tài)資源控制。資源控制時(shí)需要考慮的因素可以是服務(wù)相關(guān)的信息,如線程 池?cái)?shù)量、隊(duì)列深度、處理延遲情況,也可以是全局信息,如CPU繁忙程度、磁盤(pán)IO情況等。比如,為了避免在服務(wù)中分配太多的線程,同時(shí)也會(huì)有足夠的線程來(lái)滿足需要的 并行服務(wù),可以根據(jù)隊(duì)列深度來(lái)對(duì)線程池的數(shù)據(jù)進(jìn)行調(diào)節(jié)。具體實(shí)現(xiàn)方式可以如下周期性獲取數(shù)據(jù)分區(qū)隊(duì)列的長(zhǎng)度;如果所述長(zhǎng)度達(dá)到或超過(guò)設(shè)定的第一閾值,則增加一個(gè)數(shù)據(jù)流處理線程,并暫緩 檢測(cè)需要處理的數(shù)據(jù);如果所述長(zhǎng)度達(dá)到或超過(guò)設(shè)定的第二閾值,則刪除增加的數(shù)據(jù)流處理線程,并恢 復(fù)檢測(cè)需要處理的數(shù)據(jù)。當(dāng)然,所述動(dòng)態(tài)資源控制并不僅限于上述具體方式,還可以有其他的控制方式,在 此不再一一舉例說(shuō)明。相應(yīng)地,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)并行處理裝置,如圖3所示,是該裝置的一 種結(jié)構(gòu)示意圖。在該實(shí)施例中,所述數(shù)據(jù)并行處理裝置包括檢測(cè)單元301,用于實(shí)時(shí)檢測(cè)數(shù)據(jù)采集服務(wù)器中需要處理的數(shù)據(jù);數(shù)據(jù)分區(qū)生成單元302,用于對(duì)所述檢測(cè)單元301檢測(cè)到的數(shù)據(jù)進(jìn)行分區(qū)和/或聚 合處理,使其形成大小為預(yù)定值的數(shù)據(jù)分區(qū);描述信息建立單元303,用于建立與各數(shù)據(jù)分區(qū)對(duì)應(yīng)的描述信息,并將所述描述信 息依次存入數(shù)據(jù)分區(qū)隊(duì)列中;請(qǐng)求接收單元304,用于接收Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Map任務(wù)的請(qǐng)求;數(shù)據(jù)流處理器305,用于在所述請(qǐng)求接收單元304收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的 Map任務(wù)的請(qǐng)求后,從所述數(shù)據(jù)分區(qū)隊(duì)列中讀取一個(gè)描述信息,并根據(jù)所述描述信息獲取對(duì) 應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù);數(shù)據(jù)傳送單元306,用于將所述數(shù)據(jù)流處理器獲取的數(shù)據(jù)傳送到Map任務(wù)的輸入 源。在本發(fā)明實(shí)施例中,所述需要處理的數(shù)據(jù)可以是以下任意一種或多種磁盤(pán)上存 儲(chǔ)的文件中的數(shù)據(jù),實(shí)時(shí)數(shù)據(jù)、應(yīng)用程序輸出的數(shù)據(jù)等。對(duì)于磁盤(pán)上存儲(chǔ)的文件中的數(shù)據(jù), 檢測(cè)單元301可以周期性地對(duì)其進(jìn)行檢測(cè),比如周期性地掃描磁盤(pán)上的文件;對(duì)于實(shí)時(shí)數(shù) 據(jù)和應(yīng)用程序輸出的數(shù)據(jù),檢測(cè)單元301可以通過(guò)對(duì)其輸出接口實(shí)時(shí)監(jiān)測(cè)獲得,對(duì)此前面 已有詳細(xì)說(shuō)明,在此不再贅述。在本發(fā)明實(shí)施例中,所述請(qǐng)求接收單元304,還可進(jìn)一步用于接收Hadoop系統(tǒng)中 處理節(jié)點(diǎn)的Reduce任務(wù)的請(qǐng)求;相應(yīng)地,所述數(shù)據(jù)流處理器305,還可進(jìn)一步用于在所述請(qǐng) 求接收單元304收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Reduce任務(wù)的請(qǐng)求后,獲取Reduce任務(wù)的 輸出源輸出的數(shù)據(jù),并將獲取的數(shù)據(jù)寫(xiě)到文件或者應(yīng)用程序中。本發(fā)明實(shí)施例數(shù)據(jù)并行處理裝置,可以將數(shù)據(jù)從采集服務(wù)器上直接傳送到 MapReduce節(jié)點(diǎn)上進(jìn)行處理,避免了文件拷貝的操作,從而節(jié)省了存儲(chǔ)空間,簡(jiǎn)化了處理流 程,提高了數(shù)據(jù)處理效率及數(shù)據(jù)處理的可靠性。而且,可以將MapReduce的輸入擴(kuò)展到了應(yīng) 用程序的輸出上,在不需將應(yīng)用程序的輸出首先輸出到文件系統(tǒng)的情況下,就可以并行處理應(yīng)用程序的輸出。另外,在本發(fā)明實(shí)施例中,所述裝置還可進(jìn)一步包括文件維護(hù)單元(未圖示),用 于針對(duì)經(jīng)過(guò)分區(qū)處理形成的數(shù)據(jù)分區(qū),在該數(shù)據(jù)分區(qū)以及與該數(shù)據(jù)分區(qū)同屬于一個(gè)文件的 其他數(shù)據(jù)分區(qū)都已被讀取后,刪除和/或備份所述文件;針對(duì)經(jīng)過(guò)聚合處理形成的,在該數(shù) 據(jù)分區(qū)被讀取后,刪除和/或備份該數(shù)據(jù)分區(qū)中的數(shù)據(jù)所屬的文件。這樣,可以防止數(shù)據(jù)被
重復(fù)處理。在具體實(shí)現(xiàn)中,所述數(shù)據(jù)流處理器305可以設(shè)置多個(gè)數(shù)據(jù)流處理線程,通過(guò)調(diào)度 不同的數(shù)據(jù)流處理線程來(lái)完成對(duì)Map任務(wù)的請(qǐng)求及Reduce任務(wù)的請(qǐng)求的處理等操作。另外,在本發(fā)明實(shí)施例中,為了保證處理資源的平衡性,還可以根據(jù)整個(gè)服務(wù)的運(yùn) 行情況,進(jìn)行動(dòng)態(tài)資源控制。資源控制時(shí)需要考慮的因素可以是服務(wù)相關(guān)的信息,如線程 池?cái)?shù)量、隊(duì)列深度、處理延遲情況,也可以是全局信息,如CPU繁忙程度、磁盤(pán)IO情況等。比如,本發(fā)明實(shí)施例數(shù)據(jù)并行處理裝置還可進(jìn)一步包括資源控制器(未圖示), 用于周期性獲取數(shù)據(jù)分區(qū)隊(duì)列的長(zhǎng)度;并在所述長(zhǎng)度達(dá)到或超過(guò)設(shè)定的第一閾值后,增加 一個(gè)數(shù)據(jù)流處理線程,并通知所述檢測(cè)單元暫緩檢測(cè)需要處理的數(shù)據(jù);在所述長(zhǎng)度達(dá)到或 超過(guò)設(shè)定的第二閾值后,刪除增加的數(shù)據(jù)流處理線程,并通知所述檢測(cè)單元恢復(fù)檢測(cè)需要 處理的數(shù)據(jù)。相應(yīng)地,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)并行處理系統(tǒng),如圖4所示,該系統(tǒng)基于 Hadoop的并行計(jì)算框架實(shí)現(xiàn)對(duì)數(shù)據(jù)的并行處理,主要包括數(shù)據(jù)采集服務(wù)器、并行加載平臺(tái)和Hadoop系統(tǒng),所述Hadoop系統(tǒng)包括處理節(jié)點(diǎn)和 管理節(jié)點(diǎn),其中所述數(shù)據(jù)采集服務(wù)器,用于采集需要處理的數(shù)據(jù);所述并行加載平臺(tái),用于實(shí)時(shí)檢測(cè)數(shù)據(jù)采集服務(wù)器中需要處理的數(shù)據(jù);對(duì)檢測(cè)到 的數(shù)據(jù)進(jìn)行分區(qū)和/或聚合處理,使其形成大小為預(yù)定值的數(shù)據(jù)分區(qū);建立與各數(shù)據(jù)分區(qū) 對(duì)應(yīng)的描述信息,并將所述描述信息依次存入數(shù)據(jù)分區(qū)隊(duì)列中;收到Hadoop系統(tǒng)中處理節(jié) 點(diǎn)的Map任務(wù)的請(qǐng)求后,從所述數(shù)據(jù)分區(qū)隊(duì)列中讀取一個(gè)描述信息,并根據(jù)所述描述信息 獲取對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù);將獲取的數(shù)據(jù)傳送到Map任務(wù)的輸入源。所述Hadoop系統(tǒng),用于并行處理各處理節(jié)點(diǎn)的Map任務(wù)的輸入源收到的數(shù)據(jù),并 將處理后的數(shù)據(jù)輸出。在本發(fā)明實(shí)施例中,所述并行加載平臺(tái),還可用于接收Hadoop系統(tǒng)中處理節(jié)點(diǎn)的 Reduce任務(wù)的請(qǐng)求,獲取Reduce任務(wù)的輸出源輸出的數(shù)據(jù),并將獲取的數(shù)據(jù)寫(xiě)到文件或者 應(yīng)用程序中。需要說(shuō)明的是,所述需要處理的數(shù)據(jù)可以包括以下任意一種或多種磁盤(pán)上存儲(chǔ) 的文件中的數(shù)據(jù),實(shí)時(shí)數(shù)據(jù)、應(yīng)用程序輸出的數(shù)據(jù);在實(shí)際應(yīng)用中,所述并行加載平臺(tái),可以通過(guò)分配一個(gè)或多個(gè)數(shù)據(jù)流處理線程處 理所述Map任務(wù)的請(qǐng)求和Reduce任務(wù)的請(qǐng)求;所述Hadoop系統(tǒng)中的管理節(jié)點(diǎn),除了具有與現(xiàn)有技術(shù)中相同的功能(比如為各處 理節(jié)點(diǎn)分配任務(wù))外,在本發(fā)明實(shí)施例中,還可以用于獲取數(shù)據(jù)流處理線程池中空閑的線 程數(shù);根據(jù)所述空閑的線程數(shù)為一個(gè)或多個(gè)所述處理節(jié)點(diǎn)分配任務(wù),并指定該任務(wù)需要偵 聽(tīng)的IP地址和端口號(hào);相應(yīng)地,所述Hadoop系統(tǒng)中處理節(jié)點(diǎn),用于根據(jù)所述IP地址和端口
12號(hào)獲取實(shí)時(shí)數(shù)據(jù)或者應(yīng)用程序輸出的數(shù)據(jù)。在實(shí)際應(yīng)用中,對(duì)于海量數(shù)據(jù)的處理,可以由多個(gè)數(shù)據(jù)采集服務(wù)器組成采集服務(wù) 器集群,每個(gè)數(shù)據(jù)采集服務(wù)器上部署一個(gè)對(duì)應(yīng)的并行加載平臺(tái),由各自的并行加載平臺(tái)實(shí) 現(xiàn)輸入服務(wù)和輸出服務(wù)。其中,輸入服務(wù)從采集服務(wù)器的文件系統(tǒng)或者應(yīng)用程序輸出讀取 數(shù)據(jù),進(jìn)行數(shù)據(jù)的重新分解和合并,變成適合MapReduce任務(wù)處理的數(shù)據(jù)單元,并將相應(yīng)的 數(shù)據(jù)單元傳輸給MapReduce任務(wù)進(jìn)行處理;輸出服務(wù)接收MapReduce任務(wù)處理后的結(jié)果,并 輸出到采集服務(wù)器的文件系統(tǒng)。應(yīng)用本發(fā)明實(shí)施例數(shù)據(jù)并行處理系統(tǒng),可以將需要處理的數(shù)據(jù)從采集服務(wù)器上直 接傳送到MapReduce節(jié)點(diǎn)上進(jìn)行處理,無(wú)需文件拷貝的操作,從而節(jié)省了存儲(chǔ)空間,簡(jiǎn)化了 處理流程,提高了數(shù)據(jù)處理效率及數(shù)據(jù)處理的可靠性。進(jìn)一步地,通過(guò)并行加載平臺(tái),將實(shí) 時(shí)數(shù)據(jù)和應(yīng)用程序數(shù)據(jù)的讀寫(xiě)能力擴(kuò)展到Hadoop的輸入源,減少了不必要的文件生成的 中間環(huán)節(jié),結(jié)合MapReduce并行計(jì)算框架,實(shí)現(xiàn)對(duì)實(shí)時(shí)數(shù)據(jù)和應(yīng)用程序數(shù)據(jù)的并行處理;同 時(shí),能夠?qū)apReduce并行計(jì)算后的數(shù)據(jù)直接輸出到應(yīng)用程序中,有效地提高了處理的響 應(yīng)速度。本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部 分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí) 施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例 的部分說(shuō)明即可。以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明 的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是 物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要 選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出 創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。以上對(duì)本發(fā)明實(shí)施例進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體實(shí)施方式
對(duì)本發(fā)明進(jìn)行 了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及設(shè)備;同時(shí),對(duì)于本領(lǐng)域的 一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所 述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
一種數(shù)據(jù)并行處理方法,其特征在于,包括實(shí)時(shí)檢測(cè)數(shù)據(jù)采集服務(wù)器中需要處理的數(shù)據(jù);對(duì)檢測(cè)到的數(shù)據(jù)進(jìn)行分區(qū)和/或聚合處理,使其形成大小為預(yù)定值的數(shù)據(jù)分區(qū);建立與各數(shù)據(jù)分區(qū)對(duì)應(yīng)的描述信息,并將所述描述信息依次存入數(shù)據(jù)分區(qū)隊(duì)列中;收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Map任務(wù)的請(qǐng)求后,從所述數(shù)據(jù)分區(qū)隊(duì)列中讀取一個(gè)描述信息,并根據(jù)所述描述信息獲取對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù);將獲取的數(shù)據(jù)傳送到Map任務(wù)的輸入源。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Reduce任務(wù)的請(qǐng)求后,獲取Reduce任務(wù)的輸出源輸出 的數(shù)據(jù);將輸出的數(shù)據(jù)寫(xiě)到文件或者應(yīng)用程序中。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述方法還包括如果所述數(shù)據(jù)分區(qū)是經(jīng)過(guò)分區(qū)處理形成的,則在該數(shù)據(jù)分區(qū)以及與該數(shù)據(jù)分區(qū)同屬于 一個(gè)文件的其他數(shù)據(jù)分區(qū)都已被讀取后,刪除和/或備份所述文件;如果所述數(shù)據(jù)分區(qū)是經(jīng)過(guò)聚合處理形成的,則在該數(shù)據(jù)分區(qū)被讀取后,刪除和/或備 份該數(shù)據(jù)分區(qū)中的數(shù)據(jù)所屬的文件。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括利用一個(gè)或多個(gè)數(shù)據(jù)流處理線程處理所述Map任務(wù)的請(qǐng)求信號(hào)和Reduce任務(wù)的請(qǐng)求 信號(hào)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括 周期性獲取數(shù)據(jù)分區(qū)隊(duì)列的長(zhǎng)度;如果所述長(zhǎng)度達(dá)到或超過(guò)設(shè)定的第一閾值,則增加一個(gè)數(shù)據(jù)流處理線程,并暫緩檢測(cè) 需要處理的數(shù)據(jù);如果所述長(zhǎng)度達(dá)到或超過(guò)設(shè)定的第二閾值,則刪除增加的數(shù)據(jù)流處理線程,并恢復(fù)檢 測(cè)需要處理的數(shù)據(jù)。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述需要處理的數(shù)據(jù)包括以下任意一種 或多種磁盤(pán)上存儲(chǔ)的文件中的數(shù)據(jù),實(shí)時(shí)數(shù)據(jù)、應(yīng)用程序輸出的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括 Hadoop系統(tǒng)中管理節(jié)點(diǎn)獲取數(shù)據(jù)流處理線程池中空閑的線程數(shù);根據(jù)所述空閑的線程數(shù)為一個(gè)或多個(gè)所述處理節(jié)點(diǎn)分配任務(wù),并指定該任務(wù)需要偵聽(tīng) 的IP地址和端口號(hào);Hadoop系統(tǒng)中處理節(jié)點(diǎn)根據(jù)所述IP地址和端口號(hào)獲取實(shí)時(shí)數(shù)據(jù)或者應(yīng)用程序輸出的 數(shù)據(jù)。
8.一種數(shù)據(jù)并行處理裝置,其特征在于,包括檢測(cè)單元,用于實(shí)時(shí)檢測(cè)數(shù)據(jù)采集服務(wù)器中需要處理的數(shù)據(jù); 數(shù)據(jù)分區(qū)生成單元,用于對(duì)所述檢測(cè)單元檢測(cè)到的數(shù)據(jù)進(jìn)行分區(qū)和/或聚合處理,使 其形成大小為預(yù)定值的數(shù)據(jù)分區(qū);描述信息建立單元,用于建立與各數(shù)據(jù)分區(qū)對(duì)應(yīng)的描述信息,并將所述描述信息依次 存入數(shù)據(jù)分區(qū)隊(duì)列中;2請(qǐng)求接收單元,用于接收Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Map任務(wù)的請(qǐng)求;數(shù)據(jù)流處理器,用于在所述請(qǐng)求接收單元收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Map任務(wù)的請(qǐng) 求后,從所述數(shù)據(jù)分區(qū)隊(duì)列中讀取一個(gè)描述信息,并根據(jù)所述描述信息獲取對(duì)應(yīng)的數(shù)據(jù)分 區(qū)中的數(shù)據(jù);數(shù)據(jù)傳送單元,用于將所述數(shù)據(jù)流處理器獲取的數(shù)據(jù)傳送到Map任務(wù)的輸入源。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述請(qǐng)求接收單元,還用于接收Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Reduce任務(wù)的請(qǐng)求;所述數(shù)據(jù)流處理器,還用于在所述請(qǐng)求接收單元收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的 Reduce任務(wù)的請(qǐng)求后,獲取Reduce任務(wù)的輸出源輸出的數(shù)據(jù),并將獲取的數(shù)據(jù)寫(xiě)到文件或 者應(yīng)用程序中。
10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述裝置還包括文件維護(hù)單元,用于針對(duì)經(jīng)過(guò)分區(qū)處理形成的數(shù)據(jù)分區(qū),在該數(shù)據(jù)分區(qū)以及與該數(shù)據(jù) 分區(qū)同屬于一個(gè)文件的其他數(shù)據(jù)分區(qū)都已被讀取后,刪除和/或備份所述文件;針對(duì)經(jīng)過(guò) 聚合處理形成的,在該數(shù)據(jù)分區(qū)被讀取后,刪除和/或備份該數(shù)據(jù)分區(qū)中的數(shù)據(jù)所屬的文 件。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述方法還包括所述數(shù)據(jù)流處理器,具體用于分配一個(gè)或多個(gè)數(shù)據(jù)流處理線程處理所述Map任務(wù)的請(qǐng) 求信號(hào)和Reduce任務(wù)的請(qǐng)求信號(hào)。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括資源控制器,用于周期性獲取數(shù)據(jù)分區(qū)隊(duì)列的長(zhǎng)度;并在所述長(zhǎng)度達(dá)到或超過(guò)設(shè)定的 第一閾值后,增加一個(gè)數(shù)據(jù)流處理線程,并通知所述檢測(cè)單元暫緩檢測(cè)需要處理的數(shù)據(jù);在 所述長(zhǎng)度達(dá)到或超過(guò)設(shè)定的第二閾值后,刪除增加的數(shù)據(jù)流處理線程,并通知所述檢測(cè)單 元恢復(fù)檢測(cè)需要處理的數(shù)據(jù)。
13.一種數(shù)據(jù)并行處理系統(tǒng),其特征在于,包括數(shù)據(jù)采集服務(wù)器、并行加載平臺(tái)和 Hadoop系統(tǒng),所述Hadoop系統(tǒng)包括處理節(jié)點(diǎn)和管理節(jié)點(diǎn),其中所述數(shù)據(jù)采集服務(wù)器,用于采集需要處理的數(shù)據(jù);所述并行加載平臺(tái),用于實(shí)時(shí)檢測(cè)數(shù)據(jù)采集服務(wù)器中需要處理的數(shù)據(jù);對(duì)檢測(cè)到的數(shù) 據(jù)進(jìn)行分區(qū)和/或聚合處理,使其形成大小為預(yù)定值的數(shù)據(jù)分區(qū);建立與各數(shù)據(jù)分區(qū)對(duì)應(yīng) 的描述信息,并將所述描述信息依次存入數(shù)據(jù)分區(qū)隊(duì)列中;收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的 Map任務(wù)的請(qǐng)求后,從所述數(shù)據(jù)分區(qū)隊(duì)列中讀取一個(gè)描述信息,并根據(jù)所述描述信息獲取對(duì) 應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù);將獲取的數(shù)據(jù)傳送到Map任務(wù)的輸入源。所述Hadoop系統(tǒng),用于并行處理各處理節(jié)點(diǎn)的Map任務(wù)的輸入源收到的數(shù)據(jù),并將處 理后的數(shù)據(jù)輸出。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,所述并行加載平臺(tái),還用于接收Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Reduce任務(wù)的請(qǐng)求,獲取 Reduce任務(wù)的輸出源輸出的數(shù)據(jù),并將獲取的數(shù)據(jù)寫(xiě)到文件或者應(yīng)用程序中。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,所述需要處理的數(shù)據(jù)包括以下任意一 種或多種磁盤(pán)上存儲(chǔ)的文件,實(shí)時(shí)數(shù)據(jù)、應(yīng)用程序輸出的數(shù)據(jù);所述并行加載平臺(tái),具體通過(guò)分配一個(gè)或多個(gè)數(shù)據(jù)流處理線程處理所述Map任務(wù)的請(qǐng)求和Reduce任務(wù)的請(qǐng)求;所述Hadoop系統(tǒng)中的管理節(jié)點(diǎn),用于獲取數(shù)據(jù)流處理線程池中空閑的線程數(shù);根據(jù)所 述空閑的線程數(shù)為一個(gè)或多個(gè)所述處理節(jié)點(diǎn)分配任務(wù),并指定該任務(wù)需要偵聽(tīng)的IP地址 和端口號(hào);Hadoop系統(tǒng)中處理節(jié)點(diǎn),用于根據(jù)所述IP地址和端口號(hào)獲取實(shí)時(shí)數(shù)據(jù)或者應(yīng)用程序 輸出的數(shù)據(jù)。
全文摘要
本發(fā)明涉及數(shù)據(jù)并行處理方法、裝置及系統(tǒng),所述方法包括實(shí)時(shí)檢測(cè)數(shù)據(jù)采集服務(wù)器中需要處理的數(shù)據(jù);對(duì)檢測(cè)到的數(shù)據(jù)進(jìn)行分區(qū)和/或聚合處理,使其形成大小為預(yù)定值的數(shù)據(jù)分區(qū);建立與各數(shù)據(jù)分區(qū)對(duì)應(yīng)的描述信息,并將所述描述信息依次存入數(shù)據(jù)分區(qū)隊(duì)列中;收到Hadoop系統(tǒng)中處理節(jié)點(diǎn)的Map任務(wù)的請(qǐng)求后,從所述數(shù)據(jù)分區(qū)隊(duì)列中讀取一個(gè)描述信息,并根據(jù)所述描述信息獲取對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù);將獲取的數(shù)據(jù)傳送到Map任務(wù)的輸入源。利用本發(fā)明,可以將數(shù)據(jù)從采集服務(wù)器上直接傳送到MapReduce節(jié)點(diǎn)上進(jìn)行處理,從而節(jié)省了存儲(chǔ)空間,簡(jiǎn)化了處理流程,提高了數(shù)據(jù)處理效率及數(shù)據(jù)處理的可靠性。
文檔編號(hào)G06F17/30GK101957863SQ20101051259
公開(kāi)日2011年1月26日 申請(qǐng)日期2010年10月14日 優(yōu)先權(quán)日2010年10月14日
發(fā)明者喻先兵, 溫文全 申請(qǐng)人:廣州從興電子開(kāi)發(fā)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
定日县| 嘉义县| 明光市| 湘阴县| 桂平市| 南部县| 盐津县| 嘉善县| 灵石县| 哈巴河县| 静安区| 班戈县| 墨江| 正阳县| 苍溪县| 天台县| 泰和县| 长岭县| 长宁区| 汤阴县| 桂平市| 宜宾市| 温州市| 三原县| 揭东县| 丘北县| 卓尼县| 太谷县| 镶黄旗| 永清县| 松江区| 宁夏| 隆子县| 台北县| 吉隆县| 吴桥县| 公主岭市| 榕江县| 许昌县| 永年县| 原平市|