1. 程式人生 > >Spark Streaming實時流處理專案實戰筆記一

Spark Streaming實時流處理專案實戰筆記一

Spark Streaming實時流處理專案實戰筆記一

視訊資源下載:https://download.csdn.net/download/mys_mys/10778011

第一章:課程介紹

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產品