熱線電話:13121318867

登錄
首頁精彩閱讀系統實例 從系統角度審視大數據計算的特征及難點
系統實例 從系統角度審視大數據計算的特征及難點
2016-03-17
收藏
系統實例 從系統角度審視大數據計算的特征及難點



大數據計算是實現大數據“巨大價值”的必要手段,而計算系統是大數據計算的有效載體。試著從系統角度審視大數據計算,透過大數據的體量巨大、速度極快、模態多樣、真偽難辨等宏觀特征,針對批量計算、流式計算、大圖計算等計算形式,分別探討大數據計算的典型特征,論述了這些特征給大數據計算系統的設計與實現帶來的技術挑戰,進而梳理了為了應對這些挑戰所取得的研究成果,最后從系統角度指出未來大數據計算可能的一些研究方向。

1 引言

大數據已成為當前社會各界關注的焦點[1~4]。從一般意義上講,大數據是指在可容忍的時間內,無法用現有信息技術和軟硬件工具對其進行感知、獲取、管理、處理和服務的數據集合。大數據呈現出多種鮮明特征[3~8],在數據量方面,體量巨大,當前全球所擁有的數據總量已經遠遠超過歷史上的任何時期,更為重要的是,數據量的增加速度呈現出倍增趨勢;在數據速率方面,速度極快,數據產生、傳播的速度更快,在不同時空中流轉,呈現出鮮明的流式特征,更為重要的是,數據價值的有效時間急劇減少,也要求越來越高的數據計算和使用能力;在數據復雜性方面,模態多樣,種類繁多,在編碼方式、存儲格式、應用特征等多個方面也存在多層次、多方面的差異性,結構化、半結構化、非結構化數據并存;在數據價值方面,價值稀疏,真偽難辨,但價值總量巨大,隨著數據規模的不斷增大,隱含于大數據中的知識也隨之增多,但這些知識隱含程度很深,對發現這些知識的方式、方法提出了更高的要求。此外,大數據還呈現出個性化、不完備化、交叉復用等諸多鮮明特征。

大數據蘊含大信息,大信息提煉大知識,大知識將在更高的層面、更廣的視角、更大的范圍幫助用戶提高洞察力、提升決策力,將為人類社會創造前所未有的大價值。但與此同時,這些總量極大的價值往往隱藏在大數據中,表現出價值密度極低、分布極其不規律、信息隱藏程度極深、真偽信息交織混合發現有用價值極其困難的鮮明特性,這些特征必然為大數據的計算帶來前所未有的挑戰和機遇。

大數據計算是發現信息、挖掘知識、滿足應用的必要途徑,也是大數據從收集、傳輸、存儲、計算到應用等整個生命周期中最關鍵、最核心的環節,只有有效的大數據計算,才能滿足大數據的上層應用需要,才能挖掘出大數據的內在價值,才能使大數據具有意義。大數據計算系統是實現大數據科學計算的基礎平臺。對于規模巨大、價值稀疏、結構復雜、時效性強的大數據,其計算亦面臨不同于傳統數據計算的諸多新挑戰,如計算復雜度高、任務周期長、數據實時性強、計算通用性差等。大數據及其計算的這些挑戰對大數據計算系統的系統架構、計算框架、處理方法等提出了新的挑戰。同時,大數據時代出現了很多新的應用需求,如面向社交媒體的大圖關系分析與發現,需要結合具體的應用場景,開展針對性的關于計算模式的研究。

為了滿足和適應大數據計算的需要,隨著大數據及相關技術的全面和深入發展,大數據計算模式也呈現出多樣化、專業化特征,以滿足不同領域大數據應用范式的要求。本文首先針對大數據計算的3種代表性模式進行了深入的分析,主要包括大數據批量計算、流式計算和交互計算,對其中各計算模式的基本概念、典型特征和技術挑戰進行了系統的歸納和分類。其次,分別針對這3種計算模式中當前具有廣泛代表性的系統進行了具體實例分析。再次,從系統的角度,對3種計算模式的未來研究方向和重點進行了初步分析。最后,對全文進行了總結。

2 大數據計算模式

