APP下载

基于Hadoop的竞品分析系统的实现与优化

2019-05-22陈城王同喜

电脑知识与技术 2019年10期
关键词:分布式大数据

陈城 王同喜

摘要:在现如今互联网兴盛的时代,大数据能通过对数据的计算和分析体现出其数据的价值性,从而高效而准确地契合用户的需求。在其背景下,竞品分析行业模式也正由传统的P2P模式向多元化模式发展,其搜索引擎具有提供帮助广告商投放广告的支援系统。在Hadoop环境下,使用MapReduce框架进行计算,实现对离线数据的计算和分析,采用面向对象的方法编程,结合SSM 的web开发来进行需求的分析与功能的设计与实现。其主要功能包括有关键词搜索、域名搜索、域名竞争对手、关键词优化等功能。在系统需求分析的基础上,整个系统包括数据采集、清洗、过滤以及可视化,系统测试后,对集群进行优化,其中还通过研究粒子群算法实现对MapReduce的优化,最终实现全部功能。

关键词:竞品分析;大数据;分布式;MapReduce;粒子群

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2019)10-0215-03

开放科学(资源服务)标识码(OSID):

1 引言

目前的竞品分析市场是在现有的或潜在的竞争产品的优势和劣势的基础上进行评价,在传统模式中,需要经过相关专业的人员对竞品进行实地调查、分析、制定、调整等过程,其烦琐又耗时长。然而,随着科学技术的飞速发展,大数据技术已经深入到深入的各个领域,该竞品分析系统选择使用Hadoop技术对海量数据进行清洗过滤、存储和分析,便于帮助广告商投放广告,从而提高广告的转化率。

2 相关技术的基本介绍

2.1 HADOOP的相关介绍

Apache Hadoop是一种开源框架,支持海量数据存储和离线计算,主要由HDFS分布式文件系统、MapReduce框架和Hbase数据库三大核心组件组成。

2.2 粒子群算法的实现原理

假设在一个[D]维空间中,有[m]个粒子组成一个粒子群,其中第[i]个粒子的空间位置为[Xi=(xi1,xi2,xi3,...,xiD);i=1,2,3,...,m],这个是优化问题的一个潜在解,并将其带入优化目标函数中进行计算出其相应的适应值,根据适应值可衡量[xi]的优劣;第[i]个粒子所经历的最好位置称其个体历史Best位置,记为[Pi=(pi1,pi2,pi3,...,piD);i=1,2,...,m],相应的适应值为个体最好适应值[Fi];同时,每个粒子还具有各自的飞行速度[Vi=(vi1,vi2,vi3,...,viD);i=1,2,...,m]。所有粒子经历过的位置中的最好位置称为全局历史最好位置,记为[Pg=(pg1,pg2,pg3,...,pgD)],其适应值为全局历史最优适应值。在算法中,对第[n]代粒子,其第[d]维[(1≤d≤D)]元素速度、位置更新迭代如式[(1)]、[(2)]:

3 系统的设计

3.1 系统的总体结构图

该系统主要是由两个子模块组成,一个是在Hadoop环境下提供对数据进行处理和分析的模块,一个是基于B/S架构实现的WEB提供数据可视化模块。如图1:

3.2 系统流程图

4 系统功能的实现

4.1 数据的清洗过滤

数据清洗和过滤是对数据进行重新审查和校验过程,目的在于删除重复信息、纠正存在的错误,并提供数据的一致性。

4.1.1 第一次迭代实现

主要是数据清洗,清洗异常的数据,进而从原始数据中抽取相关关键词、SEM(Search Engine Marketing,搜索引擎营销)广告和SEO(Search Engine Optimization,搜索引擎优化)广告等关键信息。

(1)根据数据抓取状态确定是否正常,或者关键信息是否为空等来清洗异常数据;

(2)通过对解析后的数据文件进行读取其中的关键词和SEM广告和SEO广告信息;

(3)数据抽取采用模板模式。

4.1.2 第二次迭代实现

主要是合并当次解析相关关键词、关键词下的SEM和SEO广告,并保存到数据库中。

(1) 合并当次解析相关关键词和SEM、SEO广告,并按照搜索引擎、地域等标准进行归类合并;

(2) 连接Hbase数据库,把当次的结果和历史结果进行汇总合并,最后更新数据库。

4.1.3 第三次迭代实现

主要是解析域名、域名下的SEM和SEO广告、域名下的相关关键词以及域名下的竞争对手,并保存到数据库中。

