官术网_书友最值得收藏!

1.2 企業(yè)級大數(shù)據(jù)技術框架

大數(shù)據(jù)嘗試從海量數(shù)據(jù)中,通過一定的分布式技術手段,挖掘出有價值的信息,最終提供給用戶,進而產生實用價值和商業(yè)價值。由于數(shù)據(jù)本身的多樣性以及數(shù)據(jù)分析需求的多元化,大數(shù)據(jù)技術體系非常復雜,涉及的組件和模塊眾多,為了便于讀者從頂層框架上對大數(shù)據(jù)有一個清楚的認識,本節(jié)嘗試概括大數(shù)據(jù)技術框架。

在互聯(lián)網領域,數(shù)據(jù)無處不在。以電子商務應用為例,如圖1-1所示,當用戶通過瀏覽器在淘寶上查看或購買商品時,會向淘寶后端HTTP服務器發(fā)送HTTP請求,這些HTTP服務器收到請求后,會將相應的內容返回給用戶,同時以日志的形式將用戶訪問記錄傳大數(shù)據(jù)系統(tǒng),以便能夠通過大數(shù)據(jù)技術理解用戶的行為意圖,進而為廣告投放、商品推薦等提供數(shù)據(jù)支持。本節(jié)將嘗試剖析其間用到的基本的大數(shù)據(jù)技術。

圖1-1 數(shù)據(jù)產生到入庫大數(shù)據(jù)系統(tǒng)

從數(shù)據(jù)在信息系統(tǒng)中的生命周期看,大數(shù)據(jù)從數(shù)據(jù)源開始,經過分析、挖掘到最終獲得價值一般需要經過6個主要環(huán)節(jié)改編自工業(yè)和信息化部電信研究院《2014大數(shù)據(jù)白皮書》,由五層架構擴展為六層,增加了資源管理與服務協(xié)調層,包括數(shù)據(jù)收集、數(shù)據(jù)存儲、資源管理與服務協(xié)調、計算引擎、數(shù)據(jù)分析和數(shù)據(jù)可視化,技術體系如圖1-2所示。每個環(huán)節(jié)都面臨不同程度的技術挑戰(zhàn)。

圖1-2 企業(yè)級大數(shù)據(jù)技術體系

1.2.1 數(shù)據(jù)收集層

數(shù)據(jù)收集層由直接跟數(shù)據(jù)源對接的模塊構成,負責將數(shù)據(jù)源中的數(shù)據(jù)近實時或實時收集到一起。數(shù)據(jù)源具有分布式、異構性、多樣化及流式產生等特點:

? 分布式:數(shù)據(jù)源通常分布在不同機器或設備上,并通過網絡連接在一起。

? 異構性:任何能夠產生數(shù)據(jù)的系統(tǒng)均可以稱為數(shù)據(jù)源,比如Web服務器、數(shù)據(jù)庫、傳感器、手環(huán)、視頻攝像頭等。

? 多樣化:數(shù)據(jù)的格式是多種多種多樣的,既有像用戶基本信息這樣的關系型數(shù)據(jù),也有如圖片、音頻和視頻等非關系型數(shù)據(jù)。

? 流式產生:數(shù)據(jù)源如同“水龍頭”一樣,會源源不斷地產生“流水”(數(shù)據(jù)),而數(shù)據(jù)收集系統(tǒng)應實時或近實時地將數(shù)據(jù)發(fā)送到后端,以便及時對數(shù)據(jù)進行分析。

由于數(shù)據(jù)源具有以上特點,將分散的數(shù)據(jù)源中的數(shù)據(jù)收集到一起通常是一件十分困難的事情。一個適用于大數(shù)據(jù)領域的收集系統(tǒng),一般具備以下幾個特點:

? 擴展性:能夠靈活適配不同的數(shù)據(jù)源,并能接入大量數(shù)據(jù)源而不會產生系統(tǒng)瓶頸;

? 可靠性:數(shù)據(jù)在傳輸過程中不能夠丟失(有些應用可容忍少量數(shù)據(jù)丟失)。

? 安全性:對于一些敏感數(shù)據(jù),應有機制保證數(shù)據(jù)收集過程中不會產生安全隱患。

? 低延遲:數(shù)據(jù)源產生的數(shù)據(jù)量往往非常龐大,收集系統(tǒng)應該能夠在較低延遲的前提下將數(shù)據(jù)傳輸?shù)胶蠖舜鎯ο到y(tǒng)中。

為了讓后端獲取全面的數(shù)據(jù),以便進行關聯(lián)分析和挖掘,通常我們建議將數(shù)據(jù)收集到一個中央化的存儲系統(tǒng)中。

1.2.2 數(shù)據(jù)存儲層

