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

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

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

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

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

由DataFrame的GroupBy,计算出每天每个省份的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. 写入广告点击趋势数据

转载于:https://blog.51cto.com/36006798/1861261

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

  1. 大数据Spark “蘑菇云”行动第103课:Hive源码大师之路第一步:Hive源码思考和解析初体验

    大数据Spark "蘑菇云"行动第103课:Hive源码大师之路第一步:Hive源码思考和解析初体验 老师上课使用的Hive源码下载地址:http://www-eu.apache. ...

  2. 大数据Spark “蘑菇云”行动第76课: Kafka+Spark Streaming+Redis项目实战

    大数据Spark "蘑菇云"行动第76课:   Kafka+Spark Streaming+Redis项目实战 jedis插件 redis <dependency>   ...

  3. 大数据Spark超经典视频链接全集

    论坛贴吧等信息发布参考模板 Scala.Spark史上最全面.最详细.最彻底的一整套视频全集(特别是机器学习.Spark Core解密.Spark性能优化.Spark面试宝典.Spark项目案例等). ...

  4. 光环大数据spark文档_推荐大数据Spark必读书目

    我有一个非常要好的同事,无数次帮我解决了业务上的痛.技术能力很强,业务方面也精通.而且更耐得住加班,并且是自愿加班,毫无怨言.不像我,6点到准时走人了.但就是这么一位兢兢业业的技术人,却一直没有升职加 ...

  5. 【2016年第1期】CCF大专委2016年大数据发展趋势预测—— 解读和行动建议

    中图分类号:TP399 文献标识码:A doi: 10.11959/j.issn.2096-0271.2016012 1 引言 2015中国大数据技术大会(BDTC)于2015年12月10日在北京召开 ...

  6. 推荐大数据Spark必读书目

    点击蓝色"有关SQL"关注我哟 加个"星标",天天与10000人一起快乐成长 我有一个非常要好的同事,无数次帮我解决了业务上的痛.技术能力很强,业务方面也精通. ...

  7. 【BDTC 2016】大数据云服务论坛:云上的大数据探索

    2016年12月8-10日,由中国计算机学会(CCF)主办,CCF大数据专家委员会承办,中国科学院计算技术研究所.中科天玑数据科技股份有限公司与CSDN共同协办,以"聚焦行业最佳实践,数据与 ...

  8. 2016 CCF大数据与计算智能大赛 开源资料整理

    2016 CCF大数据与计算智能大赛 开源资料整理 2016 CCF 大数据与计算智能大赛已经落下帷幕,11个赛题由众多大神包揽奖项,其中有些还在赛后开源了比赛资料,现将目前已知的资料整理如下,供各位 ...

  9. 大数据Spark入门案例5–统计广告点击数量排行Top3(scala版本)

    大数据Spark入门案例5–统计每广告点击数量排行Top3(scala版本) 1 数据准备 链接:https://pan.baidu.com/s/1afzmL-hNsAJl1_gx_dH2ag 提取码 ...

最新文章

  1. 国内自动驾驶公司争先入局Robotaxi
  2. 【分块答案】【最小割】bzoj1532 [POI2005]Kos-Dicing
  3. H3C交换机常用巡检命令
  4. 作者:周绮凤,女,博士,厦门大学自动化系副教授。
  5. 34. 二分查找左右边界
  6. cv2读取np的矩阵图片,numpy数组clip和astype,查看数据类型array.dtype
  7. excel保存快捷键_电脑技巧篇之快捷键
  8. 引用阿里图标库(iconFont)的三种方式
  9. 手机号、身份证格式校验
  10. AutoRunner 功能自动化测试项目实训之第二个实战案例(五)
  11. hdu 4899 Hero meet devil
  12. [转]如何实现按键精灵的简单路点行走
  13. “互联网+”拯救了星巴克
  14. [OSGI] Felix基本环境搭建及操作
  15. easy-mock使用
  16. 为保护其App Store,苹果不惜拉踩安卓:iOS比Android更安全!
  17. php 正文提取算法,基于机器学习的网页正文提取方法
  18. 《程序员修炼之道:从小工到专家》笔记-----第二章
  19. radio选中触发事件以及获取选中的值
  20. 2022亚太杯C题思路代码分析

热门文章

  1. 设置项的相互制约关系
  2. FGMap学习之--加载百度地图
  3. 中兴今年的毕业生面试题,给大家参考参考
  4. 阿里巴巴收购以色列VR公司,大厂死磕VR为哪般?
  5. C++ 文本查询2.0(逻辑查询)
  6. Asp.net + Silverlight发布到IIS7
  7. scrapyd部署爬虫项目到LINUX服务器
  8. ES6 箭头函数易出错细节
  9. javaScript 之 蚁人微任务
  10. 关于dns域名轮询监控的疑问