(1)两个域名都关联一个同一个关键词,即存在竞争关系,找出所有存在竞争关系的域名;

(2) 合并当次解析域名、域名下的相关广告、域名下的相关关键词以及域名下的竞争对手,并按照搜索引擎、地域、域名等标准进行归类合并;

(3)连接Hbase数据库,把当次的结果和历史结果进行汇总合并,最后更新数据库。

4.2 数据的可视化

对于该系统,数据的可视化界面如图3:

5 系统的优化

5.1 从架构设计进行优化

对于查询性能而言,原始的查询方式是基于HBase,发现查询的数据比较集中,效率低下,单一使用HBase提供所有数据查询支撑给WEB端,导致HBase的压力大。而Redis是基于内存的分布式数据库,具有高效读写、缓存策略的特性,針对这一特性,在HBase上架设了一个Redis做中间数据缓存,系统数据从缓存中查询,测试后,查询效率提高了,HBase的压力也相对减少了。

5.2 从算法角度进行优化

(1)通过研究基本粒子群算法,并将其运用到MapReduce中对其集群系统进行调优。鉴于该竞品分析系统的特性,优化整个系统,其主要是优化MapReduce,亦是使每个Reduce处理的Value个数基本相等,使每个job的总的运行时间最短;即求每个Reduce处理的所有Value值个数的最大值的最小值。即[f=min(max(reduce(i))),i=1,2,3,...,n],n为Reduce的个数,[reduce(i)]为第[i]个Reduce处理的Value的和。[reduce(i)=sum(size(value(j)))],[value(j)],为输入第[j]个Key的Value的个数。Hadoop的Map输出是的形式,Hadoop的Partition的输入是 Map的输出,Partition的输出是形式。在每一个Map结束后运行一次粒子群算法,将本次的发送到不同的Reduce,达到局部最优。每个Map都局部最优,最后整个MapReduce就会达到全局最优。这样可以尽可能让每个Reduce处理的数据达到负载均衡,从而达到对整个竞品分析系统的优化。如图4。

(2)如图5所示,经过比较,在使用粒子群算法優化后,发现Job运行时间相比原始的运行时间越来越短。

6 总结

传统的竞品分析行业的发展模式已不能满足目前的需求,而采用分布式计算服务模式,能满足该系统对海量数据的计算、存储和分析。

在该系统的设计与实现过程中,难点如下:

(1)从不同的角度对系统进行优化;

(2)使用智能算法优化时,如何区分每个Map是一个难点,并将此Map处理的Key取Hash存储在Redis中,然后在此Map结束后的Partition阶段取出对应的数据进行计算。其实MapReduce底层实现的过程中,每个Map就是一个多线程,通过获取每个线程的ID从而区分每个Map。

参考文献:

[1]陈琳.浅论Hadoop平台在大数据中的应用[J].太原学院学报,2017,26(13):56-60.

[2]周锋,李旭伟.一种改进的MapReduce并行编程模型[J].科协论坛,2014(15):65-70.

[3]郁磊.MATLAB智能算法30个案例分析[M].北京:北京航空航天大学出版社,2015:45-107.

[4]Tom White,Hadoop权威指南[M].4.王海.北京:清华大学出版社,2017:78~314.

[5]曹英.大数据环境下Hadoop性能优化的研究[D].大连海事大,2013.

[6]王婧.基于粒子群优化算法的集群调度策略研究掘[D].中国石油大学,2011.

[7]红杨勇,任淑霞,冉娟.基于粒子群优化的k-means改进算法实现Web日志挖掘[J].计算机应用,2016,12(26):29~35.

[8]陶永才,石磊.异构资源环境下的MapReduce性能优化[J].小型微型计算机系统,2013,35(02):287-292

[9]张宏伟.基于MapReduce的遗传算法在组合优化问题中的研究[D].内蒙古农业大学,2016.

[10]张志宇.粒子群优化算法的改进研究及其应用[D].计算机科学,2017,46(15):53-70.

[11]冯新建.基于MapReduce的迭代型分布式数据处理研究[D].山东大学,2017.

[12]Shuihua Wang,Yudong Zhang.Feed-forward neural network optimized by hybridization of PSO and ABC for abnormal brain detection[J].Int. J. Imaging Syst.Technol,2015,32(2):10-16

【通联编辑:梁书】

猜你喜欢

分布式大数据
基于DDS的分布式三维协同仿真研究
西门子 分布式I/O Simatic ET 200AL