日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker-compose观察实时日志_大数据项目实战之在线教育(03实时需求) - 十一vs十一... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第1章Spark Streaming概念 Spark Streaming 是核心Spark API的擴(kuò)展,可實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的可擴(kuò)展,高吞吐量,容錯(cuò)處理。數(shù)據(jù)可以從許多來源(如Kafka,Flume,Kinesis,或TCP套接字)中獲取,并可以使用高級(jí)函數(shù)進(jìn)行處理,處理完后的數(shù)據(jù)可以推送到文件系統(tǒng),數(shù)據(jù)庫和實(shí)時(shí)儀表板。

在內(nèi)部,他的工作原理如下,Spark Streaming接收實(shí)時(shí)輸入數(shù)據(jù)流并將數(shù)據(jù)分成批處理,然后由Spark引擎處理以批處理生成最終結(jié)果流。

第2章 項(xiàng)目需求及架構(gòu)設(shè)計(jì) 項(xiàng)目需求分析 一、數(shù)據(jù)采集平臺(tái)搭建 二、Kafka、Zookeeper中間件準(zhǔn)備 三、下游Spark Streaming對(duì)接Kafka接收數(shù)據(jù),實(shí)現(xiàn)vip個(gè)數(shù)統(tǒng)計(jì)、欄目打標(biāo)簽功能、做題正確率與掌握度的實(shí)時(shí)計(jì)算功能。

項(xiàng)目框架2. 技術(shù)選型 一、數(shù)據(jù)存儲(chǔ):Kafka、MySql 二、數(shù)據(jù)處理:Spark 三、其他組件:Zookeeper.2 流程設(shè)計(jì)

第3章 需求原始數(shù)據(jù)格式及對(duì)應(yīng)topic1實(shí)時(shí)統(tǒng)計(jì)注冊(cè)人數(shù)kafka對(duì)應(yīng) topic: register_topic數(shù)據(jù)格式:

85571 1 2019-07-16 16:01:55用戶id 平臺(tái)id 1:PC 2:APP 3:Ohter 創(chuàng)建時(shí)間.2做題正確率數(shù)與知識(shí)點(diǎn)掌握度數(shù)據(jù)格式Kafka 對(duì)應(yīng)topic: qz_log數(shù)據(jù)格式:

字段含義:1005 505 29 1 1 2019-09-12 11:17:48(用戶id) (課程id) (知識(shí)點(diǎn)id) (題目id) (是否正確 0錯(cuò)誤 1正確)(創(chuàng)建時(shí)間)

.3商品頁面到訂單頁,訂單頁到支付頁數(shù)據(jù)格式Kafka 對(duì)應(yīng)topic: page_topic

數(shù)據(jù)格式

