《Spark应用开发技术》课件——03_Spark Streaming实时更新热门博文.pptx
;本章主要讲述SparkStreaming实时计算框架、Dstream编程模型。;通过学习本节将能够学习SparkStreaming实时计算框架、Dstream编程模型。
通过本节学习可以:
理解SparkStreaming的基本概念及运行原理
掌握Dstream的转换操作
掌握Dstream的窗口操作
掌握Dstream的输出操作
;初探SparkStreaming
SparkStreaming简介
SparkStreaming运行原理
初步使用SparkStreaming
掌握Dstream编程模型
Dstream简介
Dstream转换操作
Dstream窗口操作
Dstream输出操作
3.SparkStreaming实时更新热门博文
;背景
随着互联网和信息科学技术的发展,技术人员也需要不断地紧跟潮流学习新的技术。这些人在学习的过程中喜欢把所学的知识记录下来以方便以后查看或者分享给他人。某些公司因此萌发了开发技术博客网站的想法,技术博客网站的功能就是技术人员可以通过注册成为会员后把自己所学的知识记录在博客上分享给其他人学习或者在网站上查看他人分享的知识。而随着推荐技术的发展,现在的博客网站也都会设置个性化的推荐板块,以此来吸引用户的浏览,比如,CSDN网站就有推荐博客、最热下载、行业热点等推荐板块。国内某个技术博客网站设置了热门博文板块,系统每小时对博文网页进行快速统计,将热度最高的10个网页更新到热门博文版块。
一般可以根据如下的公式计算网页的热度,其中,u代表用户等级,x代表用户从进入网站到离开网站这段时间内对该网页的访问次数,y代表停留时间,z表示是否点赞
f(u,x,y,z)=0.1u+0.9x+0.4y+z;采集用户对于某个网页的行为数据
其中pageId表示点击的网页ID,userRank表示用户等级,visitTimes表示用户从进入网站到离开网站这段时间内对该网页的访问次数,waitTime表示停留时间,like表示是否点赞。1为赞,-1表示踩,0表示中立。;设计表
计算网页热度之后要求把热度最高的10个网页保存在MySQL数据库中,因此需要在MySQL数据库中设计一个表top_web_page接收热度最高的10个网页。top_web_page表的结构如表所示
;采集数据
日志生成模拟器,首先采集用户对于某个网页的行为数据保存在本地E盘test.log文件里
每隔5s随机的从test.log文件中挑选100行??加到新日志文件中,新生成的日志文件存放在E盘的streaming目录下。
;计算网页热度
SparkStreaming读取监控目录下的数据,生成一个DStream。
计算网页热度首先需要对每一行数据根据数据的分隔符(如“,”)进行分割
根据公式计算网页的热度,得到以网页为键,热度为值的键值对数据。
接着根据相同的键计算网页的热度总和
最后根据热度总和对数据降序排序,取出热度最高的前10个网页。
;网页热度输出
每次更新网页及其热度,需要把更新结果输出到MySQL中
定义创建连接对象的方法及清空表的方法,如下图所示
;网页热度输出
使用Dsteam提供的foreachRDD的方法将热度最高的10个网页数据信息输出到MySQL数据库中top_web_page表,如下图所示
;;运行模拟器代码,同时运行计算网页热度的代码
SparkStreaming监控产生文件的目录,一旦有新文件产生就会计算新文件的网页热度及其排名然后输出到top_web_page表。
查看top_web_page表的内容
;请简述SparkStreaming?
请简述SparkDstream编程模型?
;描述了SparkStreaming实时计算框架、Dstream编程模型。
;在线学习:/;谢谢