大數據計算模式主要包括批量計算、流式計算、交互計算3種。其中,交互計算需要在計算過程中與用戶進行互動,才能進行后續的計算動作,可以把交互計算看作批量計算的一種特殊形式。本文不再對交互計算進行深入分析。大圖計算本屬于批量計算范疇,但隨著互聯網應用的發展,其重要性日益凸顯,并且因其各個節點的關聯緊密性而具有不同于其他普通批量計算的顯著特征。本文對大圖計算進行單獨討論。

2.1 批量計算的特征及挑戰

大數據批量計算[9~13](big databatch computing)是大數據計算的一種主要計算模式,當前階段,大多數應用場景均通過批量計算模式實現。同時,批量計算也可以同其他計算模式進一步結合起來,以完成對數據的進一步處理。在大數據批量計算環境中,其計算架構如圖1所示。數據通過多個數據源進行收集,按照與應用場景所需要的方式進行組織,在各種外存存儲介質(如硬盤、磁帶等)上靜態地存儲起來。當需要進行數據計算時,開啟數據的計算過程,進行數據的集中處理,數據被處理完后,計算過程也隨之結束。在數據的計算過程中,數據的計算順序、計算速度等各種因素可以有效控制,也可以有選擇地、重復地進行部分數據的重計算。數據的計算結果是確定、準確、全面、可重現的,但數據的計算時延往往較長,往往在數分鐘到數小時之間??梢?,對于先存儲后計算的實時性要求不高,同時,對于數據的準確性、全面性更為重要的應用場景,批量計算模式更加適合。

231231023

大數據批量計算場景通常呈現出以下典型特征及挑戰。

數據體量巨大,數據量從TB級別躍升到PB級別,甚至更高。數據往往以靜態的形式在硬盤等外部存儲介質上永久存儲,一次寫入,很少再進行更新,存儲時間長,可以重復多次利用,但很難對其進行移動和備份。面向如此體量的數據,需要在數據的組織方式、計算形式等方面根據具體的應用場景,構建一個高效、分布式的大數據計算系統,以滿足對相關數據的并行、分布式處理要求。

數據精確度高,批量數據通常是從應用中沉淀下來的,對于了解上次應用的各種內在關系、潛在邏輯以及預測未來發展都很關鍵。需要對其中所有數據進行全量式的計算,數據處理結果的精度要求較高。為了滿足如此高的數據精度,需要在數據處理效率和數據處理結果精度等方面進行權衡,在數據的單次處理和再現方面進行權衡。

數據價值稀疏,在數據的收集過程中,往往需要盡可能全面、密集地進行數據收集,避免任何有價值數據的遺失。隨著數據收集工具和方法的不斷進步,數據收集面和收集頻率的不斷增廣和增加,數據價值的稀疏程度也急劇增強。因此,需要通過合理的計算架構和高效的數據處理算法才能從大量的數據中抽取少數有用的價值。此外,批量數據處理往往比較耗時,而且不提供用戶與系統的交互手段,當發現處理結果和預期結果有很大差別時,會浪費很多時間。因此,批量數據處理適合大型的相對比較成熟的應用場景。數據價值稀疏性特征使得在大數據計算系統中,需要構建一個高效、精準、面向特定應用和領域的數據處理模式,在極其稀疏甚至稀疏程度不斷增加的應用場景下,能快速發現并挖掘出其中所存在的數據價值。

2.2 流式計算的特征及挑戰

