docker-compose观察实时日志_大数据项目实战之在线教育(03实时需求) - 十一vs十一...

第1章Spark Streaming概念 Spark Streaming 是核心Spark API的扩展,可实现实时数据的可扩展,高吞吐量,容错处理。数据可以从许多来源(如Kafka,Flume,Kinesis,或TCP套接字)中获取,并可以使用高级函数进行处理,处理完后的数据可以推送到文件系统,数据库和实时仪表板。67e35b6c97c0e7bb2ead0a74ba7e0ab0.png

在内部,他的工作原理如下,Spark Streaming接收实时输入数据流并将数据分成批处理,然后由Spark引擎处理以批处理生成最终结果流。

16006e63fca147f25d8e8effcaf3afa4.png

第2章 项目需求及架构设计 项目需求分析 一、数据采集平台搭建 二、Kafka、Zookeeper中间件准备 三、下游Spark Streaming对接Kafka接收数据,实现vip个数统计、栏目打标签功能、做题正确率与掌握度的实时计算功能。

项目框架2. 技术选型 一、数据存储:Kafka、MySql 二、数据处理:Spark 三、其他组件:Zookeeper.2 流程设计

87b77deb2f454446821aac1b6fd67348.png

第3章 需求原始数据格式及对应topic1实时统计注册人数kafka对应 topic: register_topic数据格式:

13326ea6d6b592ea839534235b8bd00a.png

e728c59dde312ed5f787dbe5a7690e6b.png

85571 1 2019-07-16 16:01:55用户id 平台id 1:PC 2:APP 3:Ohter 创建时间.2做题正确率数与知识点掌握度数据格式Kafka 对应topic: qz_log数据格式:

ec8d083ab20fca72a44a2d6a188de66b.png

字段含义:1005 505 29 1 1 2019-09-12 11:17:48(用户id) (课程id) (知识点id) (题目id) (是否正确 0错误 1正确)(创建时间)

.3商品页面到订单页,订单页到支付页数据格式Kafka 对应topic: page_topic

数据格式

{"app_id":"1","device_id":"102","distinct_id":"5fa401c8-dd45-4425-b8c6-700f9f74c532","event_name":"-","ip":"121.76.1535","last_event_name":"-","last_page_id":"0","next_event_name":"-","next_page_id":"2","page_id":"1","server_time":"-","uid":"245494"}

uid:用户id app_id:平台id deviceid:设备id disinct_id:唯一标识Ip:用户ip地址 last_page_id :上一页面idpage_id:当前页面id 0:首页 1:商品课程页 2:订单页面 3:支付页面next_page_id:下一页面id .4实时统计学员播放视频各时长Kafka 对应topic: course_learn数据格式:

1ffb06b3c09701e356ab97e5fb7fc410.png

{"biz":"bdfb58e5-d14c-45d2-91bc-1d9409800ac3","chapterid":"1","cwareid":"3","edutypeid":"3","pe":"55","ps":"41","sourceType":"APP","speed":"2","subjectid":"2","te":"1563352166417","ts":"1563352159417","uid":"235","videoid":"2"}

