基于FPGA的高效數(shù)據(jù)過濾技術(shù)研究
發(fā)布時間:2021-01-15 03:02
為了提高Hadoop的數(shù)據(jù)處理效率,在Hadoop集群中加入FPGA對Hadoop分布式文件系統(tǒng)中存儲的數(shù)據(jù)進(jìn)行過濾,這樣MapReduce程序只需要對過濾后的數(shù)據(jù)進(jìn)行自定義的操作,從而避免了掃描全部數(shù)據(jù).實(shí)驗(yàn)表明處理海量的數(shù)據(jù)時,FPGA能夠顯著地過濾掉無用數(shù)據(jù),從而提高數(shù)據(jù)處理效率.
【文章來源】:微電子學(xué)與計(jì)算機(jī). 2017,34(12)北大核心
【文章頁數(shù)】:5 頁
【部分圖文】:
圖2數(shù)據(jù)過濾流程
微電子學(xué)與計(jì)算機(jī)2017年圖3數(shù)據(jù)映射過程被輸出,其他的列則會被過濾掉,該模塊支持的最大列數(shù)為16.3.2選擇模塊這個模塊的功能是對原數(shù)據(jù)中的每一行數(shù)據(jù)進(jìn)行過濾,相當(dāng)于SQL中的where語句的功能.每當(dāng)一行數(shù)據(jù)滿足查詢條件時,此模塊就發(fā)出邏輯高信號,否則發(fā)出邏輯低信號.如果查詢條件中沒有對行進(jìn)行過濾,則此模塊會持續(xù)發(fā)出邏輯高信號.選擇模塊的數(shù)據(jù)處理流程如圖4所示.圖4選擇模塊數(shù)據(jù)處理流程3.2.1基本處理單元本模塊的核心部件是一系列的基本處理單元,每一個基本處理單元都可以處理如下兩種判斷語句:(1)形如columnθconstant的判斷語句.其中θ為比較符號,包括=,<>,<,>,≥,≤;column為參與比較的列id;constant為某個常數(shù)或字符串.(2)形如columnθcolumn的判斷語句.其中θ和上面一樣為比較符號;column為參與比較的兩個列的列id.每當(dāng)一個查詢到來之后,CPU會對查詢條件進(jìn)行分析,并向FPGA中的某個基本處理單元傳遞參數(shù)(column,θ,constant,column).該處理單元接收到參數(shù)之后,就能立即按照過濾條件對數(shù)據(jù)進(jìn)行處理,并且當(dāng)滿足判斷條件時發(fā)出信號“1”,否則發(fā)出信號“0”.3.2.2多核多流水一個查詢語句中可能擁有多個過濾條件,此時系統(tǒng)采用流水線的方式對某個查詢語句進(jìn)行處理[14].例如,對于語句where(col1>αandcol2=β)orcol3<>γ,這種條件系統(tǒng)采用多核多流水
處理單元,當(dāng)該條記錄的某一屬性的列id與某一處理單元的i列id一致時,這個屬性就會參與該處理單元的比較.當(dāng)某個屬性和某一處理單元比較之后,應(yīng)繼續(xù)流向后續(xù)處理單元,因?yàn)樵搶傩杂锌赡軈⑴c了多次比較.3.2.3真值表獲得每個過濾條件的判斷結(jié)果之后,系統(tǒng)會根據(jù)and,or等邏輯詞判斷整個過濾條件的結(jié)果,這里本系統(tǒng)采用真值表的方法[15].同樣以where(col1>αandcol2=β)orcol3<>γ為例,其真值表見圖6.圖6真值表真值表是由CPU根據(jù)過濾條件計(jì)算出來的,然后傳遞給FPGA.當(dāng)過濾條件過多時,可能導(dǎo)致一片BRAM不能存放一整張真值表,這時系統(tǒng)采用多重真值表的做法,即把全部的過濾條件分成若干組,每一組對應(yīng)一個小的真值表,每一個真值表單獨(dú)計(jì)算結(jié)果,最終匯總到一起形成一張大的真值表.分組的方法依賴于BRAM的大。磳(shí)驗(yàn)4.1實(shí)驗(yàn)環(huán)境及數(shù)據(jù)本文使用擁有4個節(jié)點(diǎn)的機(jī)群環(huán)境:1個主節(jié)132
【參考文獻(xiàn)】:
期刊論文
[1]云數(shù)據(jù)管理索引技術(shù)研究[J]. 馬友忠,孟小峰. 軟件學(xué)報(bào). 2015(01)
[2]大數(shù)據(jù)研究[J]. 嚴(yán)霄鳳,張德馨. 計(jì)算機(jī)技術(shù)與發(fā)展. 2013(04)
[3]MapReduce并行編程架構(gòu)模型研究[J]. 江務(wù)學(xué),張璟,王志明. 微電子學(xué)與計(jì)算機(jī). 2011(06)
[4]AES算法的一種高效FPGA實(shí)現(xiàn)方法[J]. 錢松,周欽,俞軍. 微電子學(xué)與計(jì)算機(jī). 2005(07)
本文編號:2978091
【文章來源】:微電子學(xué)與計(jì)算機(jī). 2017,34(12)北大核心
【文章頁數(shù)】:5 頁
【部分圖文】:
圖2數(shù)據(jù)過濾流程
微電子學(xué)與計(jì)算機(jī)2017年圖3數(shù)據(jù)映射過程被輸出,其他的列則會被過濾掉,該模塊支持的最大列數(shù)為16.3.2選擇模塊這個模塊的功能是對原數(shù)據(jù)中的每一行數(shù)據(jù)進(jìn)行過濾,相當(dāng)于SQL中的where語句的功能.每當(dāng)一行數(shù)據(jù)滿足查詢條件時,此模塊就發(fā)出邏輯高信號,否則發(fā)出邏輯低信號.如果查詢條件中沒有對行進(jìn)行過濾,則此模塊會持續(xù)發(fā)出邏輯高信號.選擇模塊的數(shù)據(jù)處理流程如圖4所示.圖4選擇模塊數(shù)據(jù)處理流程3.2.1基本處理單元本模塊的核心部件是一系列的基本處理單元,每一個基本處理單元都可以處理如下兩種判斷語句:(1)形如columnθconstant的判斷語句.其中θ為比較符號,包括=,<>,<,>,≥,≤;column為參與比較的列id;constant為某個常數(shù)或字符串.(2)形如columnθcolumn的判斷語句.其中θ和上面一樣為比較符號;column為參與比較的兩個列的列id.每當(dāng)一個查詢到來之后,CPU會對查詢條件進(jìn)行分析,并向FPGA中的某個基本處理單元傳遞參數(shù)(column,θ,constant,column).該處理單元接收到參數(shù)之后,就能立即按照過濾條件對數(shù)據(jù)進(jìn)行處理,并且當(dāng)滿足判斷條件時發(fā)出信號“1”,否則發(fā)出信號“0”.3.2.2多核多流水一個查詢語句中可能擁有多個過濾條件,此時系統(tǒng)采用流水線的方式對某個查詢語句進(jìn)行處理[14].例如,對于語句where(col1>αandcol2=β)orcol3<>γ,這種條件系統(tǒng)采用多核多流水
處理單元,當(dāng)該條記錄的某一屬性的列id與某一處理單元的i列id一致時,這個屬性就會參與該處理單元的比較.當(dāng)某個屬性和某一處理單元比較之后,應(yīng)繼續(xù)流向后續(xù)處理單元,因?yàn)樵搶傩杂锌赡軈⑴c了多次比較.3.2.3真值表獲得每個過濾條件的判斷結(jié)果之后,系統(tǒng)會根據(jù)and,or等邏輯詞判斷整個過濾條件的結(jié)果,這里本系統(tǒng)采用真值表的方法[15].同樣以where(col1>αandcol2=β)orcol3<>γ為例,其真值表見圖6.圖6真值表真值表是由CPU根據(jù)過濾條件計(jì)算出來的,然后傳遞給FPGA.當(dāng)過濾條件過多時,可能導(dǎo)致一片BRAM不能存放一整張真值表,這時系統(tǒng)采用多重真值表的做法,即把全部的過濾條件分成若干組,每一組對應(yīng)一個小的真值表,每一個真值表單獨(dú)計(jì)算結(jié)果,最終匯總到一起形成一張大的真值表.分組的方法依賴于BRAM的大。磳(shí)驗(yàn)4.1實(shí)驗(yàn)環(huán)境及數(shù)據(jù)本文使用擁有4個節(jié)點(diǎn)的機(jī)群環(huán)境:1個主節(jié)132
【參考文獻(xiàn)】:
期刊論文
[1]云數(shù)據(jù)管理索引技術(shù)研究[J]. 馬友忠,孟小峰. 軟件學(xué)報(bào). 2015(01)
[2]大數(shù)據(jù)研究[J]. 嚴(yán)霄鳳,張德馨. 計(jì)算機(jī)技術(shù)與發(fā)展. 2013(04)
[3]MapReduce并行編程架構(gòu)模型研究[J]. 江務(wù)學(xué),張璟,王志明. 微電子學(xué)與計(jì)算機(jī). 2011(06)
[4]AES算法的一種高效FPGA實(shí)現(xiàn)方法[J]. 錢松,周欽,俞軍. 微電子學(xué)與計(jì)算機(jī). 2005(07)
本文編號:2978091
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2978091.html
最近更新
教材專著