
實時計算 流數(shù)據(jù)處理系統(tǒng)簡單分析_數(shù)據(jù)分析師
一. 實時計算的概念
實時計算一般都是針對海量數(shù)據(jù)進行的,一般要求為秒級。實時計算主要分為兩塊:數(shù)據(jù)的實時入庫、數(shù)據(jù)的實時計算。
主要應用的場景:
1) 數(shù)據(jù)源是實時的不間斷的,要求用戶的響應時間也是實時的(比如對于大型網站的流式數(shù)據(jù):網站的訪問PV/UV、用戶訪問了什么內容、搜索了什么內容等,實時的數(shù)據(jù)計算和分析可以動態(tài)實時地刷新用戶訪問數(shù)據(jù),展示網站實時流量的變化情況,分析每天各小時的流量和用戶分布情況)
2) 數(shù)據(jù)量大且無法或沒必要預算,但要求對用戶的響應時間是實時的。比如說:
昨天來自每個省份不同性別的訪問量分布,昨天來自每個省份不同性別不同年齡不同職業(yè)不同名族的訪問量分布。
二. 實時計算的相關技術
主要分為三個階段(大多是日志流):
數(shù)據(jù)的產生與收集階段、傳輸與分析處理階段、存儲對對外提供服務階段
下面具體針對上面三個階段詳細介紹下
1)數(shù)據(jù)實時采集:
需求:功能上保證可以完整的收集到所有日志數(shù)據(jù),為實時應用提供實時數(shù)據(jù);響應時間上要保證實時性、低延遲在1秒左右;配置簡單,部署容易;系統(tǒng)穩(wěn)定可靠等。
目前的產品:Facebook的Scribe、LinkedIn的Kafka、Cloudera的Flume,淘寶開源的TimeTunnel、Hadoop的Chukwa等,均可以滿足每秒數(shù)百MB的日志數(shù)據(jù)采集和傳輸需求。他們都是開源項目。
2)數(shù)據(jù)實時計算
在流數(shù)據(jù)不斷變化的運動過程中實時地進行分析,捕捉到可能對用戶有用的信息,并把結果發(fā)送出去。
實時計算目前的主流產品:
關于這三個產品的具體介紹架構分析:http://www.kuqin.com/system-analysis/20120111/317322.html
下面是S4和Storm的詳細對比
其他的產品:
早期的:IBM的Stream Base、 Borealis、Hstreaming、Esper
4. 淘寶的實時計算、流式處理
1) 銀河流數(shù)據(jù)處理平臺:通用的流數(shù)據(jù)實時計算系統(tǒng),以實時數(shù)據(jù)產出的低延遲、高吞吐和復用性為初衷和目標,采用actor模型構建分布式流數(shù)據(jù)計算框架(底層基于akka),功能易擴展、部分容錯、數(shù)據(jù)和狀態(tài)可監(jiān)控。銀河具有處理實時流數(shù)據(jù)(如TimeTunnel收集的實時數(shù)據(jù))和靜態(tài)數(shù)據(jù)(如本地文件、HDFS文件)的能力,能夠提供靈活的實時數(shù)據(jù)輸出,并提供自定義的數(shù)據(jù)輸出接口以便擴展實時計算能力。銀河目前主要是為魔方提供實時的交易、瀏覽和搜索日志等數(shù)據(jù)的實時計算和分析。
2) 基于Storm的流式處理,統(tǒng)計計算、持續(xù)計算、實時消息處理。
在淘寶,Storm被廣泛用來進行實時日志處理,出現(xiàn)在實時統(tǒng)計、實時風控、實時推薦等場景中。一般來說,我們從類kafka的metaQ或者基于HBase的timetunnel中讀取實時日志消息,經過一系列處理,最終將處理結果寫入到一個分布式存儲中,提供給應用程序訪問。我們每天的實時消息量從幾百萬到幾十億不等,數(shù)據(jù)總量達到TB級。對于我們來說,Storm往往會配合分布式存儲服務一起使用。在我們正在進行的個性化搜索實時分析項目中,就使用了timetunnel +HBase + Storm + UPS的架構,每天處理幾十億的用戶日志信息,從用戶行為發(fā)生到完成分析延遲在秒級。
3) 利用Habase實現(xiàn)的Online應用
4)實時查詢服務
關于實時計算流數(shù)據(jù)分析應用舉例:
對于電子商務網站上的店鋪:
1) 實時展示一個店鋪的到訪顧客流水信息,包括訪問時間、訪客姓名、訪客地理位置、訪客IP、訪客正在訪問的頁面等信息;
2) 顯示某個到訪顧客的所有歷史來訪記錄,同時實時跟蹤顯示某個訪客在一個店鋪正在訪問的頁面等信息;
3) 支持根據(jù)訪客地理位置、訪問頁面、訪問時間等多種維度下的實時查詢與分析。
下面對Storm詳細介紹下:
整體架構圖
整個數(shù)據(jù)處理流程包括四部分:
第一部分是數(shù)據(jù)接入該部分從前端業(yè)務系統(tǒng)獲取數(shù)據(jù)。
第二部分是最重要的Storm 實時處理部分,數(shù)據(jù)從接入層接入,經過實時處理后傳入數(shù)據(jù)落地層;
第三部分為數(shù)據(jù)落地層,該部分指定了數(shù)據(jù)的落地方式;
第四部分元數(shù)據(jù)管理器。
數(shù)據(jù)接入層
該部分有多種數(shù)據(jù)收集方式,包括使用消息隊列(MetaQ),直接通過網絡Socket傳輸數(shù)據(jù),前端業(yè)務系統(tǒng)專有數(shù)據(jù)采集API,對Log問價定時監(jiān)控。(注:有時候我們的數(shù)據(jù)源是已經保存下來的log文件,那Spout就必須監(jiān)控Log文件的變化,及時將變化部分的數(shù)據(jù)提取寫入Storm中,這很難做到完全實時性。)
Storm實時處理層
首先我們通過一個 Storm 和Hadoop的對比來了解Storm中的基本概念。
(Storm關注的是數(shù)據(jù)多次處理一次寫入,而Hadoop關注的是數(shù)據(jù)一次寫入,多次處理使用(查詢)。Storm系統(tǒng)運行起來后是持續(xù)不斷的,而Hadoop往往只是在業(yè)務需要時調用數(shù)據(jù)。兩者關注及應用的方向不一樣。)
1. Nimbus:負責資源分配和任務調度。
2. Supervisor:負責接受nimbus分配的任務,啟動和停止屬于自己管理的worker進程。
3. Worker:運行具體處理組件邏輯的進程。
4. Task:worker中每一個spout/bolt的線程稱為一個task. 在Storm0.8之后,task不再與物理線程對應,同一個spout/bolt的task可能會共享一個物理線程,該線程稱為executor。
具體業(yè)務需求:條件過濾、中間值計算、求topN、推薦系統(tǒng)、分布式RPC、熱度統(tǒng)計
數(shù)據(jù)落地層:
MetaQ
如圖架構所示,Storm與MetaQ是有一條虛線相連的,部分數(shù)據(jù)在經過實時處理之后需要寫入MetaQ之中,因為后端業(yè)務系統(tǒng)需要從MetaQ中獲取數(shù)據(jù)。這嚴格來說不算是數(shù)據(jù)落地,因為數(shù)據(jù)沒有實實在在寫入磁盤中持久化。
Mysql
數(shù)據(jù)量不是非常大的情況下可以使用Mysql作為數(shù)據(jù)落地的存儲對象。Mysql對數(shù)據(jù)后續(xù)處理也是比較方便的,且網絡上對Mysql的操作也是比較多的,在開發(fā)上代價比較小,適合中小量數(shù)據(jù)存儲。
HDFS及基于Hadoop的分布式文件系統(tǒng)。許多日志分析系統(tǒng)都是基于HDFS搭建出來的,所以開發(fā)Storm與HDFS的數(shù)據(jù)落地接口將很有必要。例如將大批量數(shù)據(jù)實時處理之后存入Hive中,提供給后端業(yè)務系統(tǒng)進行處理,例如日志分析,數(shù)據(jù)挖掘等等。
Lustre
Lustre作為數(shù)據(jù)落地的應用場景是,數(shù)據(jù)量很大,且處理后目的是作為歸檔處理。這種情形,Lustre能夠為數(shù)據(jù)提供一個比較大(相當大)的數(shù)據(jù)目錄,用于數(shù)據(jù)歸檔保存。
元數(shù)據(jù)管理器的設計目的是,整個系統(tǒng)需要一個統(tǒng)一協(xié)調的組件,指導前端業(yè)務系統(tǒng)的數(shù)據(jù)寫入,通知實時處理部分數(shù)據(jù)類型及其他數(shù)據(jù)描述,及指導數(shù)據(jù)如何落地。元數(shù)據(jù)管理器貫通整個系統(tǒng),是比較重要的組成部分。元數(shù)據(jù)設計可以使用mysql存儲元數(shù)據(jù)信息,結合緩存機制開源軟件設計而成。數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經網絡(RNN)家族中,長短期記憶網絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內權威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網絡(LSTM)作為循環(huán)神經網絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調研數(shù)據(jù)中的深度應用? 市場調研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03