數(shù)據(jù)存儲層主要負責海量結構化與非結構化數(shù)據(jù)的存儲。傳統(tǒng)的關系型數(shù)據(jù)庫(比如MySQL)和文件系統(tǒng)(比如Linux文件系統(tǒng))因在存儲容量、擴展性及容錯性等方面的限制,很難適應大數(shù)據(jù)應用場景。

在大數(shù)據(jù)時代,由于數(shù)據(jù)收集系統(tǒng)會將各類數(shù)據(jù)源源不斷地發(fā)到中央化存儲系統(tǒng)中,這對數(shù)據(jù)存儲層的擴展性、容錯性及存儲模型等有較高要求,總結如下:

? 擴展性:在實際應用中,數(shù)據(jù)量會不斷增加,現(xiàn)有集群的存儲能力很快將達到上限,此時需要增加新的機器擴充存儲能力,這要求存儲系統(tǒng)本身具備非常好的線性擴展能力。

? 容錯性:考慮到成本等因素,大數(shù)據(jù)系統(tǒng)從最初就假設構建在廉價機器上,這就要求系統(tǒng)本身就有良好的容錯機制確保在機器出現(xiàn)故障時不會導致數(shù)據(jù)丟失。

? 存儲模型:由于數(shù)據(jù)具有多樣性,數(shù)據(jù)存儲層應支持多種數(shù)據(jù)模型,確保結構化和非結構化的數(shù)據(jù)能夠很容易保存下來。

1.2.3 資源管理與服務協(xié)調層

隨著互聯(lián)網的高速發(fā)展,各類新型應用和服務不斷出現(xiàn)。在一個公司內部,既存在運行時間較短的批處理作業(yè),也存在運行時間很長的服務,為了防止不同應用之間相互干擾,傳統(tǒng)做法是將每類應用單獨部署到獨立的服務器上。該方案簡單易操作,但存在資源利用率低、運維成本高和數(shù)據(jù)共享困難等問題。為了解決這些問題,公司開始嘗試將所有這些應用部署到一個公共的集群中,讓它們共享集群的資源,并對資源進行統(tǒng)一使用,同時采用輕量級隔離方案對各個應用進行隔離,因此便誕生了輕量級彈性資源管理平臺,相比于“一種應用一個集群”的模式,引入資源統(tǒng)一管理層可以帶來眾多好處:

? 資源利用率高:如圖1-3所示,如果每個應用一個集群,則往往由于應用程序數(shù)量和資源需求的不均衡,使得在某段時間內有些應用的集群資源緊張,而另外一些集群資源空閑。共享集群模式通過多種應用共享資源,使得集群中的資源得到充分利用。

圖1-3 共享集群模式使得資源利用率提高

? 運維成本低:如果采用“一個應用一個集群”的模式,則可能需要多個管理員管理這些集群,進而增加運維成本。而共享模式通常需要少數(shù)管理員即可完成多個框架的統(tǒng)一管理。

? 數(shù)據(jù)共享:隨著數(shù)據(jù)量的暴增,跨集群間的數(shù)據(jù)移動不僅需花費更長的時間,且硬件成本也會大大增加,而共享集群模式可讓多種應用共享數(shù)據(jù)和硬件資源,這將大大減小數(shù)據(jù)移動帶來的成本。

在構建分布式大數(shù)據(jù)系統(tǒng)時,會面臨很多共同的問題,包括leader選舉、服務命名、分布式隊列、分布式鎖、發(fā)布訂閱功能等,為了避免重復開發(fā)這些功能,通常會構建一個統(tǒng)一的服務協(xié)調組件,包含了開發(fā)分布式系統(tǒng)過程中通用的功能。

1.2.4 計算引擎層

在實際生產環(huán)境中,針對不同的應用場景,我們對數(shù)據(jù)處理的要求是不同的,有些場景下,只需離線處理數(shù)據(jù),對實時性要求不高,但要求系統(tǒng)吞吐率高,典型的應用是搜索引擎構建索引;有些場景下,需對數(shù)據(jù)進行實時分析,要求每條數(shù)據(jù)處理延遲盡可能低,典型的應用是廣告系統(tǒng)及信用卡欺詐檢測。為了解決不同場景下數(shù)據(jù)處理問題,起初有人嘗試構建一個大統(tǒng)一的系統(tǒng)解決所有類型的數(shù)據(jù)計算問題,但最終以失敗告終。究其原因,主要是因為不同類型的計算任務,其追求的目標是不同的,批處理計算追求的是高吞吐率,而實時計算追求的是低延遲。在現(xiàn)實系統(tǒng)中,系統(tǒng)吞吐率和處理延遲往往是矛盾的兩個優(yōu)化方向:系統(tǒng)吞吐率非常高時,數(shù)據(jù)處理延遲往往也非常高,基于此,用一個系統(tǒng)完美解決所有類型的計算任務是不現(xiàn)實的。

