基于Hadoop的精准扶贫大数据信息系统

2018-07-23 02:14张平康
电子科技 2018年7期
关键词:数据挖掘信息系统架构

张 航,张 欣,张平康,李 琪

(贵州大学 大数据与信息工程学院,贵州 贵阳 550025)

随着我国信息化建设程度的不断提高,通过观察、访问、调研等方式积累了大量对扶贫开发领域极具实际指导意义的扶贫数据,而目前,传统的扶贫开发系统在管理和处理扶贫大数据方面所面临的问题也日渐凸显:(1)各级部门信息独立,各自为战,主要以结构化的关系型数据仓库的形式来存储处理数据;(2)扶贫大数据具有强烈的自身特点,包括医疗、交通、教育等领域相互之间的关系和影响,使得关于扶贫的数据库与知识库具有大型、多维、动态变化等特点;(3)各级部门对于扶贫大数据的集中管理和利用效率不高,对数据的存储和价值挖掘方面,存在数据失真、信息分散、处理能力弱的现象,这些都使得精准扶贫的治理参考缺少系统性的判断预测,从而影响精准扶贫的治理成效。对此,通过将大数据处理技术与精准扶贫的有机结合,将跨平台、跨系统的各方数据进行整合,对采集到的数据进行并行处理,挖掘出有价值数据成果,不仅能完善精准贫困评估的数据系统,建立扶贫管理的动态机制,还能强化贫困问题的科学分析,有效地实现精准管理、精准帮扶、精准保障。

1 相关理论和技术

1.1 Hadoop分布式平台

Hadoop是由Apache软件基金会所开发的一个允许对大型数据集进行分布式处理的框架。通过其核心技术HDFS(Hadoop Distributed File System)和MapReduce以一种可靠、高效、可伸缩的方式进行数据处理[1]。其中HDFS负责为海量数据提供对数据的存储管理服务,由于它使用Java语言开发,以及所具有的高容错性和高自主性等特点,使得Hadoop可以很容易地在低成本的硬件上部署形成分布式系统。而MapReduce则负责为海量的数据提供强大的计算支持,充分利用集群能力来进行高速运算。

图1 Hadoop分布式结构模型

1.2 Hive

Hive是一个构建于Hadoop文件系统之上的数据仓库基础架构,将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,由此用户可以通过使用ETL(Extract-Transform-Load)工具来实现对数据仓库的存储管理和大型数据集的查询和分析功能[2]。Hive其本身没有设置专门的数据存储格式,也不能为数据建立索引,因此使得用户可以按需要灵活地组织Hive中的表,只需要在创建表的时候对Hive数据中的列分隔符和行分隔符信息进行告知,Hive就可以实时地正确地解析数据。

1.3 HBase

HBase是Hadoop的一个分布式、面向列存储的开源数据库,它能为大数据提供随机、实时的读写访问功能,而且,其底层采用分布式文件系统作为存储平台,可以为数据的可靠性和系统的鲁棒性提供保证[3]。HBase作为一种基于列存储的数据库,非常适合于非结构化的数据存储,可以实现高效强力的数据存储和计算。此外,HBase之上还可以运用MapReduce计算模型来并行处理大规模数据,这即是其强大性能的关键所在[4]。

2 精准扶贫大数据信息系统

针对现有的扶贫数据处理系统存在的数据处理和数据存储等方面所存在的不足:一是现有的扶贫数据处理系统采用的大多是集中式的数据库架构,随着各部门收集数据的种类和数量的不断增加,传统的数据库架构将会面临巨大的挑战,同时其对于海量数据的处理能力也是整个系统架构的瓶颈;二是针对大量的非结构化的扶贫大数据的涌入,现有的解决平台因为数据量的不断增加却无法互联互通而沦为信息孤岛。因此,要解决扶贫大数据在存储、计算和挖掘方面的问题,可以建立起一个统一的数据处理体系架构和数据存储平台,让原来的传统数据仓库被充分利用起来[5]。所以,本文鉴于此提出了以Hadoop为计算处理中心,HDFS和HBase为数据存储中心的精准扶贫大数据系统,通过Hadoop在分布式并行计算上的强大处理能力和HDFS的强大存储能力,可以补充传统数据库在海量数据保存、处理方面的不足,同时还可以依靠Hadoop的横向扩展能力突破传统的单节点数据仓库在计算处理能力上的瓶颈[6]。

2.1 精准扶贫大数据信息系统架构框图

通过对精准扶贫领域的相关研究,结合Hadoop的体系架构的分析,提出精准扶贫大数据信息系统架构框图如图2所示。该精准扶贫大数据信息系统采用层次化结构设计原则,由下往上依次是基础环境层、数据资源层、支撑层、应用层和服务层。最底层为基础环境层,属于系统的硬软件基础设施,是实现信息传输的基本保证;向上为数据资源层,负责将现有各部门的数据通过ETL保存到Hadoop集群数据节点,以实现文件的分片管理和负载均衡控制[7-8];支撑层则是负责为场景应用和结果展现提供对应的业务支撑,包含对服务、数据、内容等方面的管理与集成功能,为系统与周边其它各业务系统的对接及应用的协同处理提供保障[9];应用层则是通过调用命名节点提供的元数据信息,对原始数据集进行Map/Reduce处理,并将结果传递至服务层;服务层为系统的最高层,为用户提供了操作界面接口,使其可以通过接口访问应用层,下达操作指令以及接受系统统计分析计算的结果。

图2 精准扶贫大数据信息系统架构框图

2.2 精准扶贫大数据信息系统技术架构

精准扶贫大数据信息系统采用MVC三层结构,如图3所示,其分别为视图(View)、控制(Controller)和模型(Model),使用J2EE的Struts2实现平台在各个层次上的功能,各层之间负责不同的工作,并通过相应的通信接口进行数据交换[10]。