大數據流式計算[14~18](big datastream computing)是大數據計算的另一種重要計算模式,特別是在數據時效性、實時性需要不斷增加的應用場景不斷增多的情況下,其重要性日益凸顯。在大數據流式計算環境中,其計算架構如圖2所示。數據以數據流的形式,通過多個不同的數據源實時到達大數據流式計算平臺,然后,利用數據流圖所描述的處理過程被在線處理,并實時產生結果,滿足相關上層應用系統的需要。整個數據的處理過程往往在毫秒級的時間范圍內完成,原始數據、中間狀態、處理結果等數據根據具體應用場景的需要,不全部保存,只是選擇性地存儲。描述用戶特定應用的數據流圖一旦提交到系統中,將會永遠在線運行,實時對輸入的數據流進行處理,除非整個處理平臺意外中斷或顯示終止。由于整個數據流的處理時間極短,判讀的依據也往往集中在當前時間點附近(時間窗口)的數據,加上數據流中各數據項的不斷變化,留給大數據流式計算平臺進行調整和應對的時間也很少,因此,流式數據處理的結果往往不夠精確、不夠全面,只能給出一個實時性很強的、相對準確的、基于當前局部數據判斷的結果??梢?,對于無需先存儲、可以直接進行數據計算、實時性要求很嚴格但數據的精確度往往不太重要的應用場景,流式計算具有明顯優勢。

230230023

大數據流式計算場景通常呈現出以下典型特征及挑戰。

大數據流式環境中的數據計算在系統的可伸縮性、系統容錯、狀態一致性等方面均面臨著前所未有的新的挑戰。在系統的可伸縮性上,一方面,需要大數據流式系統具有很好的“可伸”特征,可以實時適應數據增長的需求,實現對系統資源的動態調整和快速部署;另一方面,當流式數據的產生速率持續減少時,需要及時回收在高峰時期所分配的目前已處于閑置或低效利用的資源,實現整個系統“可縮”的友好特征。在系統容錯上,一方面,數據流實時、持續地到來,呈現出同時間相識的一維特征,一旦數據流流過,再次重放數據流的成本很大,甚至是不現實的;另一方面,在流式大數據的計算過程中,大部分“無用”的數據將被直接丟棄,所被永久保存下來的數據量是極少的,當需要進行系統容錯時,其中不可避免地會出現一個時間段內數據的不完整;再則,需要針對不同類型的應用,從系統層面上設計符合其應用特征的數據容錯級別和容錯策略。在各節點間狀態的一致性上,一方面,如何從高速、海量的數據流中識別并維護一致性狀態的數據是一個巨大的挑戰;另一方面,在大規模分布式環境中,如何組織和管理實現系統狀態一致性的相關數據,滿足系統對數據的高效組織和精準管理的要求也是一個巨大的挑戰。

2.3 大圖計算的特征及挑戰

大數據圖計算[19~21](big datagraph computing)是大數據計算的一種計算模式,隨著社交媒體、移動互聯網的不斷發展,在大數據計算中的重要性日益凸顯。大數據圖計算主要用來分析數據節點之間的關系和相似度,該計算范式已經廣泛應用于用戶分析、欺詐檢測、社交媒體、移動互聯網、生命科學等諸多領域,其巨大的商業價值已經凸顯。

大數據圖計算中的大圖數據往往以圖中的節點以及連接節點的邊呈現,其中節點數目往往是數以萬計的,邊的數量更大,通常具有如下3個特征。

(1)節點之間的關聯性

大圖中各節點之間的關系是通過邊來展現的。通常情況下,大圖中邊的數量是節點數量的指數倍。因此,節點和關系信息同等重要,圖結構的差異也是由于對邊做了限制,在圖中,頂點和邊實例化構成各種類型的圖,如標簽圖、屬性圖、語義圖以及特征圖等。如何針對節點和邊的不同作用和特征,進行節點和邊的存儲方式、組織模式以及計算途徑等挑戰的研究,結合具體應用,提供一種高效的存儲方式、可擴展的組織模式以及有效的計算途徑,滿足具體應用場景的需要,是研究的關鍵點。

(2)圖計算的數據耦合性強

在大圖中,數據之間是相互關聯的,對圖數據的計算也是相互關聯的。這種數據耦合的特性對圖的規模日益增大達到上百萬甚至上億節點的大圖數據計算提出了巨大的挑戰。大圖數據是無法使用單臺機器進行處理的,但如果對大圖數據進行并行處理,對于每一個頂點之間都是連通的圖來講,難以分割成若干完全獨立的子圖進行獨立的并行處理。即使可以分割,也會面臨并行機器的協同處理以及將最后的處理結果進行合并等一系列問題。這需要圖數據處理系統選取合適的圖分割以及圖計算模型來迎接挑戰并解決問題。

