
大数据开发项目实战-广电大数据用户画像——实时统计订单信息.pptx
16页单击此处编辑母版标题样式,单击此处编辑母版文本样,广电大数据用户画像,实时统计订单信息,1,Kafka,安装和配置,目录,实时统计目标,2,实时统计订单信息,3,要求每,30min,统计一次新增营业额、新增订单数、新增有效订单数,因为有一些订单是免费的(如,cost,字段为空),所以这些订单是无效订单此外,需要统计总订单数、有效订单总数、总营业额将这些指标实时更新到,Redis,中此外,要保存整点的总订单数、有效订单总数、总营业额的对应数值避免重复统计数据,保证结果的准确性实时统计目标,1,Kafka,安装和配置,目录,实时统计目标,2,实时统计订单信息,3,因为,CDH,的,parcel,包没有包含,Kafka,,所以需要单独加载,Kafka,的,parcel,包到,Cloudera Manager,中,,parcel,包的安装步骤如下从,Cloudera,官网上下载,Kafka,的,parcel,相关资源,需要注意的是,,Kafka,的版本要与,CDH,的版本相对应根据项目中的集群环境,下载,KAFKA-2.2.0-1.2.2.0.p0.68-el6.parcel,、,KAFKA-2.2.0-1.2.2.0.p0.68-el6.parcel.sha1,、,manifest.json,。
此外,需要下载,KAFKA-1.2.0.jar,文件Kafka,安装和配置,在,Cloudera Manager,的,server,节点上配置相关资源因为本项目中,CDH,集群的,Cloudera Manager,是安装在,server1,上的,所以在,server1,上把,KAFKA-2.2.0-1.2.2.0.p0.68-el6.parcel,、,KAFKA-2.2.0-1.2.2.0.p0.68-el6.parcel.sha1,、,manifest.json,文件添加到,/opt/cloudera/parcel-repo,目录下,并把,KAFKA-2.2.0-1.2.2.0.p0.68-el6.parcel.sha1,重新命名为,KAFKA-2.2.0-1.2.2.0.p0.68-el6.parcel.sha,,覆盖,/opt/cloudera/parcel-repo/,目录下的,manifest.json,另外,需要把,KAFKA-1.2.0.jar,添加到,/opt/cloudera/csd,目录下Kafka,安装和配置,登录,Cloudera Manager,的管理界面,选择“主机”“,Parcel,”选项,在新的界面中单击“检查新,Parcel,”按钮,此时弹出,2.2.0-1.2.2.0.p0.68,未分配的提示,单击“分配”按钮,分配完成后单击“激活”按钮。
Kafka parcel,包激活成功后的界面,Kafka,安装和配置,Kafka,的,parcel,包添加成功后,需要在,Cloudera Manager,中安装,Kafka,集群单击“添加服务”按钮,选择“,Kafka,”选项,单击“继续”按钮,选择,Kafka Broker,的安装节点,选择安装在,node2,、,node3,、,node4,上因为,Kafka MirrorMaker,此处用不到,所以不用安装,单击“继续”按钮即可完成安装如下图,,Kafka,集群已成功安装在,node2,、,node3,、,node4,上Kafka,安装和配置,1,Kafka,安装和配置,目录,实时统计目标,2,实时统计订单信息,3,模拟订单实时数据流的主要思路是通过使用,Kafka,生产者逐行读取订单数据文件,并向订单主题发送数据为了模拟正常的订单产生速率,在生产者每次发送完消息后,线程随机睡眠,0,10s,模拟订单实时数据流产生的具体过程如下在,node2,创建一个有,3,个副本及,3,个分区的,Kafka,主题,其名称为,order,根据模拟的思路,使用,Java,语言实现,Kafka,生产者。
将代码编译成,user_profile_project-1.0.jar,包并上传到,CDH,集群的,node1,节点的,/root,目录下启动,Kafka,生产者订单实时数据流产生,为了检验程序是否可以正常运行,需要启动消费者消费,order,主题成功启动消费者后,当,order,主题产生数据时,消费者会实时从该主题中获取数据,不断地在屏幕上输出订单记录订单实时数据流产生,基于实时统计订单信息的业务需求,给出实时统计订单的完整计算代码为了避免出现重复消费的问题,使用,Redis,来保存消费位置程序在启动时,先从,Redis,中读取上一次的消费位置,每次成功消费消息后,将消费记录的下标更新到,Redis,中为了减少在,Spark,集群中配置外部依赖包,计算代码编译封装,user_profile_project-1.0.jar,的,JAR,包时,将,Redis,依赖添加到,JAR,包中,如下图Spark Streaming,实时统计订单信息,针对计算代码编写测试代码在执行测试代码的同时,需要启动模拟生产,Kafka,的订单数据源程序启动程序后,可以在,Spark,监控界面中看到提交的任务,ID,,即查看实时统计订单任务,如下图。
Spark Streaming,实时统计订单信息,程序启动后,通过每隔,30min,消费,Kafka order,主题的订单数据源来统计订单的相关指标,并更新到,Redis,中Spark Streaming,的部分任务日志,如下图Spark Streaming,实时统计订单信息,任务运行一段时间后,查看,Redis,订单统计信息及消费,Kafka order,主题的,offset,,如下图Spark Streaming,实时统计订单信息,先通过,Java,程序读取静态订单数据模拟订单数据的产生过程;,再通过,Kafka,接收订单数据到主题中;,最后通过,Spark Streaming,作为消费者消费,Kafka,主题中的数据,实现订单信息的实时统计,并将结果写入,Redis,。