biz:唯一标识 chapterid:章节id cwareid:课件id edutypeid:辅导id ps:视频播放时间区间 pe:视频播放结束区间 sourceType:播放平台 speed:播放倍速 ts:视频播放开始时间(时间戳) te:视频播放结束时间(时间戳) videoid:视频id3.1环境准备在本机三台虚拟机上分别搭建好zookeeper 和kafka创建所需topic [atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181/kafka_2.4 --create --replication-factor 2 --partitions 10 --topic qz_log[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181/kafka_2.4 --create --replication-factor 2 --partitions 10 --topic page_topic[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181/kafka_2.4 --create --replication-factor 2 --partitions 10 --topic register_topic[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181/kafka_2.4 --create --replication-factor 2 --partitions 10 --topic course_learn

3.2模拟数据采集模拟数据采集 将准备好的log文件使用kafka生产者代码发送信息到topic

注册日志数据 日志文件 对应topic: register_topic

做题数据 qz_log 日志文件 对应topic :qz_log

商品页面数据page_log 日志文件 对应topic:page_topic

视频播放时长数据日志文件 对应topic: course_learn

如果windows下没有安装hadoop环境先配置环境

 85b89d5dba520e2d3087e5463a8d537b.png

27a249d32e7c00cae0f75fb643acc5be.png

Ip解析工具Ip解析本地库:

8cfefd6c51e1247bbcf5a59b893490a5.png

61d0cc54bc19cd1b93959096efe9fc3e.png

.实时统计注册人员信息 用户使用网站或APP进行注册,后台实时收集数据传输Kafka,Spark Streaming进行对接统计,实时统计注册人数。 需求1:实时统计注册人数,批次为3秒一批,使用updateStateBykey算子计算历史数据和当前批次的数据总数,仅此需求使用updateStateBykey,后续需求不使用updateStateBykey。 需求2:每6秒统统计一次1分钟内的注册数据,不需要历史数据 提示:reduceByKeyAndWindow算子 需求3:观察对接数据,尝试进行调优。实时计算学员做题正确率与知识点掌握度 mysql建表语句:

用户在网站或APP进行做题,做完题点击交卷按钮,程序将做题记录提交,传输到Kafka中,下游Spark Streaming对接kafka实现实时计算做题正确率和掌握度,将正确率和掌握度存入mysql中,用户点击交卷后刷新页面能立马看到自己做题的详情。需求1:要求Spark Streaming 保证数据不丢失,每秒1000条处理速度,需要手动维护偏移量需求2:同一个用户做在同一门课程同一知识点下做题需要去重,并且需要记录去重后的做题id与个数。需求3:计算知识点正确率 正确率计算公式:做题正确总个数/做题总数 保留两位小数需求4:计算知识点掌握度 去重后的做题个数/当前知识点总题数(已知30题)*当前知识点的正确率实时统计商品页到订单页,订单页到支付页转换率 mysql建表语句: 用户浏览课程首页点击下订单,跳转到订单页面,再点击支付跳转到支付页面进行支付,收集各页面跳转json数据,解析json数据计算各页面点击数和转换率,计算top3点击量按地区排名(ip字段,需要根据历史数据累计) 需求1:计算首页总浏览数、订单页总浏览数、支付页面总浏览数 需求2:计算商品课程页面到订单页的跳转转换率、订单页面到支付页面的跳转转换率 需求3:根据ip得出相应省份,展示出top3省份的点击数,需要根据历史数据累加实时统计学员播放视频各时长 建表语句:

用户在线播放视频进行学习课程,后台记录视频播放开始区间和结束区间,及播放开始时间和播放结束时间,后台手机数据传输kafka需要计算用户播放视频总时长、有效时长、完成时长,及各维度总播放时长。 需求1:计算各章节下的播放总时长(按chapterid聚合统计播放总时长) 需求2:计算各课件下的播放总时长(按cwareid聚合统计播放总时长) 需求3:计算各辅导下的播放总时长(按edutypeid聚合统计播放总时长) 需求4:计算各播放平台下的播放总时长(按sourcetype聚合统计播放总时长) 需求5:计算各科目下的播放总时长(按subjectid聚合统计播放总时长) 需求6:计算用户学习视频的播放总时长、有效时长、完成时长,需求记录视频播历史区间,对于用户多次学习的播放区间不累计有效时长和完成时长。

播放总时长计算:(te-ts)/1000 向下取整 单位:秒 完成时长计算: 根据pe-ps 计算 需要对历史数据进行去重处理 有效时长计算:根据te-ts 除以pe-ts 先计算出播放每一区间需要的实际时长 * 完成时长

第4章 思考(1)Spark Streaming 下每个stage的耗时由什么决定(2)Spark Streaming task发生数据倾斜如何解决(3)Spark Streaming下如何正确操作mysql(如何正确使用连接)(4)Spark Streaming操作mysql时,相同维度的数据如何保证线程安全问题(5)如何保证kill Spark Streaming任务的时候不丢失数据(6)如何保证Spark Streaming的第一次启动和kill后第二次启动时据不丢失数据(7)MySql建表时 索引注意

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码之谜(二)- 语句与表达式

虽然文章标题是『语句与表达式』,在这篇文章中,我将陈述一个观点 每个表达式都有一个值。 在此之外,也会继续表述这个『代码之谜』系列的主题——数学与计算机之间被经常忽略的矛盾。 简单的讲 “表达式”(expression)…

Java动态加载类在功能模块开发中的作用

Java中我们一般会使用new关键字实例化对象然后调用该对象所属类提供的方法来实现相应的功能,比如我们现在有个主类叫Web类这个类中能实现各种方法,比如用户注册、发送邮件等功能,代码如下: 1 /*2 * web功能实现类3 */4 public c…

创业者们的19个Surprises

郑昀玩聚SR 20091115 『毫无疑问,短跑运动员在起跑时速度最快,而后就变慢下来, 获胜者是变慢得最少的那个人。大多数创业公司也是如此。』 ——Paul Graham January 2007 上面这句笺言的作者Paul Graham最近问了Y Combinator旗下创业项目的创…

自学电脑编程_程序人生:盲人程序员蔡勇斌——用耳朵打开盲人的程序世界 - 沐歌爱编程...

有句话说:没有你想不到,只有你做不到。今天想为大家介绍一位程序员界中的励志人物,他就是蔡勇斌。蔡勇斌幼年失明,靠着顽强的毅力和不服输的精神自学编程,成为了一名全栈工程师。他是阿里“多隆奖”首位盲人获得者&…

qtabwidget的图标_QTabWidget每个标签上的关闭按钮怎样设置

自己做窗标题栏首先[DllImport("User32.dll", EntryPoint "ReleaseCapture")] static extern long ReleaseCapture(); [DllImport("User32.dll", EntryPoint "SendMessage")] private static extern int SendMessage(IntPtr hWnd, i…

poj 2299 (归并排序)

给定一个无序的数列&#xff0c;由32位整数组成的&#xff0c;序列长度可达500000&#xff0c;现在通过不断的两两交换&#xff0c;把这个序列排成由小到大的有序序列&#xff0c;问交换的次数是多少。 1 #include<stdio.h>2 #include<stdlib.h>3 #define NN 50000…

SQLite轻量级数据库,操作数据常用语句

2019独角兽企业重金招聘Python工程师标准>>> -----创建表---- ----------表格头英文换中文显示select name as 名字,age 年龄,class from student -----if not exists判断表存在否--字符串用char也行--- --如果用自增长&#xff0c;只能用包装类型integer,不能用int…

.NET常用功能和代码[总结与收藏] (转)

.NET常用功能和代码[总结与收藏] 1. 打开新的窗口并传送参数&#xff1a; 传送参数&#xff1a;response.write("<script>window.open(*.aspx?id"this.DropDownList1.SelectIndex"&id1"...")</script>") 接收参数&#xff1a;s…

deepin安装卡死在蓝色背景_求大神帮助~安装DEEPIN系统卡在蓝色背景图什么原因...

可能是联想拯救者 R7000笔记本的原因&#xff0c;用以下方法解决了先点开联想的电脑管家 你能在左边栏找到一个选项 那个选项是显卡模式点击进去→然后选择独显模式(如果找不到就在当前界面里面选择调回游戏模式)然后重启电脑确认你的电脑进入了独显模式然后再次重启按F2(单按…

cuda编程_CUDA编程入门(四)并行归约算法

这一篇我们一起学习一下如何使用CUDA实现并行归约算法。首先我们要知道什么是并行归约。并行归约&#xff08;Reduction&#xff09;是一种很基础的并行算法&#xff0c;简单来说&#xff0c;我们有N个输入数据&#xff0c;使用一个符合结合律的二元操作符作用其上&#xff0c;…

在ubuntu下各种格式软件安装及常用命令

Ubuntu下软件安装的几种方式&#xff1a; (1).bundle 格式 以VMware-Workstation-Full-7.0.0-203739.i386.bundle为例 命令如下&#xff1a;sudo sh VMware-Workstation-7.0.0-203739.i386.bundle(先切换到该文件所在文件夹) (2).deb格式 最常用的是deb包&#xff0c;deb是deb…

解决Windows客户端访问vsftpd服务器中文乱码问题

上周五-业务部同事反馈客户使用我司的FTP服务&#xff0c;发现文件和目录是中文全部乱码,不方便查看修改文件目录等操作故障原因&#xff1a;vsftpd不能处理字符编码的转换&#xff0c;Windows使用GBK编码&#xff0c;linux使用zh_CN.UTF-8编码解决方法&#xff1a;1、使用能够…

csgo怎么控制电脑玩家_电脑怎么远程控制他人电脑,教您给电脑设置远程控制的方法...

有些时电脑出现了一些我们解决不了的问题时&#xff0c;这时我们一定第一时间想到就是让电脑高手帮忙看一下问题&#xff1b;但要对方在异地该办呢&#xff0c;那就通过电脑远程来解决了&#xff1b;那么问题又来了&#xff0c;电脑怎么远程控制他人电脑呢&#xff1f;小编下面…

JAVA实验报告九异常处理_JAVA实验报告_Java异常处理

贵州大学实验报告学院&#xff1a;计信学院专业&#xff1a;网络工程班级&#xff1a;101 姓名学号实验组实验时间05.27 指导教师肖源源成绩实验项目名称Java异常处理实验目的1)掌握Java异常的概念及工作机制2)掌握异常的分类3)掌握抛出异常语句的使用(throw)4)掌握抛出捕获处理…

win8下vs2012加wp8 sdk开发xna4.0PC游戏

vs2012安装wp8后&#xff0c;只能开发手机端的xna游戏程序&#xff0c;没有xbox和pc端的&#xff0c;看来官方是不打算更新了&#xff0c;不过我们还是有办法的。前提条件下&#xff0c;您得安装了vs2010和xna4.0 game studio或者是windows phone sdk 7.1。如果您没有安装wp8&a…

div悬浮在固定位置_悬浮式超声波致动器概要及研究动向

作者&#xff1a;东京工业大学 中村 健太郎1. 序言以往的超声波马达是通过摩擦力驱动&#xff0c;固定片压电振子与转子接触&#xff0c;通过振动摩擦转子从而获得旋转力和推动力。虽然具有高转矩、高控制性等特点&#xff0c;从原理上讲其速度无法超过振子振动速度。压电振子的…

基于Java的设计开题报告_基于Java的电子邮件的收发系统的设计与实现开题报告...

基于Java的电子邮件的收发系统的设计与实现开题报告 (8页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;9.90 积分开题报告 基于 Java 的电子邮件的收发系统的设计与实现 一、选题的背景、意义 1、 电…

Java GUI 开发专题

Java GUI 开发专题 IBM http://www.ibm.com/developerworks/cn/java/j-gui/#N10095 作者&#xff1a;wenhai_zhang 发表于2009-11-25 23:53:00 原文链接 阅读&#xff1a;7 评论&#xff1a;0 查看评论 转载于:https://www.cnblogs.com/wenhaizhang/archive/2009/11/25/2099172…

Zookeeper-源码启动

源码启动zookeeper zookeeper源码下载地址&#xff1a; //选择分支3.5.8 https://github.com/apache/zookeeper.git 源码导入idea后&#xff0c;org.apache.zookeeper.Version类会报错&#xff0c;需要建一个辅助类 //全局搜索org.apache.zookeeper.Version这个类就找到了…

python之获取微信服务器的ip地址

# -*- coding: cp936 -*- #PYTHON 27 #xiaodeng #获取微信服务器的ip地址import urllib urlhttps://api.weixin.qq.com/cgi-bin/getcallbackip data{access_token:VchuOKNr8X9tZVDrY_yG9qiJus_1nO1a7uT_iwWVwgGFdzPhPyaqreTE_qMKPas4SwRNif5k0A1zVw6Y9eTPI4CAYiUwpJvHdBt4fzDTR…