Spark Streaming實時流處理專案 實戰
Spark Streaming實時流處理專案實戰教程
連結:https://pan.baidu.com/s/1-Wm73wGGxAMS91q3mt7KYQ
提取碼:hhd8
第一章:課程介紹
Hadoop環境:虛擬機器Centos6.4
Window:VMware
本地登入到遠端伺服器:ssh [email protected] 密碼:hadoop
修改配置檔案,是需要root許可權的,怎麼辦?
sudo command
只有一個地方需要修改:ip地址
/etc/hosts
192.168.199.128 hadoop000
192.168.199.128 localhost
在Linux的Hadoop使用者的根目錄下需要建立如下目錄:
app 存放我們所需要的所有軟體的安裝目錄
data 存放我們的測試資料
lib 存放我們開發的jar包
software 存放軟體安裝包的目錄
source 存放我們的框架原始碼
版本介紹:
Hadoop生態系統:cdh5.7.0
jdk:1.8
spark:2.2
scala:2.11.8
初識實時流處理
需求:統計主站每個(指定)課程訪問的客戶端、地域資訊分佈、
地域:ip轉換 (Spark SQL專案實戰)
客戶端:useragent獲取 (Hadoop基礎課程)
==> 如上兩個操作:採用離線(Spark/MapReduce)的方式進行統計
實現步驟:
課程編號、ip資訊、useragent
進行相應的統計分析操作:MapReduce/Spark
專案架構
日誌收集:Flume
離線分析:MapReduce/Spark
統計結果圖形化展示
問題
小時級別
10分鐘
5分鐘
1分鐘
秒級別
如何解決??? ==》 實時流處理框架
離線計算與實時計算的對比
1) 資料來源
離線: HDFS 歷史資料 資料量比較大
實時: 訊息佇列(Kafka),實時新增/修改記錄過來的某一筆資料
2)處理過程
離線: MapReduce: map + reduce
實時: Spark(DStream/SS)
3) 處理速度
離線: 慢
實時: 快速
4)程序
離線: 啟動+銷燬
實時: 7*24
實時流處理框架的產生背景
時效性高 資料量大
實時流處理與離線處理的對比
1.資料來源
2.處理過程
3.處理速度
4.程序(MapReduce程序啟動與銷燬,需要消耗大量資源,而且實時性跟不上)
實時流框架對比
1.Storm(真正的來一個處理一個)
2.Spark Streaming(時間間隔小批次處理)
3.IBM Stream
4.Yahoo!S4
5.LinkedIn kafka、Flink(可離線可實時)
實時流處理架構與技術選型
當檢視課程或者搜尋資訊都會產生一個請求,有一條日誌資訊記錄到web Server上,如Njxs/tomcat伺服器,再通過flume收集,再通過訊息佇列Kafka,spark/storm實時流處理從Kafka獲取,能夠起到很好的緩衝作用,再將處理結果寫道RDBMS/NoSQL中,再通過視覺化展示出來。
實時流處理在企業中的應用
1)電信行業
當流量快使用完時,實時傳送簡訊提醒
2)電商行業
購物時,買A產品,會推薦與A相似的B產品