图3 精准扶贫大数据信息系统技术框架

3 精准扶贫系统的数据挖掘

3.1 精准扶贫数据挖掘的基本过程

精准扶贫数据挖掘过程主要包括业务理解,数据整理,数据预处理,数据转换,数据分析,模式评估和知识表示[11]。其具体流程如图4所示。

针对扶贫工作的数据挖掘是一个很宽泛的研究问题,所要分析的数据不仅容量大而且内容丰富、结构多样。因此,挖掘工作的第一步就是要确定针对所要分析的具体对象和具体指标,而后有针对性的整理收集相关数据。这些从数据库直接抽取的数据往往存在不完整、格式不统一、无效数据等问题,需要对其经过清洗校验等预处理,而后通过平滑聚集、数据概化、规范约束等方式,将预处理后的数据转换为适合数据挖掘算法的形式。数据分析是整个扶贫数据挖掘工作中的核心部分,主要是根据所确定的业务和需求,选择合适的数据挖掘算法,对所选取的特定的扶贫数据进行深层次的挖掘,发现其中有价值的规则和模式,最后将其以图表等简单直观的方式呈现给用户[12]。

图4 精准扶贫数据挖掘过程

3.2 精准扶贫数据挖掘算法选择

关联规则主要用于寻找不同事物之间关联性,例如扶贫工作中贫困程度与教育、医疗、交通等领域之间的关联,这其中能挖掘出的关联规则对精准扶贫工作的具体实施具有非常重要的指导意义。当前应用比较广泛的关联规则算法主要有Apriori算法和FP-Growth算法。

FP-Growth算法相比于Apriori算法,其通过合并重复路径避免了重复扫描数据库,采用递归的方式避免产生大量的候选项集,压缩了搜索空间,在算法效率上快出一个数量级。FP-Growth算法通过频繁模式树(FPTree)的树形数据结构,将频繁项集压缩到一棵频繁模式树上,然后将压缩后的数据库划分为一组条件数据库,并挖掘每个条件数据库[13-15]。FP-Growth算法主要包括FP树构造和FP-Growth的挖掘两个阶段,其具体流程如图5所示。

图5 FP-Growth算法流程图

3.3 精准扶贫数据挖掘FP-Growth算法的并行化

随着挖掘数据集的增大,内存将不足以存储巨大的FPTree,这时基于单一节点的FP-Growth算法就会面临时间和空间上的双重瓶颈,通过对FP-Growth算法进行并行化处理就可以较好地解决这一问题。使用事务数据集和最小支持度作为其输入,其输出为所有支持度技术大于最小支持度的频繁模式。其算法共分为5步,包括两次数据库的扫描和两组MapReduce任务。

步骤1数据分片。将事务数据集分成若干部分储存在多个节点上,便于集群读取数据;

步骤2并行计算频繁集。第一次扫描数据库,计算每个节点上每一项的支持度计数,并将结果合并得到频繁项集F-list,由第一组MapReduce完成;

步骤3数据分组。使用负载均衡的分组策略将F-list划分为Q组,每一组包含若干项,分组结果记作G-list;

步骤4并行挖掘频繁项集。这是整个PFP算法的关键步骤,它通过使用第二组MapReduce任务将实物划分到各个组,输出<组号,事务>型数据对,在划分结束之后,在本地创建本组的FPTree,然后对其进行挖掘,挖掘出相应的频繁模式;

步骤5聚合。将步骤4所产生的结果聚合起来得到最终结果[9]。

图6 PFP-Growth算法主要步骤

4 系统性能测试

用户可以通过系统实时查看如图7所示的贫困态势统计信息。同时可以根据分类查看具体贫困户、贫困村的档案资料。如图8所示,系统所计算的每名贫困户的贫困指数及各类指标的贡献度,图9则显示了系统通过用户输入的指标计算出的关联规则的结果,通过这些对扶贫大数据的智能化管理和应用,运行结果表明,达到了对精准扶贫过程的智能预警、智能决策、智能分析的目的,为之后扶贫开发的具体工作提供科学依据。

图7 贫困态势查询页面

图8 贫困指数计算结果页面

图9 数据挖掘结果页面

5 结束语

本文通过对大数据技术和互联网应用的研究,联系精准扶贫相关工作实际情况,对扶贫大数据的特点进行分析探索,针对现有扶贫开发系统在存储和处理大数据过程中存在的具体问题,建立了基于Hadoop的精准扶贫大数据信息系统,通过该系统实现对贫困户、贫困村等帮扶对象数据的动态化管理,完成扶贫业务开发全过程信息化动态跟踪,打通精准扶贫相关行业部门之间的信息通道,避免产生信息孤岛,实现数据共享和业务协作。目前,本文所设计的精准扶贫大数据信息系统已经完成了一定的功能,但还存在一些不足之处。在后续研究工作中,将丰富系统的查询功能,方便用户根据需求对系统中数据进行模糊查询。同时,本文只针对FP-Growth算法使用进行了研究,后期将加强对有关业务功能算法的研究,增加诸如聚类和决策等更多算法的研究引入,充实精准扶贫数据挖掘功能,更好地为精准扶贫工作提供决策辅助和数据支持。

猜你喜欢
数据挖掘信息系统架构
基于FPGA的RNN硬件加速架构
企业信息系统安全防护
功能架构在电子电气架构开发中的应用和实践
探讨人工智能与数据挖掘发展趋势
基于区块链的通航维护信息系统研究
信息系统审计中计算机审计的应用
WebGIS架构下的地理信息系统构建研究
基于并行计算的大数据挖掘在电网中的应用
基于SG-I6000的信息系统运检自动化诊断实践
一种基于Hadoop的大数据挖掘云服务及应用