分散式流處理

分散式流處理

流處理是一種重要的大數據處理手段,其主要特點是其處理的數據是源源不斷且實時到來的。分散式流處理是一種面向動態數據的細粒度處理模式,基於分散式記憶體,對不斷產生的動態數據進行處理。其對數據處理的快速,高效,低延遲等特性,在大數據處理中發揮越來越重要的作用。

基本介紹

  • 中文名:分散式流處理
  • 外文名:Distributed flow processing
  • 領域:大數據
  • 處理模式:分散式記憶體
  • 特點:快速,高效,低延遲
  • 有關術語:數據流
簡介,數據流,影響因素,分散式計算,

簡介

分散式流處理是指基於分散式技術對流數據進行動態處理,具有較好的伸縮性、實時性和開放性。分散式流處理通常部署於大規模集群中,通常將流數據處理過程抽象為一個有向無環圖。調度算法則負責將有向無環圖中的組件合理的分配至集群中的可用伺服器上。流處理系統作為流處理作業的平台,負責所有集群資源的管理和分配。對於用戶提交的流處理作業,流處理系統需考慮該作業所處理的數據量及集群中不同節點的負載,並將其合理的分配到集群的不同作業節點上。因而如何最大化集群的利用率,即最大化集群可容納的流處理作業數量。好的任務分配策略能夠加快數據處理的速率,提升系統整體吞吐量,均衡集群中的負載,或者減少集群中的資源占用率。

數據流

數據流通常被定義為不斷到達的元組所構成的無限數據集,或是一個連續、無界、順序、時變的元組序列,對它的套用大多是監控型的,即持續運行在連續數據流上的連續查詢。在傳統資料庫系統中,其處理的對象是持久的關係,接受的是即席的查詢,查詢計畫是固定的,查詢執行模式是隨機訪問資料庫並且可以對其多遍掃描,套用沒有實時性要求,數據以“拉”的形式來傳送。而在數據流系統中,處理的對象是暫態的流,註冊的是連續查詢,查詢計畫需要不斷調整以適應新的數據,查詢執行模式只能是順序的一遍掃描數據,套用具有實時性要求,並且數據傳送是以“推”的方式進行的。數據流的特點主要有:
  • 無限性。在模型抽象中,數據流被看作是無限的,無法通過物理介質整體存儲數據流。
  • 時序性。數據流的時序性有兩方面含義。一方面指元組按序到達,不能在整個數據流上實現隨機訪問。另一方面指其元組當中通常包含直接或間接的時間標籤,如時間戳,序列號。
  • 不可再現。由於數據流具有無限性,且不能隨機訪問。在研究中,數據處理後即丟棄,除非刻意保存,數據不能被再次訪問。
  • 存在概念漂移。概念漂移指數據流所包含的信息隨時間變換,導致以前的模型或方法不再適用。
  • 噪聲。噪聲不是數據流所特有,但由於概念漂移的存在,如何區分噪聲和概念漂移是數據流挖掘面臨的一個挑戰。
  • 數據到達是實時的,且順序是獨立的,不受系統控制。
  • 大小和規模不可預知。

影響因素

數據流處理系統中,影響數據流處理速率的因素有很多。根據這些影響因素的自身特點,可分為如下兩大類:
作業任務自身邏輯因素。即對於每條流入數據,處理邏輯會根據數據內容的不同執行不同的處理邏輯,因此導致的數據處理速率不同。此類因素與流數據處理系統無關,與作業任務密切相關。無論使用何種流處理系統或調度算法,都無法改變此類因素對數據流處理速率所產生的影響。
外部條件因素。即流數據處理作業邏輯以外的因素。此類因素通常是處理邏輯所使用的節點數,處理節點所在伺服器的硬體限制等,通常可通過流處理系統的任務調度進行分配和調整。根據我們在實際作業任務中的觀察,流處理系統中的大部分作業任務,其對數據的處理延遲通常與處理單元的單位時間內的數據流的速率呈正相關。在對數據處理出現延遲増加的情況時,通常是由於處理能力不足導致的。處理能力不足可根據情況劃分為兩種:
1.本地硬體資源限制。由於作業任務運行組件所在伺服器的硬體資源受限導致的延遲,如頻寬占滿會導致網路請求處理瓶頸,CPU占滿會導致數據處理瓶頸,都會在數據處理延遲上進行體現。
2.作業任務邏輯導致。作業任務邏輯即並非由物理資源所限制,而是作業任務自身的處理邏輯限制。有些作業任務邏輯瓶頸在資源占用上很難得到體現。如在作業邏輯中訪問外部信息(如訪問分散式記憶體資料庫等),由外部系統導致的延遲。此部分因素又可分為兩種:一種可通過擴大作業任務執行的並發度提升整體吞吐量;另一種則不行。我們期望該算法能夠較好的處理前者。對於流計算服務集群,該調度算法的目標是利用有限的集群資源,容納儘可能多的流計算作業。而作為流計算服務的用戶而言,其目標是在滿足相應流處理業務需求的條件下,最小化其使用的資源,W節省相應成本。這兩個目標本質上是相同的,即在滿足每個作業任務需求的前提下,儘可能減少單個作業任務所占用的集群資源。從而能夠讓集群提供容納儘可能多的流處理任務。作為流處理計算服務的使用者,在滿足自身流處理任務運行條件的情況下,希望能夠儘可能少的占用資源,從而減少流處理的使用開銷。

分散式計算

分散式計算(Distributed computing),又譯為分散式運算。這個研究領域,主要研究分散式系統(Distributed system)如何進行計算。分散式系統是一組計算機,透過網路相互連線傳遞訊息與通信後並協調它們的行為而形成的系統。組件之間彼此進行互動以實現一個共同的目標。把需要進行大量計算的工程數據分區成小塊,由多台計算機分別計算,再上傳運算結果後,將結果統一合併得出數據結論的科學。分散式系統的例子來自有所不同的面向服務的架構,大型多人線上遊戲,對等網路套用。分散式計算是一種新的計算方式。所謂分散式計算就是在兩個或多個軟體互相共享信息,這些軟體既可以在同一台計算機上運行,也可以在通過網路連線起來的多台計算機上運行。分散式計算比起其它算法具有以下幾個優點:
1、稀有資源可以共享。
2、通過分散式計算可以在多台計算機上平衡計算負載。
3、可以把程式放在最適合運行它的計算機上。
其中,共享稀有資源和平衡負載是計算機分散式計算的核心思想之一。

相關詞條

熱門詞條

聯絡我們