1. 程式人生 > >實時資料採集流程

實時資料採集流程

步驟一:

資料來源:比如,網站或者app。非常重要的一點,就是埋點。也就是說,埋點,在網站/app的哪個頁面的哪些操作發生時,前端的程式碼(網站,JavaScript;app,android/IOS),就通過網路請求,(Ajax;socket),向後端的伺服器傳送指定格式的日誌資料。

步驟二:

Nginx,後臺Web伺服器(Tomcat、Jetty等),後臺系統(J2EE、PHP)。到這一步為止,其實還是可以跟我們之前的離線日誌收集流程一樣。走後面的通過一個日誌傳輸工具,給放入指定的資料夾。

 

連線線(flume,監控指定的資料夾) 

 

步驟三:

1、HDFS
2、實時資料,通常都是從分散式訊息佇列叢集中讀取的,比如Kafka;實時資料,實時的log,實時的寫入到訊息佇列中,比如Kafka;然後呢,再由我們後端的實時資料處理程式(Storm、Spark Streaming),實時從Kafka中讀取資料,log日誌。然後進行實時的計算和處理。 Kafka

(Kafka,我們的日誌資料,怎麼處理,都是由你自己決定。可以每天收集一份,放到flume,轉移到HDFS裡面,清洗後放入Hive,建立離線的資料倉庫。 也可以每收集1分鐘的資料,或者每收集一點資料,就放入檔案,然後轉移到flume中去,或者直接通過API定製,直接把一條一條的log打入flume。可以配置flume,將資料寫入Kafka)

 

連線線(實時的,主動從Kafka中拉取資料)

 

步驟四:

大資料實時計算系統,比如說用Storm、Spark Streaming開發的,可以實時的從Kafka中拉取資料,然後對實時的資料進行處理和計算,這裡可以封裝大量複雜的業務邏輯,甚至呼叫複雜的機器學習、資料探勘、智慧推薦的演算法,然後實現實時的車輛排程、實時推薦、廣告流量的實時統計。