目錄
【前言】
(kafka+redis+hbase+spark+開發)
集群搭建
一千萬條消息的接收和處理,高峰期達到2萬條/秒。數據源:用本地JSON文件,用發送文件中的數據模擬機具采集發送給云平臺。數據接入與實時處理:采用kafka消息中間件接收到數據,過濾不合法的數據,存儲到內存數據庫Redis作為緩沖。數據存儲與分析:采用Spark框架對HBase中的數據進行業務處理,結果存儲在HBase中。數據展示:采用和前端開發框架,將HBase中的原始數據和分析結果展示出來(Java開發過程)。
云計算集群(六臺服務器):用一臺作為Redis和服務器(數據緩存和web服務器),兩臺Kafka服務器(數據接入),三臺HBase和Spark服務器(+,+)
完成工作 云計算環境的部署(Kafka、Redis、HBase、Spark、)大數據量上傳的模擬實現,臟數據的清洗(模擬臟數據:經度和緯度在特定范圍內的為有效數據,Kafka(使用Kafka 對原始數據進行過濾。可以采用 LOW-LEVEL API或者 HIGH-LEVEL DSL 兩種方式之一進行處理)將接收到的原始數據進行實時過濾處理),數據通過Redis緩存被存到HBase數據分析與存儲:將HBase中的數據用Spark框架進行業務處理,結果存回HBase。處理的業務有:
某地點的過車次數
某輛車的行車軌跡(通過給定的時間范圍和車輛的電子車牌(EID),重現車輛軌跡。解決方案:方案一,將該車輛所有軌跡信息提取出來,時間排序,然后按照規定范圍獲取數據,但是當數據量很龐大時webapi 傳輸大數據量,響應時間過長。方案二:建立一張新表,重新編排行鍵,不必從數據庫獲取關于該電子車牌所有的信息和進行二次處理,直接從數據庫獲取最終結果。拼接EID-time)
數據分發訂閱(數據從Redis到HBase有兩種方式:第一種,通過程序手動讀取數據到HBase中。第二種,基于Redis的發布訂閱能力,通過訂閱信道,向指定的信道發布消息,然后將消息推送到HBase中)
相遇次數統計(相遇定義:兩車之間出現在同一地點的時間間隔小于一分鐘。功能描述:統計每輛車與其它各車的相遇次數,可以根據車輛的電子車牌查詢與它相遇車輛。方案一:自身以地點為鍵進行join操作,計算除自身外的車輛是否相遇建立一張新表,重新編排行鍵,不必從數據庫獲取關于該數據庫所有的信息和進行二次處理,直接從數據庫獲取最終結果。(,(eid,time)) join (,(eid,time)) ->(, (eid1, time1, eid2, time2)) (eid1 !=eid2 && |time1 - time2| < 60) ->((eid1, eid2), 1) ->((eid1, eid2), count)。方案二:以地點為鍵進行分組,同一組內的數據按照時間進行排序,遍歷整個列表,看哪些車輛之間滿足時間間隔。建立表,如下所示 )、
車輛的實時監控(設定車輛監控規則(如監控固定車牌,或監控某段時間出現在某個地點的車輛。對監控到的信息進行存儲。支持展示監控到的記錄,并可以根據監控規則進行查詢。舉例:設置監控車牌為陜A8888的車輛監控規則,然后根據規則,在數據中實時找到關于該車輛行駛信息,對信息進行存儲,然后在頁面上可查詢)Web開發與可視化:將業務處理的結果以地圖、表格、圖表等形式展現在網頁中 技術知識
Redis(Redis簡明教程、Redis面試)
可基于內存亦可持久化的日志型、Key-Value 數據庫,提供(5種數據類型:,list,set,zset,hash)等數據結構的存儲。復雜的數據結構并且提供對他們的原子性操作。發布訂閱:Redis作為一個發布訂閱,在訂閱者和發布者之間起到了 消息路由 的作用。一個訂閱者通過向Redis 請求訂閱消息,也就是有了一個通道。當另一個通過向Redis 發送消息類型時,這個消息會被所有訂閱了消息的所接收。訂閱和發布是多對多的關系。事務:一個發起的事務中的命令可以連續執行,中間不會插入其他客戶端的命令。事務命令multi,進入事務上下文,以后輸入的命令不會被立即執行,先放入隊列,收到exec命令后,Redis順序執行隊列中的命令,將執行結果返回到客戶端。管道功能:Redis是一個支持請求/響應協議的TCP服務器。向Redis 發送請求,阻塞式地等待服務返回。管道命令同時發送多個請求,就無須每次都阻塞,只需要在最后讀取每個命令的結果。持久化:基于內存,但可在配置文件中開啟持久化功能,將數據持久化到磁盤中。兩種方式:RDB(Redis )和AOF( Only File)。RDB方式:簡單講就是在不同的時間點,將Redis存儲的數據生成快照并存儲到磁盤等介質上;AOF(日志型)方式:簡單講就是將執行過的寫指令記錄下來,在數據恢復時按照從前到后的順序再將指令都執行一遍webapi 傳輸大數據量,從而恢復數據。
HBase(HBase簡介)