大数据spark“蘑菇云”行动代码学习之adclickedstreamingstats模块分析

author author     2022-08-08     151

关键词:

2016年大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析


    系统背景:用户使用终端设备(IPAD、手机、浏览器)等登录系统,系统采用js脚本发送用户信息和广告点击信息到后台日志,进入flume监控,通过kafka消息中间件传输数据,由Spark Streaming消费后将信息存储到后台。本模块主要就是实现将kafka发送的信息进行过滤,动态更新黑名单,生成有效的广告点击数据,形成广告点击趋势,将相关信息通过数据库连接池写入数据库MySql

 

    实现思路:由于kafka传输的广告点击数据中有一些是无效数据,需要根据一定的规则进行过滤(本方案采取简单的黑名单过滤的方式进行过滤,还可以采用机器学习的方式进行过滤——可以做一个大课题研究、大数据黄金岗位、下一步重点方向)。

 

在形成有效的广告点击数据后,按照天为单位,对广告点击次数进行累计,同时按照一天点击次数超过?次形成新的黑名单,持久化到后台。

 

对广告按照时间、省份、城市进行点击次数更新,然后插入或更新到MySql数据库。

 

DataFrameGroupBy,计算出每天每个省份的Top5排名的广告。

 

采用窗口函数reduceByKeyAndWindow计算过去半个小时内广告点击的趋势。

 

    具体的流程如下:

  1. AdClickedStreamingStats模块流程图


  2. 初始化Spark的运行环境,加载必要的JAR包


  3. 设置kafka的参数(broker地址列表、Topics)


  4. 从kafka获取数据(time+IP+UserID+AdID+province+city)


  5. 从数据库获取黑名单信息(UserID),生成黑名单RDD,格式为map(UserID,true)


  6. 将广告点击数据按(UserID,字串流)形成广告点击RDD


  7. 广告点击RDD和黑名单RDD左外连接,形成UserID,(字串流,true或者为空)的RDD


  8. 从新的RDD过滤出用户名不在黑名单上的广告点击RDD(UserID,字串流)


  9. 累加有效的广告点击次数RDD

    ("time_IP_userID_adID_province_city",long)


  10. 根据一天内的点击次数,来过滤出有效的广告点击数

    (代码中一天内大于1次就过滤掉了?)


  11. 形成用户广告点击ListBuffer


  12. 插入或者更新用户广告点击数据

    (当天已有记录则将广告点击数累加后更新,否则插入)


  13. 根据当天、用户、广告,获得总的点击数,

    如果大于81次,形成新的黑名单


  14. 根据用户ID,进行黑名单去重操作并写入


  15. 按照日期+广告ID+省+市,形成新的广告点击RDD


  16. updateStateByKey,更新状态?


  17. 写入或更新广告点击数据(日期+广告+省+市+点击数)


  18. 按省进行Group by,然后查询出点击排名前5的广告


  19. 将当天+广告的TOP5数据库清空,然后插入新的数据


  20. 计算过去半小时广告点击的趋势

    形成(广告ID+Time)的DStream


  21. 根据滑动窗口(半小时、5分钟),计算出广告点击趋势


  22. 写入广告点击趋势数据


大数据spark“蘑菇云”行动之sparkstreaming消费flume采集的kafka数据directf方式

  王家林老师的课程:2016年大数据Spark“蘑菇云”行动之sparkstreaming消费flume采集的kafka数据Directf方式作业。  一、基本背景  Spark-Streaming获取kafka数据的两种方式Receiver与Direct的方式,本文介绍Direct的方式。... 查看详情

spark学习之处理数据倾斜(代码片段)

🐥今天我们将对大数据计算管理部分的数据倾斜做一个总结,本文讲述主要是以spark计算引擎主,相信我,这可能是你看见过最详细的数据倾斜解决方案。对往期内容感兴趣的同学可以参考如下内容👇:链接:sp... 查看详情

大数据学习之scala语言基本语法学习36

...成了面向对象和函数式编程的特点。运行在JVM(jdk)。大数据中为什么学习scala?spark是scala语言编写。python写spark挺好的java写spark很糟糕(代码实在是太多了)scala写spark很完美二:scala特点1)优雅框架设计中第一个要考虑的问题就是... 查看详情

spark学习之处理数据倾斜

🐥今天我们将对大数据计算管理部分的数据倾斜做一个总结,本文讲述主要是以spark计算引擎主,相信我,这可能是你看见过最详细的数据倾斜解决方案。对往期内容感兴趣的同学可以参考如下内容👇:链接:sp... 查看详情

