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

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

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

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

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

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

字段含义: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数据格式:

{"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环境先配置环境

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

.实时统计注册人员信息 用户使用网站或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建表时 索引注意

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

  1. 大数据项目实战——基于某招聘网站进行数据采集及数据分析(四)

    大数据项目实战 第四章 数据预处理 文章目录 大数据项目实战 学习目标 一.分析预处理数据 1)salary 2)city 3)skillLabels 4)companyLabelList.posit ...

  2. 大数据项目实战教程:使用SparkSQL+Hbase+Oozie构建企业级用户画像

    大数据项目实战教程,本课程需要有大数据基础(掌握基本大数据组件应用)的人才可以学习哦!市面上全面的大数据教程较少,今天分享给大家的就是一套全面的大数据学习教程,企业级大数据项目:360度用户画像实战 ...

  3. print的describe的展示全部数据_大数据项目中的QA需要迎接新的挑战

    根据IDC全球半年度大数据和分析支出指南的最新预测,到2022年全球大数据和业务分析解决方案的收入将达到2600亿美元.在大数据和业务分析解决方案上投资增长最快的行业包括银行(复合年增长率13.3%) ...

  4. python大数据项目_(价值1280)大数据项目实战之Python金融应用编程

    朱彤老师,2009年博士毕业于北京大学光华管理学院金融系,对金融.数据分析与统计有着较为深刻的理解,多年来一直持续跟踪和研究金融量化分析与数据统计相关领域的进展与发展,对概率论.随机过程及其在金融中的 ...

  5. 大数据项目实战——电商推荐系统设计

    摘要 1 项目体系架构设计 1.1系统架构设计 项目以推荐系统建设领域知名的经过修改过的中文亚马逊电商数据集作为依托,以某电商网站真实业务数据架构为基础,构建了符合实践项目的一体化的电商推荐系统,包含 ...

  6. 大数据项目实战之数据仓库:用户行为采集平台——第4章 用户行为数据采集模块

    第4章 用户行为数据采集模块 4.1 数据通道 4.2 环境准备 4.2.1 集群所有进程查看脚本 1)在/home/atguigu/bin目录下创建脚本xcall [atguigu@hadoop10 ...

  7. 大数据项目实战——电信业务大数据分析系统

    基于大数据与hadoop的电信业务大数据分析系统 项目源代码:https://github.com/2462612540/Big_Data_Spark_Scala_hadoop/tree/master ...

  8. 大数据项目实战-招聘网站职位分析

    目录 第一章:项目概述 1.1项目需求和目标 1.2预备知识 1.3项目架构设计及技术选取 1.4开发环境和开发工具 1.5项目开发流程 第二章:搭建大数据集群环境 2.1安装准备 2.2Hadoop ...

  9. python 分析大数据日志_大数据Web日志分析 用Hadoop统计KPI指标实例

    可以带着下面问题来阅读文章 问题: 1.MapReduce在日志分析的作用 思考: 该如何架构kpi系统,需要考虑什么问题. kpi:关键绩效指标法,即KPI绩效考核,是企业绩效考核的方法之一,其特点 ...

最新文章

  1. 基于nginx和ffmpeg前端flv.js简单的直播环境搭建(rtmp+http-flv+hls)
  2. linux java aptget_apt-get没有安装任何linux服务器
  3. AOGNet:基于深度 AND-OR 语法网络的目标识别方法 | PaperDaily #28
  4. SVN系列操作(一)
  5. Java类的各种成员初始化顺序
  6. Mellanox CX-5网卡支持OVS流表加速功能的调研
  7. 给大学生的几条良心建议
  8. 配置mysql字符_mysql字符设置
  9. 人人都该懂点儿TCP
  10. 如何在CAD(CASS)中加载卫星影像
  11. 计算机专业英文版模板简历,计算机专业英文简历模板
  12. 谷歌卫星影像免费下载?来看这些软件
  13. 同时虚拟多个3D桌面
  14. 深度linux笔记本独显,双显卡笔记本安装Deepin教程
  15. 窗口函数preceding和following字段
  16. 请知悉/已知悉!英语怎么说?
  17. 【单片机】51单片机使用总结
  18. Lua中获取指定月份总天数
  19. 短视频美颜sdk为什么会爆火?
  20. 【人机对话】对话机器人技术简介:问答系统、对话系统与聊天机器人

热门文章

  1. 小朋友学C++(1)
  2. 【彩彩只能变身队】后端工作总结
  3. MyBatis 事务源码分析
  4. 5个Vue.js项目的令人敬畏的模板
  5. Spring 钩子之BeanFactoryPostProcessor和BeanPostProcessor
  6. Flutter - 生成二维码与识别二维码
  7. 实力打脸: 量子隐形传输与 “瞬间移动” 毫无关系
  8. 电池技术多年没有较大发展,成为移动设备最大制约
  9. SystemCenter2012SP1实践(19)集成WSUS更新服务器2012
  10. Swagger+Spring mvc生成Restful接口文档