1、2023.4电脑编程技巧与维护1概述随着信息网络的高速发展,电商行业蓬勃发展。各行各业都会涉及电子商务,因此电子商务逐渐成为人们常用的商品购买方法,直接影响人们的日常生活。通过对电商用户行为及用户特征的分析与研究来判断其购买偏好,预测其未来的购买行为,从而增加公司收益。电商用户在网站上操作产生的用户行为日志数据规模很大,并且这些数据还会持续增长。通过分析该数据,预测用户未来购买行为成为可能。面对海量数据,用关系型数据库存储已经无法满足相关需求,因此采用大数据技术解决海量数据的存储与计算问题,使该行业进入大数据时代。针对海量数据的存储与计算,大数据技术提供了很好的解决方案,传统的数据库及单机模式
2、已经不再适合,因此采用了分布式的思想。Hadoop就是采用了分布式的思想,在多台电脑上布置Hadoop,当数据体量大时,用其作为存储系统。Mapreduce作为计算引擎负责逻辑运算。Hadoop具有高可靠性、高效性、高扩展性、高容错性等特点,成为大数据重要的框架之一。但其也存在一些问题,例如,用Mapreduce作为计算引擎,并不适用于一些对实时处理要求高的场景。针对此问题,用Spark代替Mapreduce作为计算引擎。通常将两个框架结合使用,它们可以完美地兼容,sparkCore负责做离线计算;sparkStreaming负责实时计算,使Hadoop面临的问题得到很好的解决。用户行为分析是
3、指在用户行为经过采集、清洗、处理后,将部分数据导入HDFS,将部分数据先接入Kaf-ka,再接入Spark、Flink等做离线实时的统计、分析,根据该用户行为分析对产品进行定位,并改进设计;还可以为用户建立精准的用户画像,进行用户推荐等,这有利于公司做出决策、增加公司盈利。2开发技术Hadoop是一个分布式系统基础架构,主要用于解决海量数据的计算分析和海量数据的存储问题。Hadoop主要有3个组件,分别为Yarn、Mapreduce和HDFS。其中,Yarn负责资源的调度与任务的分配;Mapreduce负责业务逻辑计算;HDFS负责海量数据的存储。Hive用于在大体量数据下统计数据,Hive的
4、搭建建立在Hadoop之上,可以将结构化的数据文件映射成一张表,从中查询数据时,通过编写HQL语句,执行相应的Mapreduce程序。Spark是基于内存计算的框架,通过SparkCore、SparkStreaming、SparkSQL等组件来处理数据,而它本身是没有负责存储的机制,因此通常到HDFS中获取数据,数据源即Hadoop中的HDFS。3系统设计该系统分为离线数据分析模块和实时数据流分析模块。3.1离线数据分析模块3.1.1 用户访问行为会话分析用户进入主页后,可能会寻找一些商品,如果这些商品属于某个品类,为了缩小范围,就需要筛选品类或通过输入关键词进行搜索;然后将商品添加购物车,执
5、行下订单等操作;最后对商品进行支付。以上的行为都可以被称作action。session就是某个时间段内,用户从进入网站到做了某些操作、再到退出浏览器的过程。通过对session的分析,例如,session访问步长、时长占比统计;Top10热门品类统计;Top10热门品类活跃session统计等,可基金项目:项目名称:基于深度学习的无人机智能侦测与反制系统研究与开发;项目编号:22GXFW0149。基于 Spark 离线和实时的电商用户行为分析系统顾炜伦,郝东来,陈立(西京学院 计算机学院,西安710000)摘要:随着电商规模的逐渐扩大,传统的 Hadoop 资源利用率和计算速度都无法全面满足发
6、展需求,因此提出将低延时、基于内存计算的 Spark 作为计算引擎。利用 SparkCore、SparkSQL 做离线分析、利用SparkStreaming 做实时分析,将 Hadoop 分布式文件系统(HDFS)作为分布式文件存储,利用 YARN 做资源管理与程序调度,从而完成了一个电商的行为数据分析系统,通过Flume、Kafka 等技术对数据进行采集及存储,利用 Spark 进行数据处理。经过测试,电商用户行为分析系统表现突出,具有良好的应用价值。关键词:Spark 技术;用户行为分析;数据处理132DOI:10.16184/prg.2023.04.0132023.4电脑编程技巧与维护字
7、段名字段类型长度约束对应中文名task_idint11主键taskIDcategory_idint11品类IDclick_countint11点击次数order_countint11下单次数pay_countint11支付次数表2Top10Category表(top10_category)以了解用户的需求,从而改进公司业务。3.1.2页面单跳转化率统计页面单跳转化率就是统计两个页面间跳转的概率,计算该指标,可以知道不同页面对用户的吸引力,从而有目的地加强产品的图案、文案、布局等设计,吸引用户为此买单,这也是开发者追求的一个数据。可以基于此数据,进行更多的计算和分析,随之调整公司战略。页面单跳转
8、化率计算公式,如公式(1)所示:(1)其中:aij为页面i到页面j的转化率;u为无效的访问比例;vi为页面i的访问人数;vj为页面j的访问人数。3.1.3 各区域热门商品统计这个模块主要实现对各个区域内Top3热门商品的统计,即对每个区域的商品按点击数进行倒序排序。这个需求是很有意义的,因为各地的人们由于生活环境不同,喜爱的商品也各不相同。此数据可以让数据分析师、产品经理、公司高层随时可以看到各区域用户的需求,便于他们对公司的产品进行宏观把控,深入了解产品的用户群体,有助于帮助公司管理者做出决策。3.2实时数据流分析模块电商网站中有各种各样的广告,这个模块主要实现实时的将每天对单个广告点击次数
9、大于100次的用户拉黑,且实现对于不合法广告点击流量进行过滤,对过滤后的数据,实时统计每天各省各城市各广告的点击流量。通过这些统计数据,可以了解各广告的受欢迎程度。对于不受欢迎的广告,公司可以根据具体情况进行调整优化。4系统实现4.1系统架构该系统大致分为数据源层、数据处理层、数据访问层和表示层。系统架构如图1所示。数据源层。数据源层中的数据由两部分组成,一部分为离线日志数据,存储在HDFS中;另一部分为实时数据,存储在Kafka集群中。该层中的日志采集工作由Flume完成。其中,监控日志数据由Source节点完成,当有新数据产生时,它会将数据经过Channel节点传输到HDFS或Kafka集
10、群。数据处理层。该层主要由Spark集群组成,其中,SparkCore和SparkSQL负责从HDFS中获取离线数据并进行处理,而SparkStreaming则主要负责消费Kafka中的数据并进行实时处理。数据访问层。该层主要由MySQL集群组成,主要用来存储数据处理层计算后得到的数据,该数据在展示层可视化模块中作为输入数据。表示层。该层主要由Tomcat服务器集群组成,主要用于获取数据库中的数据,并将其可视化。4.2数据库表数据库表一共有12个,分别是Session统计表、Session随机抽取表、Session详细表、Top10Category表、最活跃的10个Session表、页面单跳转
11、化率表、区域Top3产品表、用户黑名单表、用户广告点击表、广告点击实时统计表、Top3热门广告表、滑动窗口广告点击趋势表。部分表如表1表8所示。图1系统架构字段名字段类型长度约束对应中文名task_idint11主键taskIDsession_idvarchar50sessionIDstart_timevarchar50session开始时间search_keywordvarchar50搜索的关键词click_category_idsvarchar50点击的品类ID表1Session随机抽取表(session_random_extract)HDFS提交任务电商用户行为分析可视化平台表示层保存参
12、数展示结果MySQL集群数据访问层读取数据计算结果SparkStreamingSparkCore&SparkSQL数据处理层实时数据离线数据Kafka数据源层1332023.4电脑编程技巧与维护5.6人员管理 ServiceImplServiceDS(demo)publicclassT_renyuanServiceImplextendsServi-ceImpl imple-ments T_renyuanService,DynamicSourceGeneratorIn-terface Autowiredprivate DbLinkService dblinkService;Overridepub
13、lic void create(T_renyuanEntity entity)this.save(entity);Overridepublic boolean update(String id,T_renyuanEntity enti-ty)return this.updateById(entity);Overridepublic void delete(T_renyuanEntity entity)if(entity!=null)this.removeById(entity.getId();6结语在信息技术的发展过程中,中小企业逐步完成并实现信息化,基于Java平台设计、开发的面向中小企业的
14、办公综合管理系统,优化了办公流程,提高了办公效率,为中小企业地发展提供支持。5结语经过对Spark基础理论和电商业务知识的学习与研究,利用Spark对用户行为分析系统进行设计与开发。该系统的设计分为离线与实时两部分,在数据庞大的情况下,使用Spark代替Mapreduce提高了计算的效率,其中离线部分计算了多个相关指标,实时部分使用Kaf-ka接收和传递数据,对广告点击流量的进行统计,将运算结果写入数据库中,并将其展示在系统上。设计了基于Spark的电商用户行为分析系统,良好地解决了数据庞大的问题。参考文献1宋丹丹.基于MapReduce/Spark的大数据样例选择研究D.保定:河北大学,20
15、20.2姜治琦.基于大数据技术的用户行为数据仓库系统的设计与实现D.武汉:华中科技大学,2020.3盘和林,邓思尧,韩至杰.5G大数据M.北京:中国人民大学出版社,2020.字段名字段类型长度约束对应中文名task_idint11主键taskIDcategory_idint11品类IDsession_idvarchar50sessionIDclick_countint11点击次数pay_countint11支付次数表3最活跃的10个Session表(top10_session)字段名字段类型长度约束对应中文名task_idint11主键taskIDconvert_ratevarchar50转化
16、率字段名字段类型长度约束对应中文名task_idint11主键taskIDareavarchar50地区area_levelvarchar50地区等级product_idint11产品IDcity_namesvarchar50城市名字product_statusvarchar50产品状态product_namevarchar50产品名字click_countint11点击次数表4页面单跳转化率表(page_split_convert_rate)表5区域Top3产品表(area_top3_product)字段名字段类型长度约束对应中文名user_idint11主键用户ID字段名字段类型长度约束对应中文名datevarchar50主键日期user_idint11用户IDad_idint11广告IDclick_countint11点击次数表6用户黑名单表(ad_blacklist)字段名字段类型长度约束对应中文名datevarchar50主键日期provincevarchar50省份cityvarchar50城市ad_idint11广告IDclick_countint11点击次数表7用户广告