計算引擎發(fā)展到今天,已經朝著“小而美”的方向前進,即針對不同應用場景,單獨構建一個計算引擎,每種計算引擎只專注于解決某一類問題,進而形成了多樣化的計算引擎。計算引擎層是大數(shù)據(jù)技術中最活躍的一層,直到今天,仍不斷有新的計算引擎被提出。如圖1-4所示,總體上講,可按照對時間性能的要求,將計算引擎分為三類:

圖1-4 計算引擎分類

? 批處理:該類計算引擎對時間要求最低,一般處理時間為分鐘到小時級別,甚至天級別,它追求的是高吞吐率,即單位時間內處理的數(shù)據(jù)量盡可能大,典型的應用有搜索引擎構建索引、批量數(shù)據(jù)分析等。

? 交互式處理:該類計算引擎對時間要求比較高,一般要求處理時間為秒級別,這類系統(tǒng)需要跟人進行交互,因此會提供類SQL的語言便于用戶使用,典型的應用有數(shù)據(jù)查詢、參數(shù)化報表生成等。

? 實時處理:該類計算引擎對時間要求最高,一般處理延遲在秒級以內,典型的應用有廣告系統(tǒng)、輿情監(jiān)測等。

1.2.5 數(shù)據(jù)分析層

數(shù)據(jù)分析層直接跟用戶應用程序對接,為其提供易用的數(shù)據(jù)處理工具。為了讓用戶分析數(shù)據(jù)更加容易,計算引擎會提供多樣化的工具,包括應用程序API、類SQL查詢語言、數(shù)據(jù)挖掘SDK等。

在解決實際問題時,數(shù)據(jù)科學家往往需根據(jù)應用的特點,從數(shù)據(jù)分析層選擇合適的工具,大部分情況下,可能會結合使用多種工具,典型的使用模式是:首先使用批處理框架對原始海量數(shù)據(jù)進行分析,產生較小規(guī)模的數(shù)據(jù)集,在此基礎上,再使用交互式處理工具對該數(shù)據(jù)集進行快速查詢,獲取最終結果。

1.2.6 數(shù)據(jù)可視化層

數(shù)據(jù)可視化技術指的是運用計算機圖形學和圖像處理技術,將數(shù)據(jù)轉換為圖形或圖像在屏幕上顯示出來,并進行交互處理的理論、方法和技術。它涉及計算機圖形學、圖像處理、計算機輔助設計、計算機視覺及人機交互技術等多個領域。

數(shù)據(jù)可視化層是直接面向用戶展示結果的一層,由于該層直接對接用戶,是展示大數(shù)據(jù)價值的“門戶”,因此數(shù)據(jù)可視化是極具意義的。考慮到大數(shù)據(jù)具有容量大、結構復雜和維度多等特點,對大數(shù)據(jù)進行可視化是極具挑戰(zhàn)性的。下面我們舉例說明發(fā)展可視技術的意義及挑戰(zhàn)。

在醫(yī)學領域,為了認識人體內部結構,美國國家醫(yī)學圖書館于1989年開始實施可視化人體計劃(ⅤHP),并委托科羅拉多大學醫(yī)學院建立了一男一女的全部解剖結構數(shù)據(jù)庫。他們分別將男女不同性別的兩具尸體從頭到腳做CT掃描和核磁共振掃描(男的間距1毫米,共1878個斷面;女的間距0.33毫米,共5189個斷面),然后將尸體填充藍色乳膠并裹以明膠后冰凍至零下80攝氏度,再以同樣的間距對尸體作組織切片的數(shù)碼相機攝影,分辨率為2048 ×1216,最終所得數(shù)據(jù)共56GB(男13GB,女43GB)。全球用戶可以在美國國家醫(yī)學圖書館允許的情況下獲得該數(shù)據(jù)并用于教學和科學研究。ⅤHP數(shù)據(jù)集的出現(xiàn)標志著計算機三維重構圖像和虛擬現(xiàn)實技術進入了醫(yī)學領域,從而大大促進了醫(yī)學的發(fā)展和普及。

主站蜘蛛池模板: 花莲县| 远安县| 济南市| 延吉市| 永嘉县| 湘潭市| 那坡县| 错那县| 成安县| 鞍山市| 淮南市| 确山县| 华容县| 武隆县| 鹤山市| 宁乡县| 饶平县| 龙井市| 邵阳市| 平舆县| 临海市| 黑山县| 比如县| 临清市| 宁波市| 泽库县| 古丈县| 涡阳县| 江华| 长葛市| 建宁县| 博乐市| 衡阳县| 大田县| 贺州市| 海原县| 婺源县| 秦安县| 鱼台县| 烟台市| 县级市|