初嘗Spark Streaming

目錄

 

一:Spark Streaming 

二:離線批處理

三:大數據交互式查詢

四:流式計算對比

五:批量計算對比流式計算

六:離線批處理、大數據交互式查詢、流式計算對比

七:Kafka 


一:Spark Streaming 


含義:其實就是一種Spark提供的,對於大數據,進行實時計算的一種框架
還是基於內存的大數據實時計算模型。而且,它的底層的組件或者叫做概念,其實還是最核心的RDD
在RDD之上,進行了一層封裝,叫做DStream

開發Spark Streaming : 提供計算邏輯,實時對數據進行處理

二:離線批處理


Spark Core 以及 MapReduce _ 離線批處理
模擬廣告投放計算
機器學習、
視頻推薦(圖計算)、 
網站UV計算
日誌分析挖掘
等大批量的數據處理

三:大數據交互式查詢


Hive 和 Spark SQL : 大數據交互式查詢
交互式查詢: 就是用戶輸入條件,響應響應信息 。。。 
常見的報表查詢,天貓的商品查詢等等

四:流式計算對比


Spark Streaming:流式計算/實時計算  
雙十一或者週年慶的時候,各大電商平臺:風險監測,網站必須有實時監測系統,一旦有攻擊,就必須立刻採取措施
網站的實時個性化推薦
搜索引擎
淘寶、天貓、京東、搜狐、新浪各大網站的,實時的用戶行爲日誌(點擊,購買等)
實時的金融系統:金融交易數據
輿情監控系統:微博,微信,博客等

五:批量計算對比流式計算


(1) 與批量計算那樣慢慢積累數據不同,流式計算將大量數據平攤到每個時間點上,連續地進行小批量的進行傳輸,數據持續流動,計算完之後就丟棄。

(2) 批量計算是維護一張表,對錶進行實施各種計算邏輯。流式計算相反,是必須先定義好計算邏輯,提交到流失計算系統,這個計算作業邏輯在整個運行期間是不可更改的。

(3) 計算結果上,批量計算對全部數據進行計算後傳輸結果,流式計算是每次小批量計算後,結果可以立刻投遞到在線系統,做到實時化展現。

Spark streaming 解決秒級響應,即流式計算
spark streaming 將spark 批處理應用,縮小爲一個微批micro batch,把microbatch作爲一個計算單元。


六:離線批處理、大數據交互式查詢、流式計算對比


1.基於實時數據流的處理,通常的時間跨度在數百毫秒到數秒之間

2.基於歷史數據的交互式查詢,通常時間跨度在數十秒到數分鐘之間

3.複雜的批量數據處理,通常的時間跨度在幾分鐘到數小時之間

七:Kafka 


作用:提供數據流(作爲實時大數據的一種緩衝,避免直接處理實時數據 )
地位:消息隊列/消息中間件

特點:
消息被處理的狀態是在 consumer 端維護,而不是由 server 端維護。當失敗時能自動平衡。 
可進行持久化操作。將消息持久化到磁盤,因此可用於批量消費
通過將數據持久化到硬盤以及 replication 防止數據丟失。
分佈式系統,易於向外擴展。所有的 producer、broker 和 consumer 都會有多個,均爲分佈式的。無需停機即可擴展機器

組件:
Producer 特指消息的生產者 Consumer 特指消息的消費者 Consumer Group 消費者組,可以並行消費Topic中partition的消息
Broker:緩存代理,Kafa 集羣中的一臺或多臺服務器統稱爲 broker 
Topic:特指 Kafka 處理的消息源(feeds of messages)的不同分類
Partition:Topic 物理上的分組,一個 topic 可以分爲多個 partition,每個 partition 是一個有序的隊列。partition 中的每條消息都會被分配一個有序的 id(offset)
 Message:消息,是通信的基本單位,每個 producer 可以向一個 topic(主題)發佈一些消息。

事例:用戶每點擊一次,js就發送Ajax請求到後臺的Kafka
              比如Nginx日誌
              flume接收日誌
              

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