基于FPGA的高效数据过滤技术研究
发布时间:2021-01-15 03:02
为了提高Hadoop的数据处理效率,在Hadoop集群中加入FPGA对Hadoop分布式文件系统中存储的数据进行过滤,这样MapReduce程序只需要对过滤后的数据进行自定义的操作,从而避免了扫描全部数据.实验表明处理海量的数据时,FPGA能够显著地过滤掉无用数据,从而提高数据处理效率.
【文章来源】:微电子学与计算机. 2017,34(12)北大核心
【文章页数】:5 页
【部分图文】:
图2数据过滤流程
微电子学与计算机2017年图3数据映射过程被输出,其他的列则会被过滤掉,该模块支持的最大列数为16.3.2选择模块这个模块的功能是对原数据中的每一行数据进行过滤,相当于SQL中的where语句的功能.每当一行数据满足查询条件时,此模块就发出逻辑高信号,否则发出逻辑低信号.如果查询条件中没有对行进行过滤,则此模块会持续发出逻辑高信号.选择模块的数据处理流程如图4所示.图4选择模块数据处理流程3.2.1基本处理单元本模块的核心部件是一系列的基本处理单元,每一个基本处理单元都可以处理如下两种判断语句:(1)形如columnθconstant的判断语句.其中θ为比较符号,包括=,<>,<,>,≥,≤;column为参与比较的列id;constant为某个常数或字符串.(2)形如columnθcolumn的判断语句.其中θ和上面一样为比较符号;column为参与比较的两个列的列id.每当一个查询到来之后,CPU会对查询条件进行分析,并向FPGA中的某个基本处理单元传递参数(column,θ,constant,column).该处理单元接收到参数之后,就能立即按照过滤条件对数据进行处理,并且当满足判断条件时发出信号“1”,否则发出信号“0”.3.2.2多核多流水一个查询语句中可能拥有多个过滤条件,此时系统采用流水线的方式对某个查询语句进行处理[14].例如,对于语句where(col1>αandcol2=β)orcol3<>γ,这种条件系统采用多核多流水
处理单元,当该条记录的某一属性的列id与某一处理单元的i列id一致时,这个属性就会参与该处理单元的比较.当某个属性和某一处理单元比较之后,应继续流向后续处理单元,因为该属性有可能参与了多次比较.3.2.3真值表获得每个过滤条件的判断结果之后,系统会根据and,or等逻辑词判断整个过滤条件的结果,这里本系统采用真值表的方法[15].同样以where(col1>αandcol2=β)orcol3<>γ为例,其真值表见图6.图6真值表真值表是由CPU根据过滤条件计算出来的,然后传递给FPGA.当过滤条件过多时,可能导致一片BRAM不能存放一整张真值表,这时系统采用多重真值表的做法,即把全部的过滤条件分成若干组,每一组对应一个小的真值表,每一个真值表单独计算结果,最终汇总到一起形成一张大的真值表.分组的方法依赖于BRAM的大小.4实验4.1实验环境及数据本文使用拥有4个节点的机群环境:1个主节132
【参考文献】:
期刊论文
[1]云数据管理索引技术研究[J]. 马友忠,孟小峰. 软件学报. 2015(01)
[2]大数据研究[J]. 严霄凤,张德馨. 计算机技术与发展. 2013(04)
[3]MapReduce并行编程架构模型研究[J]. 江务学,张璟,王志明. 微电子学与计算机. 2011(06)
[4]AES算法的一种高效FPGA实现方法[J]. 钱松,周钦,俞军. 微电子学与计算机. 2005(07)
本文编号:2978091
【文章来源】:微电子学与计算机. 2017,34(12)北大核心
【文章页数】:5 页
【部分图文】:
图2数据过滤流程
微电子学与计算机2017年图3数据映射过程被输出,其他的列则会被过滤掉,该模块支持的最大列数为16.3.2选择模块这个模块的功能是对原数据中的每一行数据进行过滤,相当于SQL中的where语句的功能.每当一行数据满足查询条件时,此模块就发出逻辑高信号,否则发出逻辑低信号.如果查询条件中没有对行进行过滤,则此模块会持续发出逻辑高信号.选择模块的数据处理流程如图4所示.图4选择模块数据处理流程3.2.1基本处理单元本模块的核心部件是一系列的基本处理单元,每一个基本处理单元都可以处理如下两种判断语句:(1)形如columnθconstant的判断语句.其中θ为比较符号,包括=,<>,<,>,≥,≤;column为参与比较的列id;constant为某个常数或字符串.(2)形如columnθcolumn的判断语句.其中θ和上面一样为比较符号;column为参与比较的两个列的列id.每当一个查询到来之后,CPU会对查询条件进行分析,并向FPGA中的某个基本处理单元传递参数(column,θ,constant,column).该处理单元接收到参数之后,就能立即按照过滤条件对数据进行处理,并且当满足判断条件时发出信号“1”,否则发出信号“0”.3.2.2多核多流水一个查询语句中可能拥有多个过滤条件,此时系统采用流水线的方式对某个查询语句进行处理[14].例如,对于语句where(col1>αandcol2=β)orcol3<>γ,这种条件系统采用多核多流水
处理单元,当该条记录的某一属性的列id与某一处理单元的i列id一致时,这个属性就会参与该处理单元的比较.当某个属性和某一处理单元比较之后,应继续流向后续处理单元,因为该属性有可能参与了多次比较.3.2.3真值表获得每个过滤条件的判断结果之后,系统会根据and,or等逻辑词判断整个过滤条件的结果,这里本系统采用真值表的方法[15].同样以where(col1>αandcol2=β)orcol3<>γ为例,其真值表见图6.图6真值表真值表是由CPU根据过滤条件计算出来的,然后传递给FPGA.当过滤条件过多时,可能导致一片BRAM不能存放一整张真值表,这时系统采用多重真值表的做法,即把全部的过滤条件分成若干组,每一组对应一个小的真值表,每一个真值表单独计算结果,最终汇总到一起形成一张大的真值表.分组的方法依赖于BRAM的大小.4实验4.1实验环境及数据本文使用拥有4个节点的机群环境:1个主节132
【参考文献】:
期刊论文
[1]云数据管理索引技术研究[J]. 马友忠,孟小峰. 软件学报. 2015(01)
[2]大数据研究[J]. 严霄凤,张德馨. 计算机技术与发展. 2013(04)
[3]MapReduce并行编程架构模型研究[J]. 江务学,张璟,王志明. 微电子学与计算机. 2011(06)
[4]AES算法的一种高效FPGA实现方法[J]. 钱松,周钦,俞军. 微电子学与计算机. 2005(07)
本文编号:2978091
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2978091.html