您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 基于大数据的运营商精准营销系统应用研究-林权
理论与算法512016.02、04基于大数据的运营商精准营销系统应用研究林权1,2,卢军1,严雄伟2(武汉邮电科学研究院,湖北武汉,430074;2.武汉虹旭信息技术有限责任公司,湖北武汉,430074)摘要:运营商自身具有大数据的天然优势,为了挖掘海量数据背后隐藏的潜在价值,提出了一种整合分布式消息系统Kafka、分布式流式处理框架Spark、分布式文件系统Hadoop的大数据处理系统,利用K-means聚类算法建立校园学生用户话费消费分类模型。实验结果表明该方法能更加准确地划分用户消费类型,提高运营商的竞争力,证明了本系统的商业价值。关键词:大数据;运营商;K-means算法;数据预处理ResearchonPreciseMarketingSystemApplicationforOperatorsBasedonBigDataLinQuan1,2,LuJun1,YanXiongwei2(1.WuhanResearchInstituteofPostsandTelecommunications,Wuhan,430074,China;2.WuhanHongxuInformationTechnologiesCo.,Ltd,Wuhan,430074,China)Abstract:Operatoritselfhasthenaturaladvantageofbigdata,inordertodiscoverthepotentialvaluesfromthehugeamountsofdata.ThispaperproposedabigdataprocessingframeworkintegratingdistributedmessagesystemKafka,distributedstreamingprocessingframeworkSparkStreaminganddistributedfilesystemHadoop,usingk-meansclusteringalgorithmtoconstructcampusstudentuserconsumptionclassificationmodelbasedonconsumptiondata.Theexperimentalresultsshowthatthismethodcanmoreaccuratelyclassifyuserconsumptiontypes,improvethecompetitivenessofoperators,provethecommercialvalueofthissystem.Keywords:BigData;Operator;K-meansalgorithm;DataPreprocess0引言随着近年来通信和信息全球化技术的快速发展,我国电信行业保持着高速发展,运营商完成重组之后的市场竞争加剧,通信市场整体已跨入了成熟期,形成了三足鼎立的良性竞争态势。伴随着4G业务的全面展开,为用户带来了更多的业务应用,同时,随着用户群体越来越向小众化、复杂化发展,用户对多元化业务的需要以及对高质量的信息服务推送的要求也不断提高,这对运营商营销能力提出了新的挑战,故需要在营销方面取得突破。“快速地真正地为客户提供所需要的服务”已经成为运营商营销创新的重点所在。运营商需要转变营销理念,必须依靠先进的技术实现业务的实时精准营销,实现产品、管理及商务模式的创新。改变粗放式营销模式,而向精准的营销模式转变,最终达到“提高运营效率,降低营销运营成本”目标。在大数据时代的背景下,运营商自身具有大数据的天然优势,每天可获取到TB级的信令数据和用户消费数据,其包含用户的基本信息、语音通话数据、短信数据、流量数据等丰富的信息。面对如此海量的信令数据和用户消费数据,如何利用先进的技术挖掘分析其背后隐藏的潜在价值,已经成为运营商“去管道化”的重要途径。因此,本文在运营商获取到的海量数据及大数据相关技术基础之上,利用某地区高校学生用户的话费消费信息,研究构建运营商针对高校学生用户精准营销的应用系统,构建高校学生用户话费消费细分模型,对高校学生用户的消费行为特征进行深入研究分析,针对不同的消费特征用户提出相应的营销策略建议。1总体设计根据大数据相关技术的分析与系统的需求分析,利用以Spark大数据处理平台为基础的数据处理框架,搭建如图1所示的系统整体技术框架。该框架在大数据预处理速度及完全性方面表现的性能很好地满足了本系统的需求。该框架包含数据上报单元、数据解析单元,整合分布式消息系统Kafka、分布式流式处理框架SparkStreaming、分布式文件系统HDFS来处理数据源信息,使用存储单元存储数据。本框架包括接收数据源文件的接口机以及与之相连的Kafka集群、Spark集群、Hadoop集群。接口机包含有文件轮询模块、文件解析模块、数据缓存模块。接口机是一种运行在FTP服务器上的软件。每台FTP服务器上都会运行这个软件。其包含的模块有文件轮询模块、文件解析模块、数据缓存模块。其中:1)文件轮询模块定时扫描ftp目录,获取文件列表,发送至文件解析模块;2)文件解析模块解析文件内容并将其格式化,发送至数据缓存模块;3)数据缓存模块通过Zookeeper连接Kafka集群,将数据批量写入集群中缓存。Kafka集群是由N台安装有Kafka开源消息系统的Linux服务器组成,每台服务器称为Kafka集群的一个节点,编号分别为Kafka节点1、Kafka节点2、……和Kafka节点N,其中N为DOI10.16520/j.cnki.1000-8519.2016.04.0212016-04-0615:31:32理论与算法522016.02、04自然数,各节点之间使用Zookeeper协调管理。Spark集群是由多台安装有Spark开源软件的Linux服务器组成,其中一台服务器作为Spark主节点,其它N台服务器作为Spark工作节点,编号分别为Spark工作节点1、……和Spark工作节点N,其中N为自然数。Spark主节点包含SparkStreaming控制模块,Spark工作节点包含预处理模块和数据分析模块,程序的模块有SparkStreaming控制模块、预处理模块和数据分析模块,程序运行时,SparkStreaming控制模块运行在Spark主节点上,预处理模块和数据分析模块运行在工作节点上。1)SparkStreaming控制模块读取Kafka集群中的数据,生成预处理任务分发给工作节点,自动控制预处理日志,写入HDFS;2)各个预处理模块按照指定的流程处理数据,最终写入HBase和Hive;3)数据分析模块对HBase和Hive的数据进行聚类分析。Hadoop集群是由多台安装有Hadoop开源软件的Linux服务器组成,每台服务器称为Hadoop集群的一个节点,编号分别为图1系统总体结构图Fig.1Structurediagramofthesystem理论与算法532016.02、04Hadoop节点1、Hadoop节点2、……和Hadoop节点N,集群的每个节点都有预处理的HDFS日志存储目录和Hive数据仓库。2系统数据预处理由于在数据源文件当中可能有不一致的、重复的数据,而且需要将某些数据格式数值进行转换操作,转换为更方便于计算机程序处理的数据形式。如果直接对数据源文件解析得到的数据进行数据分析的话,将会加大工作量,同时影响了效率,而且最后的数据分析结果会存在误差导致得到错误的分析结果。因此,在进行数据分析之前需要对原数据进行一个数据预处理,数据预处理包括数据属性选择、去除不完整数据和数据转换等程序。2.1数据预处理的总步骤数据预处理的总步骤如下:1)分别搭建Kafka集群、Spark集群、Hadoop集群,在Kafka集群上手动创建Topic(Kafka主题),用于接收数据,并对数据进行分区;2)数据源文件以文件的形式通过FTP的方式上传到接口机指定目录,接口机文件轮询模块定时扫描接口机指定目录,获取目录中的文件列表,按照统一的文本格式发送至文件解析模块;3)数据解析模块按照Kafka支持的数据格式解析文件并格式化其内容,将其发送至数据缓存模块,数据缓存模块通过Zookeeper连接Kafka集群并将数据发送至Kafka指定的Topic;4)指定HDFS的目录为SparkStreaming的检查点目录,保存SparkStreaming处理的日志;5)Spark主节点中的SparkStreaming控制模块通过Zookeeper连接Kafka集群,读取Kafka集群中缓存的数据,存入HDFS日志存储目录,生成预处理任务分发至各个Spark工作节点,并周期性地设置检查点,如果预处理任务执行失败,可以通过读取HDFS存储的日志重新执行任务;6)数据经过处理之后,写入存储中心。2.2SparkStreaming控制模块工作流程SparkStreaming控制模块读取Kafka集群中缓存的数据并生成预处理任务的工作流程如图2所示。具体工作流程如下:1)初始化SparkStreaming,根据Spark集群的服务器配置,指定程序运行的参数,spark.executor.memory(SparkExecutor的内存大小),spark.cores.max(Spark程序能申请的CPU核数),指定hdfs目录为SparkStreaming的checkpoint目录,设置预处理日志存储目录;2)连接Kafka集群Zookeeper,获取Kafka集群的连接;3)循环读取Kafka中的数据;4)如果有数据,执行步骤5);如果没有数据,程序暂停60s,执行步骤3),继续读取Kafka中的数据;5)数据取到之后,会转换成DStream(SparkStreaming特有的数据结构,连续的RDDs,RDD是弹性内存分布式数据集,Spark核心的数据结构);6)对DStream进行repartition(重新分区)操作,减少DStream的分区数,防止空任务或者小任务产生;7)对重新分区的DStream进行mapPartitions(以每个分区为单位对DStream进行map转换)操作。其中mapPartitions的参数为FlatMapFunction(与flatMap转换操作对应的函数,flatMap操作是将数据集先映射后扁平化)。图2SparkStreaming控制模块Fig.2ControlmoduleofSparkStreaming2.3预处理模块处理数据的工作流程在FlatMapFunction方法体中执行数据链式预处理的工作流程如图3所示。FlatMapFunction方法体中执行链式处理:1)解析数据;2)链式处理的第一个步骤,提取,按照对应的规则,从流式数据中提取出有用的信息,如果执行有异常,不进行后续处理,在SparkStreaming控制模块控制下会重新执行步骤2),如果没有异常,执行步骤3);3)链式处理的第二个步骤,清洗,按照指定的规则,清洗掉无用的信息及转换数据格式,如果执行有异常,不进行后续处理,在SparkStreaming控制模块控制下会重新执行步骤3),如果没有异常,执行步骤4);4)链式处理的第三个步骤,入库,数据经过处理之后,写入存储中心,如果执行有异常,在SparkStreaming控制模块控制下会重新执行步骤4),如果没有异常,预处理结束。3K-means聚类算法k-means聚类算法的基本思想是:一般预先设定需要聚类的个数k,k一般取值5-13之间,且为整数,然后根据统计量将数据集划分到这k个簇中,将簇的均值作为簇中心,不断通过迭代理论与算法542016.02、04计算得到使平方误差最小的划分,最后再逐步调整k值,从中发现最理想的簇分类。k-means聚类算法处理过程:首先,设定k的值(目前还没有设定k值的最佳算法,一般通过多次试验来
本文标题:基于大数据的运营商精准营销系统应用研究-林权
链接地址:https://www.777doc.com/doc-6406442 .html