SparkStream實時分析統計展示共享單車使用人數

實驗結果展示

image

數據集

hour.csv

instant,dteday,season,yr,mnth,hr,holiday,weekday,workingday,weathersit,temp,atemp,hum,windspeed,casual,registered,cnt
1,2011-01-01,1,0,1,0,0,6,0,1,0.24,0.2879,0.81,0,3,13,16
此數據集包含的是從 2011 年 1 月 1 日到 2012 年 12 月 31 日期間每天每小時的騎車人數。騎車用戶分成臨時用戶和註冊用戶,cnt 列是騎車用戶數彙總列。你可以在上方看到前幾行數據。

實驗說明

將數據文件中每小時的騎車人數當做每10秒的使用人數使用,傳入kafka中,由Spark實時讀取並統計時間窗口中的使用人數,再傳回kafka,界面實時展示時間窗口的統計結果
  1. python 讀入數據集文件,並將使用人數字段每隔0.1s傳入 kafka 隊列a
  2. Spark 程序每1s 獲取kafka隊列消息,並統計時間窗口爲1s內的使用人數,將返回結果放入 kafka 隊列b
  3. 由socket.io 構建的web 實時獲取 隊列b裏的消息,並推送圖表展示

SparkStream 實時處理

使用Spark Streaming + Kafka 實現有容錯性的實時統計程序
SparkStreaming項目(實時統計每個品類被點擊的次數)

Flask 搭建簡易Web

這篇博客對Flast總結的很好

Flask快速入門,知識整理

SocketIo文檔

Socket.io支持及時、雙向、基於事件的交流,可在不同平臺、瀏覽器、設備上工作,可靠性和速度穩定。最典型的應用場景如:

  • 實時分析:將數據推送到客戶端,客戶端表現爲實時計數器、圖表、日誌客戶。
  • 實時通訊:聊天應用
  • 二進制流傳輸:socket.io支持任何形式的二進制文件傳輸,例如圖片、視頻、音頻等。
  • 文檔合併:允許多個用戶同時編輯一個文檔,並能夠看到每個用戶做出的修改。

Socket.io實際上是WebSocket的父集,Socket.io封裝了WebSocket和輪詢等方法,會根據情況選擇方法來進行通訊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章