APP下载

基于递归随机搜索算法的Hadoop平台大数据软件系统研究

2020-08-13齐超崔然

软件 2020年6期

齐超 崔然

摘  要: 随着互联网时代的到来,互联网数据的产生和收集数量呈爆炸式发展。使用金融机构大数据抓取软件系统处理和存储相关数据成为许多商业机构和研究机构的常态化选择,金融机构大数据抓取软件系统可以简化使用者对于信息传输和信息计算的具体操作,便于提高使用者的使用效率和准确率。本文研究的金融机构大数据抓取软件系统通过Python和Java语言完成,主要包括:金融机构大数据抓取软件系统分析模块、金融机构大数据抓取软件系统优化模块、金融机构大数据抓取软件系统预测模块。在研究的过程当中本文采用了递归随机搜索算法、Java图形界面、Hadoop平台进行设计研究。经过测试,在选用服务器为Intel Atom D510时,金融机构大数据抓取软件系统优化模块在Hadoop集群上开展优化,系统任务执行时间变短,比原来的数据时间缩短了5%以上,优化有效。

关键词: 金融机构大数据;大数据软件系统;Hadoop平台

中图分类号: TP391. 77    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.06.037

本文著录格式:齐超,崔然. 于递归随机搜索算法的Hadoop平台大数据软件系统研究[J]. 软件,2020,41(06):177184

【Abstract】: With the advent of the Internet era, the generation and collection of Internet data have exploded. Using the big data capture software system of financial institutions to process and store relevant data has become a regular choice for many commercial and research institutions. The big data capture software system of financial institutions can simplify the specific operation of users on information transmission and information calculation, and facilitate the use efficiency and accuracy of users. The big data capture software system of financial institution is completed by Python and Java language, including: analysis module of big data capture software of financial institution and big data capture software of financial institution  System optimization module, financial institutions big data capture software system prediction module. In the process of research, this paper adopts recursive random search algorithm, Java graphical interface, Hadoop platform to design research. After testing, when the server is selected as Intel Atom D510, the big data grab software system optimization module of financial institutions carries out optimization on Hadoop cluster, and the execution time of the system task becomes shorter than that of the original data, and the optimization is effective.

【Key words】: Financial institution big data; Big data software system; Hadoop platform

0  引言

隨着互联网时代的到来,互联网数据的产生和收集数量呈爆炸式发展。使用金融机构大数据抓取软件系统处理和存储相关数据成为许多商业机构和研究机构的常态化选择,金融机构大数据抓取软件系统可以简化使用者对于信息传输和信息计算的具体操作,便于提高使用者的使用效率和准确率。但是,金融机构大数据抓取软件系统虽然为使用者带来了较大的便利,却也限制了使用者对金融机构大数据抓取软件系统底层运行方式的了解和熟悉,这不利于使用者发挥金融机构大数据抓取软件系统全部性能,不利于使用者对金融机构大数据抓取软件系统进行升级和优化。本文旨在通过开发优化金融机构大数据抓取软件系统的自动解析工具,帮助使用者自动对金融机构大数据抓取软件系统进行合理优化,发挥金融机构大数据抓取软件系统的全部功能。

1  相关工作

1.1  分布式计算存储系统

Hadoop是Apache之下的产品。Hadoop经过长时间的发展,目前已拥有多个分项。它的主要组成部分是分布式计算系统和Hadoop(DHFS)[1]。同时,它还拥有Common、Avro、Chukwa、Hive、Hbase等分项,这些分项可以帮助Hadoop完成更多不同类型的数据收集和处理任务,是Hadoop功能的进化和衍生,为Hadoop扩充功能,提升适用范围提供了帮助[2]。

(1)高可靠性。系统拥有多个数据支持副本,可以保证在某个节点出现问题时仍可以切换到其他副本进行信息数据处理[3]。

(2)高扩展性。该系统通过集簇进行数据的收集和计算。集簇可以随时进行扩展,每个集簇的扩展能力很强,可以同时的向无数节点进行扩展[4]。

(3)高效性。系统数据可以随时随地地移动,同时可以确保节点之间的平衡性。也因此,系统在处理数据时方便、快捷。

(4)高容错性。Hadoop可以随时对副本进行存储,对于没有办法继续进行的任务,系统会重新安排副本进行计算[5]。

1.2  Hadoop分布式计算系统