在大數據時代,大圖的分割是大數據圖計算最為突出的問題。由于對整個圖的訪問是隨機進行的,在圖劃分時需要考慮3個方面:通信代價,訪問跨機器的各邊通信量;負載均衡,讓每一臺機器的問題規?;窘咏?;存儲冗余,為了減少通信量,需要在機器上復制其他機器的存儲信息(存在數據一致性問題)。通過考慮存儲的冗余度,使綜合開銷達到最優。

此外,大數據圖計算還存在以下問題:圖數據的局部性差,由于節點眾多,兩個相連接的點(連接的點對也是隨機的、無法預知的)可能存儲的位置相隔很遠,即不在同一個存儲塊,這使得系統需要隨機訪問這些節點及邊,而訪問磁盤的效率又極低,從而嚴重影響了計算效率;數據及圖結構驅動,不同的圖形結構會使用不同的計算方法,需要設計一個通用的方法;存儲和效率,大圖處理的規模(點的數量)基本上是10億量級,依靠單臺PC進行存儲似乎不太可能,所以大多數圖計算系統是分布式系統。由于這種系統是把存儲容量和計算分攤給每一個機器,因此需要考慮如何劃分才能使各機器負載均衡以及如何減少各個劃分之間通信等問題。

3 典型計算系統

3.1 批量大數據計算系統

當前典型的大數據批量計算的應用系統有Hadoop[11]、Spark[13]。在Hadoop系統中,其體系結構如圖3所示,由名字節點、數據節點、客戶端節點組成。其中,名字節點負責管理文件系統的命名空間、集群配置以及數據塊的備份、容錯等內容;數據節點負責管理數據的存儲位置、副本數目等內容,并以數據塊的形式存儲原始數據與校驗信息;客戶端節點通過與名字節點、數據節點進行通信,訪問HDFS,實現文件操作。數據通過HDFS的方式進行組織,可以將各類數據存儲在各種外部存儲介質上,并通過MapReduce模式將計算邏輯分配到各數據節點進行數據計算和知識發現。

234234023

在Spark系統中,數據被轉換成彈性分布式數據集(resilientdistributed dataset,RDD),并以RDD為單位實現有效的數據處理。每個RDD都是一個不可變的分布式可重算的數據集,其記錄著確定性的操作繼承關系。如圖4所示,每一個橢圓形表示一個RDD,橢圓形中的每個圓形代表一個RDD中的一個分區。通過對RDD的操作繼承關系進行跟蹤,當任意一個RDD的分區出錯或不可用時,只要輸入數據可重現,就可以利用原始輸入數據通過轉換操作而重新算出,實現系統的容錯。

233233023

同時,Spark系統也可以在一定程度上支持大數據流式計算和交互計算的應用范式。

3.2 流式大數據計算系統

早期流式計算的研究往往集中在數據庫環境中開展數據計算的流式化,數據規模較小,數據對象比較單一。大數據環境中的流式數據在實時性、易失性、突發性、無序性、無限性等方面提出了更高要求,現階段關于大數據流式計算的研究則更多地從系統架構、數據傳輸、編程接口、高可用策略等方面開展和實施。當前典型的大數據流式計算的應用系統有Storm[17]、S4[18]。

在Storm系統中,采用主從式系統架構。如圖5所示,一個Storm系統中有兩類節點,即一個主節點Nimbus和多個從節點supervisor,有3種運行環境,即master、cluster和slaves。其中,主節點Nimbus運行在master環境中,是無狀態的,負責全局的資源分配、任務調度、狀態監控和故障檢測;從節點supervisor運行在slaves環境中,也是無狀態的,負責監聽并接收來自于主節點Nimbus所分配的任務,并啟動或停止自己所管理的工作進程worker,其中,工作進程worker負責具體任務的執行。zookeeper是一個針對大型分布式系統的可靠協調服務和元數據存儲系統,通過配置zookeeper集群,可以使用zookeeper系統所提供的高可靠性的服務。Storm系統引入zookeeper,極大地簡化了Nimbus、supervisor、worker之間的設計,保障了系統的穩定性。

232232023

