流计算
一.概述
實(shí)時(shí)獲取來自不同數(shù)據(jù)源的海量數(shù)據(jù)經(jīng)過實(shí)時(shí)分析處理,或的有價(jià)值的信息.
1.數(shù)據(jù)的處理流程
- 靜態(tài)數(shù)據(jù):數(shù)據(jù)不會(huì)發(fā)生變化,如數(shù)據(jù)倉庫中的數(shù)據(jù);
- 流數(shù)據(jù):數(shù)據(jù)以大量,快速.時(shí)變的流形式持續(xù)到達(dá).
2.流數(shù)據(jù)特征:
- 數(shù)據(jù)快速持續(xù)到達(dá),潛在大小也許是無窮無盡的;
- 數(shù)據(jù)來源眾多,格式復(fù)雜;
- 數(shù)據(jù)量大,但是不十分關(guān)注存儲(chǔ),一旦經(jīng)過處理,要么被丟棄,要么被歸檔存儲(chǔ);
- 數(shù)據(jù)順序顛倒,或者不完整,系統(tǒng)無法控制將要處理的新到達(dá)的數(shù)據(jù)元素的順序;
3.數(shù)據(jù)的分析計(jì)算
4. 大數(shù)據(jù)的典型的三大計(jì)算框架
- Hadoop
- Spark
- Strom
5.流計(jì)算基本理念
- 數(shù)據(jù)的價(jià)值隨著時(shí)間的流逝而降低;
- 當(dāng)事件出現(xiàn)時(shí)就應(yīng)該進(jìn)行處理,兒不是緩存起來進(jìn)行批處理;
- 低延遲,高可靠,可擴(kuò)展;
6.流計(jì)算系統(tǒng)要求:高性能,海量式,實(shí)時(shí)性,分布式,易用性,可靠性;
二.流計(jì)算處理流程
1.數(shù)據(jù)實(shí)時(shí)采集:通常采集多個(gè)數(shù)據(jù)源的海量數(shù)據(jù)需要保證實(shí)時(shí)性,低延遲與穩(wěn)定可靠;
2.數(shù)據(jù)采集系統(tǒng)的基本架構(gòu)
3.數(shù)據(jù)實(shí)時(shí)計(jì)算
4.實(shí)時(shí)查詢服務(wù)
5.流處理系統(tǒng)和傳統(tǒng)的數(shù)據(jù)處理系統(tǒng)的區(qū)別
三.流計(jì)算的應(yīng)用
-
電子商務(wù)
-
實(shí)時(shí)交通
四.開源流計(jì)算框架Storm
1.Storm 簡介
1.1 優(yōu)點(diǎn):
- 可以簡單,高效,可靠地處理流數(shù)據(jù),支持多種編程語言,處理非常靈活;
- 可以非常方便的與現(xiàn)有數(shù)據(jù)庫系統(tǒng)產(chǎn)品進(jìn)行融合,從而開發(fā)出非常強(qiáng)大的實(shí)時(shí)計(jì)算系統(tǒng);
1.2 特點(diǎn)
- 整合性,簡易的API;
- 可擴(kuò)展性;
- 可靠的消息處理;
- 支持各種編程語言;
- 快速部署;
- 免費(fèi)開源;
2.Storm 設(shè)計(jì)思想
2.1 Storm 將流數(shù)據(jù)Stream 描述成無限的Tuple 序列,這些Tuple 序列會(huì)以分布式的方式并行地創(chuàng)建和處理;
2.2 Spout
2.3 Bolt
2.4 Topology
2.5 Stream Groupings
3.Storm 框架設(shè)計(jì)
3.1 Storm 與Hadoop 類似;
3.2 Storm 集群采用"Master-Worker"的節(jié)點(diǎn)方式.
3.3 Strom 集群架構(gòu)圖
3.4 Worker 進(jìn)程
3.5 Storm 工作流程
四.Spark Streaming,Samza流計(jì)算框架及其比較
4.1 Spark Streaming
- 面向批處理的實(shí)時(shí)計(jì)算框架,獨(dú)特的RDD 設(shè)計(jì)方式;
4.2 Spark Streaming 的設(shè)計(jì)
- 可以整合多種數(shù)據(jù)源,如Kafka,Flume,HDFS,TCP套接字;
- 處理后的數(shù)據(jù)可以存儲(chǔ)至文件系統(tǒng),數(shù)據(jù)庫,或顯示在儀表盤里;
4.3 執(zhí)行流程
-
Spark Streaming 的基本原理是將實(shí)時(shí)輸入數(shù)據(jù)流以時(shí)間片(秒級(jí))為單位進(jìn)行拆分,然后經(jīng)Spark 引擎以類似批處理的方式處理每個(gè)時(shí)間片數(shù)據(jù);
-
DStream 操作示意圖
-
數(shù)據(jù)流的建模:
4.4 Spark Streaming 與Storm 的對比
4.5 Samza
-
基本概念:
-
作業(yè):
-
分區(qū):每一個(gè)分區(qū)都是一個(gè)消息隊(duì)列;
-
任務(wù):
-
數(shù)據(jù)流圖:
-
-
Samza 架構(gòu):
- 流數(shù)據(jù)層:負(fù)責(zé)數(shù)據(jù)流的收集分發(fā),流處理層和執(zhí)行層都被設(shè)計(jì)成可插拔的,開發(fā)人員可以使用其他框架來替代YARN 和Kafka;
- 執(zhí)行層;
- 處理層;
-
對比:
-
Storm Spark Streaming和Samza的對比
總結(jié)
- 上一篇: 【操作系统复习】操作系统的概念、功能和目
- 下一篇: 牛客16494 生活大爆炸版石头剪刀布