Hadoop分布式计算系统模型可以进行数据编程和计算。它的语言环境包括(Java, Python, C++等),可以保障数量庞大的数据分析任务[6]。分布式计算系统是通过各自为战的方式进行相关演算。它是把整个数据信息进行拆分,然后分别下发到各个分节点中进行运算,再将运算结果进行汇总,最后得到总体结果的运算过程[7]。也可以说,分布式计算系统是分解数据,计算,汇总数据,得到结果[8]。

1.3  Java性能跟踪工具

B Trace可以对Java平台的数据进行动态跟踪,是一款较为有效的数据跟踪工具[9]。B Trace对于查找代码有着较为良好的应用,可以帮助使用者进行错误代码的追查,对未知流量的监测。B Trace監测的情况一般具有偶然性和特殊性,很难重复发生[10]。

B Trace通过(Hotswap)对Java程序中的相关代码进行跟踪,并通过指令执行进行替换[11]。它的语言是Java,具有较强的普遍性,应用起来也较为简单。它对Java平台代码的监控和追查可以在不改变当前程序的前提下进行,这对于B Trace的具体实施难度无疑降低了很多[12]。目标JVM是一个动态插入B Trace的代理。B Trace对代理发出指令,代理对B Trace的指令进行反馈[13]。

1.4  递归随机搜索算法

递归随机搜索由随机搜索算法中转变发展得出。递归随机搜索算法相较于传统的算法在效率方面有着显著的优势。传统的算法在计算少量样本时可以快速的得出最优解范围,而如果抽样变多,样本空间变小,传统算法是计算速度就会明显变慢,同时增加得到最优解的资源消耗[14]。而递归随机搜索算法适合于大型数据的抽样计算,可以保持较为稳定的速度,同时计算效率相较于传统计算方法要快很多。由于递归随机搜索的种种优势,被普遍的应用到诸多领域的运算当中[15]。

2  分析设计

上一章对系统程序研发具体技术进行了详细阐述。本章的重点是金融机构大数据抓取软件系统的相关内容进行具体的阐述,并对其基本设计思路进行解析。

2.1  需求分析

Hadoop存在着使用者对底层数据的了解和应用缺乏知识和概念,对于优化Hadoop,提升Hadoop最大作用存在较大的困难[16]。为了解决这一困难,需要相应的金融机构大数据抓取软件系统抓取软件帮助。金融机构大数据抓取软件系统抓取软件可以帮助使用者在不了解金融机构大数据抓取软件系统底层运行细节的前提下对金融机构大数据抓取软件系统进行优化调节,提升金融机构大数据抓取软件系统运行效率。这有利于降低金融机构大数据抓取软件系统使用者要求,降低使用者使用成本和时间成本[17]。

2.2  设计思路

