GetInsight組件技術及功能(二):分布式消息系統(tǒng)和流處理框架
GetInsight是慧都自主研發(fā)、應用最靈活的大數(shù)據(jù)平臺。能夠幫助您隨時找到您想要的數(shù)據(jù),使數(shù)據(jù)得到安全、穩(wěn)定和高效的管理與應用。GetInsight是企業(yè)大數(shù)據(jù)解決方案的重要組成部分,除了提供完整的大數(shù)據(jù)功能組件,我們還提供組件自定義搭配,為企業(yè)選擇滿足方案需要的大數(shù)據(jù)功能組件,使您的大數(shù)據(jù)解決方案成本降到最低,從而高品質的解決您的大數(shù)據(jù)需求問題。
了解什么是GetInsight,請點擊這里查看GetInsight的基礎介紹>>
本文主要跟大家介紹GetInsight的分布式消息系統(tǒng)和分布式流處理框架。
分布式消息系統(tǒng)
分布式消息系統(tǒng)是一個分布式消息隊列:生產(chǎn)者、消費者的功能。它提供了類似于JMS的特性,但是在設計實現(xiàn)上完全不同,此外它并不是JMS規(guī)范的實現(xiàn)。
分布式消息系統(tǒng)是用于構建實時數(shù)據(jù)管道和流應用程序。具有橫向擴展、容錯、速度快等優(yōu)點。
分布式消息系統(tǒng)對消息保存時根據(jù)主題進行歸類,發(fā)送消息者成為生產(chǎn)者,消息接受者成為消費者,此外分布式消息系統(tǒng)集群有多個實例組成,每個實例(server)成為broker。無論是分布式消息系統(tǒng)集群,還是生產(chǎn)者和消費者都依賴于分布式協(xié)調工具來保證系統(tǒng)可用性集群保存一些meta信息。
GetInsight分布式消息系統(tǒng)的特性
- 構建實時的流數(shù)據(jù)管道,可靠地獲取系統(tǒng)和應用程序之間的數(shù)據(jù)。
- 構建實時流的應用程序,對數(shù)據(jù)流進行轉換或反應。
- 以容錯的方式存儲消息流。
- 在消息發(fā)生的時候處理消息流。
- 集群支持熱擴展
- 消息被處理的狀態(tài)是在consumer端維護,而不是由server端維護。當失敗時能自動平衡。
- 高吞吐量:可以滿足每秒百萬級別消息的生產(chǎn)和消費。
- 持久性:有一套完善的消息存儲機制,確保數(shù)據(jù)的高效安全的持久化。
- 分布式:基于分布式的擴展和容錯機制;分布式消息系統(tǒng)的數(shù)據(jù)都會復制到幾臺服務器上。當某一臺故障失效時,生產(chǎn)者和消費者轉而使用其它的機器,允許集群中節(jié)點失?。ㄈ舾北緮?shù)量為n,則允許n-1個節(jié)點失?。?。
- 支持實時在線處理和離線處理:可以使用分布式流處理工具這種實時流處理系統(tǒng)對消息進行實時進行處理,同時還可以使用Hadoop這種批處理系統(tǒng)進行離線處理。
GetInsight分布式消息系統(tǒng)的功能
在大數(shù)據(jù)平臺上,分布式消息系統(tǒng)主要是用來處理實時流數(shù)據(jù),作為一個消息中間件來使用,用來接收其他組件或服務實時產(chǎn)生的消息數(shù)據(jù),這可以是大量的,產(chǎn)生的速度也可以是很快的,分布式消息系統(tǒng)提供了主題的概念,它會根據(jù)消息的主題分類存儲起來,提供了持久化機制,容錯機制,處理的速度效率非???。然后結合大數(shù)據(jù)平臺上其他的組件如分布式流處理框架來對消息系統(tǒng)上的消息進行消費。消費的處理是在消費者角色端進行。
GetInsight分布式消息系統(tǒng)的應用場景
日志收集,分布式消息系統(tǒng)可以收集各種服務的log,通過消息系統(tǒng)以統(tǒng)一接口服務的方式開放給各種consumer,例如Hadoop、Hbase、Solr等。
運營指標:Kafka也經(jīng)常用來記錄運營監(jiān)控數(shù)據(jù)。包括收集各種分布式應用的數(shù)據(jù),生產(chǎn)各種操作的集中反饋,比如報警和報告。
作為一個大量的,高吞吐量的數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)緩沖,因為當信息采集平臺將這些變化的數(shù)據(jù)信息寫入或更新到數(shù)據(jù)庫時候,會給數(shù)據(jù)庫代理非常大的壓力,甚至可以直接將數(shù)據(jù)庫掛掉。所以就可以使用分布式消息系統(tǒng)來作為一個中間件,對實時的大量的數(shù)據(jù)進行緩沖,然后再寫入到數(shù)據(jù)庫中。
數(shù)據(jù)中心處理過的數(shù)據(jù)需要實時共享給幾個不同的機構。我們常采用的方法是將數(shù)據(jù)批量存放在數(shù)據(jù)采集機,分支機構定時來采集;或是分支機構通過JDBC、RPC、HTTP或其他機制實時從數(shù)據(jù)中心獲取數(shù)據(jù)。這兩種方式都存在一定的問題,前者在于實時性不足,還牽涉到數(shù)據(jù)完整性問題;后者在于,當數(shù)據(jù)量很大的時候,多個分支機構同時讀取數(shù)據(jù),會對數(shù)據(jù)中心的造成很大的壓力,也造成很大的資源浪費。所以也可以用到分布式消息系統(tǒng)來解決這兩個問題。
分布式流處理框架
分布式流處理框架是一種構建在分布式計算框架上的實時計算處理框架,它擴展了分布式計算框架處理大規(guī)模流式數(shù)據(jù)的能力。
分布式流處理框架在內(nèi)部的處理機制是:接收實時流的數(shù)據(jù),并根據(jù)一定的時間間隔拆分成一批批的數(shù)據(jù),然后通過分布式計算框架處理這些批數(shù)據(jù),最終得到處理后的一批批結果數(shù)據(jù)。對應的批數(shù)據(jù),在計算框架內(nèi)核對應一個RDD實例,因此,對應流數(shù)據(jù)的DStream可以看成是一組RDDs,即RDD的一個序列。通俗點理解的話,在流數(shù)據(jù)分成一批一批后,通過一個先進先出的隊列,然后分布式計算框架從該隊列中依次取出一個個批數(shù)據(jù),把批數(shù)據(jù)封裝成一個RDD,然后進行處理。
分布式流處理框架對數(shù)據(jù)的處理其實并不是真正意義上的實時,并不是真正來一條數(shù)據(jù)就處理一條數(shù)據(jù),而是根據(jù)分隔的時間片(例如1秒鐘)來做到的準實時,把每一個時間片內(nèi)到達的數(shù)據(jù)看做一組數(shù)據(jù)進行處理。所以,分布式流處理框架能做到的就是在秒級別的實時相應。
GetInsight分布式流處理框架的特性
- 能在分布式環(huán)境中運行,并達到秒級延遲。
- 使用基于內(nèi)存執(zhí)行引擎,具有高效和容錯的特性。
- 能集成分布式計算框架的批處理和交互查詢。
- 為實現(xiàn)復雜的算法提供和批處理類似的簡單接口。
- 開發(fā)語言支持多種,scala、Java、Python,R
- 數(shù)據(jù)源廣泛。
GetInsight分布式流處理框架的功能
對數(shù)據(jù)來源的實時流數(shù)據(jù)進行實時的處理,通過設置時間間隔的方式來滿足不同業(yè)務需求對實時性的不同要求,間隔設置得越小,實時性就會越高。但是數(shù)據(jù)的處理是需要時間的,雖然分布式流處理框架的數(shù)據(jù)處理能力非常強,而且處理的速度特別快,但是當數(shù)據(jù)量大到一定程度,也是需要時間來處理的,所以這個時間間隔設置得需要合理,不能夠太短,太短就會導致異常。
GetInsight分布式流處理框架的應用場景
分布式流處理技術應用場景主要體現(xiàn)在三個大的方面:實時營銷、實時服務、實時監(jiān)控以及實時同步應用場景。
實時營銷:根據(jù)特定消費者當前的個性需求,為其提供商品,該商品在被消費過程中可自動收集顧客信息,分析、了解消費者的偏好和習慣,自動調整產(chǎn)品功能,實時地適應消費者變化著的需求,金融、電商以及廣告等行業(yè)有較多應用場景體現(xiàn)。金融:根據(jù)客戶信用卡消費記錄,掌握客戶的消費習慣和偏好,預測客戶未來的消費需求,并為其推薦個性化的金融產(chǎn)品。電商:根據(jù)電商平臺用戶瀏覽商品的分類、價格區(qū)間、品牌等因素對用戶進行個性化推薦促成交易。廣告:根據(jù)客戶的查詢偏好、瀏覽歷史、地理位置等綜合語義決定插入什么廣告、在什么位置插入這些廣告能得到最佳效果。電商平臺、非電商業(yè)務系統(tǒng)以及外部數(shù)據(jù)共同描繪出用戶畫像,當用戶訪問電商網(wǎng)站、電商APP等觸點時,根據(jù)用戶畫像為用戶進行商品、商戶等個性化實時推薦。再根據(jù)用戶操作進行推薦算法以及畫像修正。
實時服務:對消費者動態(tài)需求的快速反應,隨時滿足消費者在消費過程中新產(chǎn)生的需求,提高消費者的滿意程度,培養(yǎng)消費者對企業(yè)的忠誠度并提升企業(yè)的競爭力,社交、電信以及交通等行業(yè)有較多應用場景體現(xiàn)。社交:實時分析用戶的狀態(tài)信息,及時提供最新的用戶分享信息到相關的朋友,準確地推薦朋友,推薦主題,提升用戶體驗,并能及時發(fā)現(xiàn)和屏蔽各種欺騙行為。交通:實時接收用戶使用手機軟件發(fā)送的約車請求,司機根據(jù)約車請求進行接單(或派單),到達目的地后進行實時結算服務。電信:用戶流量、資費實時統(tǒng)計做到個性化提醒服務;套餐、終端、閱讀、動漫等根據(jù)用戶畫像進行個性化推薦服務。由于打車服務是典型的基于LBS(地理位置實時定位系統(tǒng))的應用,實時性要求高且用戶請求服務器并發(fā)量大。司機每隔幾秒鐘上報一次經(jīng)緯度,乘客發(fā)單時,圈選出附近司機,將訂單推送給司機,司機接單,開始服務。
實時監(jiān)控:實時監(jiān)控一般是指利用軟件或硬件采集信息,并用采集到的信息對系統(tǒng)、環(huán)境、硬件等運行狀態(tài)進行實時的監(jiān)控。制造:對機械運行狀態(tài)信息進行實時監(jiān)控,分析出可能產(chǎn)生問題的部件進行預警。交通:通過傳感器實時感知車輛、道路的狀態(tài),并分析和預測一定范圍、一段時間內(nèi)的道路流量情況,以便有效地進行分流、調度和指揮。金融:信用卡詐騙、保險詐騙、證券交易詐騙、程序交易等需要實時跟蹤發(fā)現(xiàn)。
實時同步:對一些異構數(shù)據(jù)庫之間進行實時數(shù)據(jù)同步,當然,需要用到分布式流處理框架的實時同步一般是產(chǎn)生數(shù)據(jù)量比較快,數(shù)據(jù)量很大的情況下,由于傳統(tǒng)的同步方法一試沒有消息中間件來緩沖大量的數(shù)據(jù),而是對數(shù)據(jù)類型的轉換需要時間,不能滿足實時性的要求,所以就可以用到分布式流處理框架結合分布式消息系統(tǒng)來滿足。消息系統(tǒng)負責緩沖實時數(shù)據(jù),流處理框架負責處理實時數(shù)據(jù),進行類型轉換計算等,然后寫入到目標數(shù)據(jù)庫或者文件中,由于分布式流處理框架是基于分布式就算框架的,而分布式計算框架是基于內(nèi)存的,且是分布式運行,多以速度非???,能夠滿足實時性要求,所以,分布式流處理框架也可以用來做實時同步工具。
慧都工業(yè)大數(shù)據(jù)分析方案即將精益生產(chǎn)理論體系進行了完美的融合和應用,并對大數(shù)據(jù)總體架構進行了更細致明確的解讀,提供自主研發(fā)的大數(shù)據(jù)平臺,實現(xiàn)ETL、數(shù)據(jù)管理及存儲、數(shù)據(jù)建模。如下圖所示:
關于慧都大數(shù)據(jù)分析平臺
慧都大數(shù)據(jù)分析平臺「GetInsight®」升級發(fā)布,將基于企業(yè)管理駕駛艙、產(chǎn)品質量分析及預測、設備分析及預測等大數(shù)據(jù)模型的構建,助力企業(yè)由傳統(tǒng)運營模式向數(shù)字化、智能化的新模式轉型升級,抓住數(shù)據(jù)經(jīng)濟的發(fā)展勢頭,提供管理效能,精準布局未來。了解更多,請聯(lián)系在線客服。
慧都大數(shù)據(jù)專業(yè)團隊為企業(yè)提供商業(yè)智能大數(shù)據(jù)平臺搭建,免費業(yè)務咨詢,定制開發(fā)等完整服務,快速、輕松、低成本將任何Hadoop集群從試用階段轉移到生產(chǎn)階段。
歡迎撥打慧都熱線023-68661681或咨詢慧都在線客服,我們有專業(yè)的大數(shù)據(jù)團隊,為您提供免費大數(shù)據(jù)相關業(yè)務咨詢!