spark学习之作业优化(代码片段)

...,我们学习了spark的语法、资源调度、sql语法优化和数据倾斜的技巧,今天我们来学习spark中的作业优化,也就是job优化。对往期内容感兴趣的同学可以参考👇:链接:spark学习之处理数据倾斜.链接:spark学习之sparksql... 查看详情

王家林大数据spark超经典视频链接全集[转]

压缩过的大数据Spark蘑菇云行动前置课程视频百度云分享链接链接:http://pan.baidu.com/s/1cFqjQuSCALA专辑Scala深入浅出经典视频链接:http://pan.baidu.com/s/1i4Gh3Xb密码:25jcDT大数据梦工厂大数据spark蘑菇云Scala语言全集(持续更新中)http://... 查看详情

spark学习之作业优化

...,我们学习了spark的语法、资源调度、sql语法优化和数据倾斜的技巧,今天我们来学习spark中的作业优化,也就是job优化。对往期内容感兴趣的同学可以参考👇:链接:spark学习之处理数据倾斜.链接:spark学习之sparksql... 查看详情

spark-core学习之二spark-core(代码片段)

...spark-1.6一、RDDRDD(ResilientDistributedDataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合 查看详情

大数据(8i)spark练习之topn(代码片段)

文章目录需求:每个城市的广告点击Top2SparkCore实现SparkSQL实现需求:每个城市的广告点击Top2SparkCore实现//创建SparkConf对象,并设定配置importorg.apache.spark.SparkConf,SparkContextvalconf=newSparkConf().setAppName(" 查看详情

spark学习之sparksql语法优化(代码片段)

🐹上一章的学习中,我们学习了spark的资源调度进行了学习,今天我们要学习的内容是sparksql语法优化部分,对往期内容感兴趣的同学可以参考👇:上一篇:spark学习之资源调度.上一篇:spark学习之执行计划explain.h... 查看详情

大数据学习之hadoop生态圈(代码片段)

...6、Hadoop的优点及缺点7、Hadoop组成前言上篇文章讲述了大数据的发展及历程,这篇文章就带大家进入大数据的技术应用,以下文章观点或描述如有错误,请指正!!1、什么是hadoop广义&#x 查看详情

spark学习之执行计划explain(代码片段)

...划,在学习执行计划之前,我们需要了解spark中的代码是如何执行的,学习代码的执行过程有助于我们加深对spark的理解,对往期内容感兴趣的同学可以查看👇:hadoop专题:hadoop系列文章.spark专题:spark系列文章.fli... 查看详情

大数据学习之hdfs的工作机制07

1:namenode+secondaryNameNode工作机制2:datanode工作机制 3:HDFS中的通信(代理对象RPC)下面用代码来实现基本的原理1:服务端代码packageit.dawn.HDFSPra.RPC.server;importjava.io.IOException;importorg.apache.hadoop.HadoopIllegalArgumentExce 查看详情

大数据学习之hdfs基本api操作(上)06(代码片段)

1packageit.dawn.HDFSPra;23importjava.io.FileNotFoundException;4importjava.io.IOException;5importjava.net.URI;6importjava.net.URISyntaxException;7importjava.util.Arrays;89importorg.apache.hadoop.conf.C 查看详情

spark-core学习之三spark集群搭建(代码片段)

环境  虚拟机:VMware10  Linux版本:CentOS-6.5-x86_64  客户端:Xshell4  FTP:Xftp4  jdk1.8  scala-2.10.4(依赖jdk1.8)  spark-1.6组建方案:master:PCS101,slave:PCS102、PCS103搭建方式一:Standalone步骤一:解压文件改名[[email protect... 查看详情

深度学习之deeplearning4j预测股市走向(代码片段)

...篇,预测花的类型,是没有用到中间件的,实际情况是,数据量是非常大的,所以不实用,这次使用DeepLearning4j来预测股市走向,后续加上spark。代码如下:publicclassDailyData//开盘价privatedoubleopenPrice;//收盘价privatedoublecloseprice;//最... 查看详情

spark学习之并行度并发core数和分区的关系

...的问题我放在了下面的链接👇:链接:2022百度大数据开发工程师实习面试经历.🍀我将先对并行和并发的基本定义开始讲起,然后介绍spark中是如 查看详情

大数据实习之spark

ApacheSpark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势。首先,Spark为我们提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表... 查看详情