对Hadoop的影响因素进行解析,有助于对Hadoop进行合理优化。影响Hadoop的主要因素有以下方面:(1)分布式程序。(2)相关输入数据。(3)拥有的相关资源。(4)配置参数。这四方面是影响Hadoop的主要因素。(Perf=F(p,d,r,c)。这里面p表示Hadoop分布式程序,d表示相关输入数据,r表示拥有的相关资源,c表示配置参数。金融机构大数据抓取软件系统性能的优化的最直观表现是金融机构大数据抓取软件系统在处理数据时所使用时间的长短,如果进行优化后的金融机构大数据抓取软件系统在进行数据处理过程中比原有的程序所用的时间短,那么可以说新的优化是有效的[18]。

2.3  工作原理

大数据性能分析工具是利用对系统配置参数的调整,工作原理系统运行速度和运行效果的提升。它需要对节点的数据信息进行随机抓取,了解各个节点相关信息,并对这些有效信息进行加工和分析,以保证对配置参数的调整依据和预测依据[19]。其运行原理是:第一,使用者在Hadoop平台上进行脚本安装,发送编辑好的B Trace程序到Slave目录下[20]。第二,运行脚本,对相关数据进行随机抓取。在抓取数据完成后,将抓取到的数据发送给Master节点。使用者可以根据自身需求选择合适的程序和功能,并对需要设置的参数进行有效预测和开启优化功能。第三,用户通过预测结果给出的参数配置信息进行参数配置,工作原理系统的优化目标[21]。如图1。

2.4  大数据抓取软件系统系统架构

针对金融机构大数据抓取软件系统的设计思路,本文对金融机构大数据抓取软件系统进行了系统架构绘图,如图2所示,金融机构大数据抓取软件系统主要由三部分组成,它们分别是:金融机构大数据抓取软件系统分析模块、金融机构大数据抓取软件系统预测模块、金融机构大数据抓取软件系统优化模块[22]。

3  算法过程

3.1  执行分析模块设计

根据Hadoop的运行机制可以知道,Hadoop平台的运行机制主要包括Map阶段和Reduce阶段。Map阶段是通过数据读取、映射、集合、重整、合并工作原理的,具体流程如图3所示。

各个环节有以下功能:

(1)洗牌(Shuffle):对两个阶段的数据进行转化,使原数据符合Reduce阶段数据需求。

(2)合并(Merge):将原数据进行整合。

(3)化简(Reduce):在Reduce阶段运行相关程序对原数据进行加工,得到简化数据。

(4)写数据(Write):将产生的新数据写入系统。

在Hadoop平台系统下,大数据系统软件分析模块通过使用profile.py脚本进行启动。待模块正式运行后,通过agent将B Trace Job大数据系统软件分析类的on Job Client 提交工作内方法和org.apache. hadoop.mapred.Job Client类的提交工作内方法连接在一起。当Hadoop使用提交工作内时同时开始运作,并记录运转时间。而使用org.apache.hadoop.分布式计算系统.Job与wait For Completion方法绑定,确定运行结束时间[23]。B Trace Task And Mem Profile可以对各阶段数据进行有效收集。Hadoop平台的数据参数配置通过XML Cluster Parser工作原理[42]。另外,XML Profile Parser将收集到的数据转化为XML文件进行输出。XML文件上传至分布式的过程是利用Up datexml中的Up datexml工作原理的如图4。

3.2  预测模块设计

企业要建立完善的大数据预测的数学模式,就要对Hadoop平台系统任务各个环节参数配置及资源损耗情况进行分别计算,并最终进行整体汇总,得到总体计算模型,这样的结果更加客观。如图5所示,是对map阶段的缓存(io.sort.mb参数)进行调整后,与之相对于的真实时间和时间和与测试时间情况图。

通过图5得出,预测时间和实际时间之间仍旧不是完全相同的,这是因为抓取数据工具BTrac相对的系统资源,影响了实际操作的结果。但是抓取数据工具BTrac所占用的系统资源非常小,对于最终结果的影响十分有限,在计算误差允许范围内[48]。

在通过金融机构大数据抓取软件系统预测模块对Hadoop平台进行具体测算时,并不能完全掌握Hadoop平台的全部数据,如图6,Hadoop平台系统数据的键值对等信息就无法进行观测。观测得出结果后,系统会自动生成相关文件记录,文件生成在第一步设置的路径中。使用者可以使用软件对该文件进行读取,得到直观的模拟演算信息。

3.3  优化模块设计

递归随机搜索算法需要拥有明确的样本区间,如果样本区间过大就会对系统资源造成不必要的损耗。这里可以通过配置参数的特性进行递归随机搜索算法样本区间的界定。如,io.sort.record.percent可以通过界定百分比区间进行区间划分;io.sort.mb的取值范围是服务器缓存大小到1,可以以此进行区间界定。金融机构大数据抓取软件系统优化模块的流程图如图,7所示。

金融机构大数据抓取软件系统优化模块的类图如图8所示。

金融机构大数据抓取软件系统优化模块的入口是Driver类的Job优化工具。通过使用Job工具优化类达到读取前配置参数和读取CPU相关指标的目的。

智能作业优化:类对系统相关配置参数进行调取,利用参数特征,使用递归随即搜索算法确定适配区间。通过使用Recur sive Random Seash类对适配区间进行随机数据抓取,利用金融机构大数据抓取软件系统预测模块对抓取数据进行相关预测,最小值为系统任务执行时间最短值,即最优配置参数。

利用Export XML类的Export XML,达到将数据输出形成XML文件的目的。

4  系统性能分析及测试

4.1  测试环境及软件平台

测试环境如表1所示。

4.2  系统性能分析

本文以金融机构大数据抓取软件系统预测模块的特性作为研究和设计测试用例的出发点,通过对参数配置、数据输入大小和服务器个数三个方面进行具体测算,得出相应测算结果。将测算结果相互比较得出较优值。经过测试可以得出以下结果:金融机构大数据抓取软件系统执行模块相关输入数据量调整后,平台任务输入数据量调整后实际执行时间和输入数据量调整后虚拟执行时间的差别在运行误差区间内,差别很小,预测结果可以作为依据正常使用。

表3为第三个测试用例。旨在对金融机构大数据抓取软件系统预测模块Hadoop集群服务器个数调整后任务执行时间的虚拟结果测算。利用平台任务Hadoop集群服务器个数调整实际执行时间和Hadoop集群服务器个数调整后虚拟执行时间的比较判断预测结果的准确度。

4.3  递归随机搜索算法在银行大数据系统中的导入应用

(1)导入数据。通过应用递归随机算法原理导入,得出的银行信贷数据一共有256条数据,每条数据包括5个属性,分别是月收入、存款总额、客户信用、客户贡献度、是否贷款。其中客户信用和客户贡献度字段有两种取值:“一般”和“高”;是否贷款字段也有两种取值,分别用“Y”表示同意貸款,“N”表示不同意贷款。数据导入后如图9所示。

(2)建立数据挖掘模型数据导入后,根据对数据的分析,我们得知下面的工作就是通过建立递归随机算法模型对以上数据进行分类,将“是否贷款”字段定义为输出属性,其它字段为输入属性,所得数据流图如图10所示。

我们通过“是否贷款”节点可以查看“是否贷款”字段中值的分布比例,如图11所示。

执行数据流图中的递归随机算法节点,得到一些决策规则,如图12所示。

通过对上图的分析,我们可以将这些规则解释为:

(1)对月收入低于6000元的客户,不提供贷款。

(2)对月收入高于6000元,存款总额低于100000元的客户不提供贷款。

(3)对月收入高于6000元,存款总额高于100000元的但客户贡献度一般的客户不提供贷款。

(4)对月收入高于6000元,存款总额高于100000元的但客户贡献度高的客户提供贷款。

(5)对月收入高于6000元,并且客户信用高的客户提供贷款。

对这些规则进行分析,管理人员通过以上规则可以将信贷客户分类,以后审批贷款时可以将客户数据和已分类的数据进行比较,就可以更好、更快的进行决策判断。

4.4  测试结果

最后生成的数据报表如下表4所示。

通过测试对比可以看出,优化后的数据抓取时间比原来的时间总体减少了5秒以上,优化有效。如图13。

后台作业PrepareCleanup, kinit对系统做了初始化设置,然后分别对各张临时表的历史数据进行清理,共耗时41秒;LoadTradedata节为数据装载总控作业,负责导入线上线下的交易流水数据,共耗时27秒;fetchCCBData节作业负责获取增量数据更新,若无更新则直接进行下阶段处理,此处耗时28秒;etl_stage节为ETL处理流程,对基础数据进行清洗、转换等预处理,耗时4分36秒;loadStaticData节为静态数据装载作业,运行耗时26秒;analyticsMonthly节为月报计算作业,调用Hive进行数据计算,共耗时11分30秒;genReport节为报表结果汇总作业,运行耗时2分14秒。经过测试后,在选用服务器为Intel Atom D510时,银行大数据抓取软件系统优化模块在Hadoop集群上开展优化,系统任务执行时间变短,比原来的数据时间缩短了5%以上,优化有效。运行结果如图14。

5  结论

大数据系统软件可以较好的提升企业大数据的分析效率,對企业大数据的应用具有重要的意义。不仅利于降低大数据系统使用者要求,降低使用者使用成本和时间成本,还对于大数据系统自身提升系统运算能力、储存优化、寻找系统优化途径等方面也有着显著的作用。本文的创新之处在于使用了递归算法进行设计,递归算法适合于大型数据的抽样计算,可以保持较为稳定的速度,同时计算效率相较于传统计算方法要快很多。该算法在大数据平台中应用还较少,所以是一个显著特色。

参考文献

[1] Michael Gerndt, Bernd Mohr, Jesper Larsson Tr?ff. A test suite for parallel performance analysis tools[J]. Concurrency and Computation: Practice and Experience, 2017, 19(11).

[2] John Mellor-Crummey, Robert J. Fowler, Gabriel Marin, Nathan Tallent. HPCVIEW: A Tool for Top-down Analysis of Node Performance[J]. The Journal of Supercomputing, 2015, 23(1).

[3] Shajulin Benedict. Performance issues and performance analysis tools for HPC cloud applications: a survey[J]. Computing, 2013, 95(2): 42-25.

[4] 袁芬, 徐从富. 基于机会协作的农业物联网大数据处理系统设计[J]. 计算机应用, 2014, 34(07): 2136-2139.

[5] 张钢, 谢晓珊, 黄英, 王春茹. 面向大数据流的半监督在线多核学习算法[J]. 智能系统学报, 2014, 9(03): 355-363.

[6] 程学旗, 靳小龙, 王元卓, 郭嘉丰, 张铁赢, 李国杰.金融机构大数据抓取软件系统和分析技术综述[J]. 软件学报, 2014, 25(09): 1889-1908.

[7] 张滨, 乐嘉锦. 基于列存储的MapReduce并行连接算法[J]. 计算机工程, 2014, 40(08): 70-75+85.

[8] 方巍, 郑玉, 徐江. 大数据: 概念、技术及应用研究综述[J]. 南京信息工程大学学报(自然科学版), 2014, 6(05): 405-419.

[9] 宫宇新, 何满潮, 汪政红, 尹雨婷. 岩石破坏声发射时频分析算法与瞬时频率前兆研究[J]. 岩石力学与工程学报, 2013, 32(04): 785-799.

[10] 覃雄派, 王会举, 李芙蓉, 李翠平, 陈红, 周烜, 杜小勇, 王珊. 数据管理技术的新格局[J]. 软件学报, 2013, 24(02): 175-197.

[11] 李从宏.基于递归调用技术的关键字搜索软件设计[J].电脑编程技巧与维护, 2018(12): 60-62.

[12] Sato Wataru, Kochiyama Takanori, Uono Shota, Usui Naotaka, Kondo Akihiko, Matsuda Kazumi, Usui Keiko, Toichi Motomi, Inoue Yushi. Analyzing Neural Activity and Connectivity Using Intracranial EEG Data with SPM Software[J]. Journal of visualized experiments : JoVE, 2018(140).

[13] Polasky Daniel A, Dixit Sugyan M, Fantin Sarah M, Ruotolo Brandon T. CIUSuite 2: Next-Generation Software for the Analysis of Gas-Phase Protein Unfolding Data[J]. Analytical chemistry, 2019.

[14] Cypress Brigitte S. Data Analysis Software in Qualitative Research: Preconceptions, Expectations, and Adoption[J]. Dimensions of critical care nursing : DCCN, 2019, 38(4).

[15] Grüning Bj?rn A, Lampa Samuel, Vaudel Marc, Blankenberg Daniel. Software engineering for scientific big data analysis[J]. GigaScience, 2019, 8(5).

[16] Hershman Ronen, Henik Avishai, Cohen Noga. CHAP: Open- source software for processing and analyzing pupillometry data[J]. Behavior research methods, 2019, 51(3).

[17] Jair Kamwing, McCann Chase D, Reed Harrison, Castel Amanda D, Pérez-Losada Marcos, Wilbourn Brittany, Greenberg Alan E, Jordan Jeanne A. Validation of publicly- available software used in analyzing NGS data for HIV-1 drug resistance mutations and transmission networks in a Washington, DC, Cohort[J]. PloS one, 2019, 14(4).

[18] Jones-Diette Julie S, Dean Rachel S, Cobb Malcolm, Brennan Marnie L. Validation of text-mining and content analysis techniques using data collected from veterinary practice management software systems in the UK[J]. Preventive veterinary medicine, 2019, 167.

[19] Buckle Adam, Gilbert Nick, Marenduzzo Davide, Brackley Chris A. capC-MAP: software for analysis of Capture-C data[J]. Bioinformatics (Oxford, England), 2019.

[20] Asif Muhammad Khan, Nambiar Phrabhakaran, Ibrahim Norliza, Al-Amery Samah M, Khan Iqra Muhammad. Three- dimensional image analysis of developing mandibular third molars apices for age estimation: A study using CBCT data enhanced with Mimics & 3-Matics software[J]. Legal medicine (Tokyo, Japan), 2019, 39.

[21] ]Schrode Benedikt, Pachmajer Stefan, Dohr Michael, R?thel Christian, Domke Jari, Fritz Torsten, Resel Roland, Werzer Oliver. GIDVis:a comprehensive software tool for geometry- independent grazing-incidence X-ray diffraction data analysis and pole-figure calculations[J]. Journal of applied crystallography, 2019, 52(Pt 3).

[22] S. Jovanovic, D. Jovanovic, G. Bratic, M. A. Brovelli. ANALYSIS OF FREE ROAD DATA IN TANZANIA, UGANDA AND KENYA USING FREE AND OPEN SOURCE SOFTWARE[J]. ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2019, XLII-2/W13.

[23] Brigitte S. Cypress. Data Analysis Software in Qualitative Research: Preconceptions, Expectations, and Adoption[J]. Dimensions of Critical Care Nursing, 2019, 38(4).