{"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:平臺(tái)id deviceid:設(shè)備id disinct_id:唯一標(biāo)識(shí)Ip:用戶ip地址 last_page_id :上一頁面idpage_id:當(dāng)前頁面id 0:首頁 1:商品課程頁 2:訂單頁面 3:支付頁面next_page_id:下一頁面id .4實(shí)時(shí)統(tǒng)計(jì)學(xué)員播放視頻各時(shí)長(zhǎng)Kafka 對(duì)應(yīng)topic: course_learn數(shù)據(jù)格式:

{"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:唯一標(biāo)識(shí) chapterid:章節(jié)id cwareid:課件id edutypeid:輔導(dǎo)id ps:視頻播放時(shí)間區(qū)間 pe:視頻播放結(jié)束區(qū)間 sourceType:播放平臺(tái) speed:播放倍速 ts:視頻播放開始時(shí)間(時(shí)間戳) te:視頻播放結(jié)束時(shí)間(時(shí)間戳) videoid:視頻id3.1環(huán)境準(zhǔn)備在本機(jī)三臺(tái)虛擬機(jī)上分別搭建好zookeeper 和kafka創(chuàng)建所需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模擬數(shù)據(jù)采集模擬數(shù)據(jù)采集 將準(zhǔn)備好的log文件使用kafka生產(chǎn)者代碼發(fā)送信息到topic

注冊(cè)日志數(shù)據(jù) 日志文件 對(duì)應(yīng)topic: register_topic

做題數(shù)據(jù) qz_log 日志文件 對(duì)應(yīng)topic :qz_log

商品頁面數(shù)據(jù)page_log 日志文件 對(duì)應(yīng)topic:page_topic

視頻播放時(shí)長(zhǎng)數(shù)據(jù)日志文件 對(duì)應(yīng)topic: course_learn

如果windows下沒有安裝hadoop環(huán)境先配置環(huán)境

?

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

.實(shí)時(shí)統(tǒng)計(jì)注冊(cè)人員信息 用戶使用網(wǎng)站或APP進(jìn)行注冊(cè),后臺(tái)實(shí)時(shí)收集數(shù)據(jù)傳輸Kafka,Spark Streaming進(jìn)行對(duì)接統(tǒng)計(jì),實(shí)時(shí)統(tǒng)計(jì)注冊(cè)人數(shù)。 需求1:實(shí)時(shí)統(tǒng)計(jì)注冊(cè)人數(shù),批次為3秒一批,使用updateStateBykey算子計(jì)算歷史數(shù)據(jù)和當(dāng)前批次的數(shù)據(jù)總數(shù),僅此需求使用updateStateBykey,后續(xù)需求不使用updateStateBykey。 需求2:每6秒統(tǒng)統(tǒng)計(jì)一次1分鐘內(nèi)的注冊(cè)數(shù)據(jù),不需要?dú)v史數(shù)據(jù) 提示:reduceByKeyAndWindow算子 需求3:觀察對(duì)接數(shù)據(jù),嘗試進(jìn)行調(diào)優(yōu)。實(shí)時(shí)計(jì)算學(xué)員做題正確率與知識(shí)點(diǎn)掌握度 mysql建表語句:

用戶在網(wǎng)站或APP進(jìn)行做題,做完題點(diǎn)擊交卷按鈕,程序?qū)⒆鲱}記錄提交,傳輸?shù)終afka中,下游Spark Streaming對(duì)接kafka實(shí)現(xiàn)實(shí)時(shí)計(jì)算做題正確率和掌握度,將正確率和掌握度存入mysql中,用戶點(diǎn)擊交卷后刷新頁面能立馬看到自己做題的詳情。需求1:要求Spark Streaming 保證數(shù)據(jù)不丟失,每秒1000條處理速度,需要手動(dòng)維護(hù)偏移量需求2:同一個(gè)用戶做在同一門課程同一知識(shí)點(diǎn)下做題需要去重,并且需要記錄去重后的做題id與個(gè)數(shù)。需求3:計(jì)算知識(shí)點(diǎn)正確率 正確率計(jì)算公式:做題正確總個(gè)數(shù)/做題總數(shù) 保留兩位小數(shù)需求4:計(jì)算知識(shí)點(diǎn)掌握度 去重后的做題個(gè)數(shù)/當(dāng)前知識(shí)點(diǎn)總題數(shù)(已知30題)*當(dāng)前知識(shí)點(diǎn)的正確率實(shí)時(shí)統(tǒng)計(jì)商品頁到訂單頁,訂單頁到支付頁轉(zhuǎn)換率 mysql建表語句: 用戶瀏覽課程首頁點(diǎn)擊下訂單,跳轉(zhuǎn)到訂單頁面,再點(diǎn)擊支付跳轉(zhuǎn)到支付頁面進(jìn)行支付,收集各頁面跳轉(zhuǎn)json數(shù)據(jù),解析json數(shù)據(jù)計(jì)算各頁面點(diǎn)擊數(shù)和轉(zhuǎn)換率,計(jì)算top3點(diǎn)擊量按地區(qū)排名(ip字段,需要根據(jù)歷史數(shù)據(jù)累計(jì)) 需求1:計(jì)算首頁總瀏覽數(shù)、訂單頁總瀏覽數(shù)、支付頁面總瀏覽數(shù) 需求2:計(jì)算商品課程頁面到訂單頁的跳轉(zhuǎn)轉(zhuǎn)換率、訂單頁面到支付頁面的跳轉(zhuǎn)轉(zhuǎn)換率 需求3:根據(jù)ip得出相應(yīng)省份,展示出top3省份的點(diǎn)擊數(shù),需要根據(jù)歷史數(shù)據(jù)累加實(shí)時(shí)統(tǒng)計(jì)學(xué)員播放視頻各時(shí)長(zhǎng) 建表語句:

用戶在線播放視頻進(jìn)行學(xué)習(xí)課程,后臺(tái)記錄視頻播放開始區(qū)間和結(jié)束區(qū)間,及播放開始時(shí)間和播放結(jié)束時(shí)間,后臺(tái)手機(jī)數(shù)據(jù)傳輸kafka需要計(jì)算用戶播放視頻總時(shí)長(zhǎng)、有效時(shí)長(zhǎng)、完成時(shí)長(zhǎng),及各維度總播放時(shí)長(zhǎng)。 需求1:計(jì)算各章節(jié)下的播放總時(shí)長(zhǎng)(按chapterid聚合統(tǒng)計(jì)播放總時(shí)長(zhǎng)) 需求2:計(jì)算各課件下的播放總時(shí)長(zhǎng)(按cwareid聚合統(tǒng)計(jì)播放總時(shí)長(zhǎng)) 需求3:計(jì)算各輔導(dǎo)下的播放總時(shí)長(zhǎng)(按edutypeid聚合統(tǒng)計(jì)播放總時(shí)長(zhǎng)) 需求4:計(jì)算各播放平臺(tái)下的播放總時(shí)長(zhǎng)(按sourcetype聚合統(tǒng)計(jì)播放總時(shí)長(zhǎng)) 需求5:計(jì)算各科目下的播放總時(shí)長(zhǎng)(按subjectid聚合統(tǒng)計(jì)播放總時(shí)長(zhǎng)) 需求6:計(jì)算用戶學(xué)習(xí)視頻的播放總時(shí)長(zhǎng)、有效時(shí)長(zhǎng)、完成時(shí)長(zhǎng),需求記錄視頻播歷史區(qū)間,對(duì)于用戶多次學(xué)習(xí)的播放區(qū)間不累計(jì)有效時(shí)長(zhǎng)和完成時(shí)長(zhǎng)。

播放總時(shí)長(zhǎng)計(jì)算:(te-ts)/1000 向下取整 單位:秒 完成時(shí)長(zhǎng)計(jì)算: 根據(jù)pe-ps 計(jì)算 需要對(duì)歷史數(shù)據(jù)進(jìn)行去重處理 有效時(shí)長(zhǎng)計(jì)算:根據(jù)te-ts 除以pe-ts 先計(jì)算出播放每一區(qū)間需要的實(shí)際時(shí)長(zhǎng) * 完成時(shí)長(zhǎng)

第4章 思考(1)Spark Streaming 下每個(gè)stage的耗時(shí)由什么決定(2)Spark Streaming task發(fā)生數(shù)據(jù)傾斜如何解決(3)Spark Streaming下如何正確操作mysql(如何正確使用連接)(4)Spark Streaming操作mysql時(shí),相同維度的數(shù)據(jù)如何保證線程安全問題(5)如何保證kill Spark Streaming任務(wù)的時(shí)候不丟失數(shù)據(jù)(6)如何保證Spark Streaming的第一次啟動(dòng)和kill后第二次啟動(dòng)時(shí)據(jù)不丟失數(shù)據(jù)(7)MySql建表時(shí) 索引注意

總結(jié)

以上是生活随笔為你收集整理的docker-compose观察实时日志_大数据项目实战之在线教育(03实时需求) - 十一vs十一...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。