在S4系統中,采用對等式系統架構。如圖6所示,一個S4系統由用戶空間、資源調度空間和S4處理節點空間組成。其中,在用戶空間中,多個用戶可以通過本地的客戶端驅動實現服務的請求訪問;在資源調度空間中,為用戶提供了客戶適配器,通過TCP/IP實現用戶的客戶端驅動與客戶適配器間的連接和通信,多個用戶可以并發地同多個客戶適配器進行服務請求;在S4處理節點空間中,提供了多個處理節點Pnode,進行用戶服務請求的計算,主要包括監聽并分發接收到的事件計算請求,實現對事件流的路由選擇、負載均衡、邏輯影射、故障恢復等功能。各個處理節點間保持相對的獨立性、對等性和高并發性,極大地提高了系統的性能,并通過散列方式將事件路由到一個或多個目標處理節點上。

3.3 大數據圖計算系統

4 未來研究方向

從系統角度看大數據計算,未來可能的研究方向包括以下幾個方面。

(1)批量計算

大數據批量計算需要讀寫大量數據,而目前的存儲系統主要針對計算密集型應用設計,從存儲系統讀出原始數據進行批量計算,計算結束后將計算結果寫入存儲系統。相應存儲系統強調數據吞吐量,數據一致性保證程度高,數據讀寫時延相對較高。一個有潛力的研究方向是利用大數據批量計算的特征,解決大數據計算中的存儲瓶頸問題。

另一類研究工作是針對典型應用進行定制化的性能優化,一個代表性例子是深度學習算法的并行加速技術研究。以深度學習中的卷積神經元網絡為例,一個研究方向是使用GPU對卷積神經元網絡進行加速,另一個方向是使用多臺機器對卷積神經元網絡進行并行化加速。

(2)大數據流式計算

需要構建一個高效、可擴展的計算平臺,一方面需要具有很好的通用性,滿足對流式數據計算的需要,提供一系列公用的流式計算工具和屬性;同時要在在線資源管理、狀態一次性維護、用戶級容錯策略等方面具有良好的性能。

大數據流式計算中,數據流具有多流混合、流速波動等特性,一個研究方向是如何設計并優化流式計算中的資源調度策略,同時實現數據流速高時處理速度快和數據流速低時能耗低兩個目標。大數據流式計算需要提供7×24 h的連續計算能力,對于系統可靠性方面的要求很高。另一個研究方向是如何利用流式計算的特征,同時實現數據流計算高可靠和可靠性維護開銷低兩個目標。

(3)大數據圖計算

圖計算系統的構建有兩個思路:一種是為了避免數據關聯性帶來的機間通信而采用單機圖處理。往往采用圖數據分區的方法,每次加載一個分區,循環多次處理一張大圖。網絡大數據的多維關聯性,導致大數據計算對網絡圖空間的訪問發散性。由于緩存機制和介質特性,整個存儲棧都對數據局部性表現出更好的性能。一個重要的研究方向是如何解決網絡圖空間的訪問發散性與高效存儲所需的數據局部性之間的矛盾。

另一種思路是充分發揮多臺機器并行計算的優勢而采用多機圖計算。這種大數據圖計算方式面臨的最為突出的問題就是大圖分割問題。由于對整個圖的訪問是隨機進行的,一個研究方向是如何在圖劃分時實現通信代價低、計算及傳輸負載均衡、存儲冗余度合理3個目標。

5 結束語

在大數據時代,大數據計算是大數據整個生命周期中的核心,是大數據中知識發現的關鍵。大數據計算模式主要包括大數據批量計算、流式計算、圖計算、交互計算等,這些不同的計算模式分別滿足不同的應用范式對數據計算結果在處理精度、實時性等方面的不同要求。這些計算模式并不是相互獨立的,可以相互配合,滿足同一應用范式在不同階段對數據計算結果的要求。當前,批量計算是大數據計算的最主要模式。隨著用戶應用需求和技術的不斷變化,所需要的計算模式也會不斷變化,亟待根據最新應用范式的發展和要求,針對具體場景,開展對相關計算模式中出現的新情況、新問題的研究。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