您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

01 搭建訂閱轉換網站鏈接結構(梯子訂閱怎么搭建)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-12 01:52:32【】4人已围观

简介五種大數據處理架構五種大數據處理架構大數據是收集、整理、處理大容量數據集,并從中獲得見解所需的非傳統戰略和技術的總稱。雖然處理數據所需的計算能力或存儲容量早已超過一臺計算機的上限,但這種計算類型的普遍

五種大數據處理架構

五種大數據處理架構

大數據是收集、整理、處理大容量數據集,并從中獲得見解所需的非傳統戰略和技術的總稱。雖然處理數據所需的計算能力或存儲容量早已超過一臺計算機的上限,但這種計算類型的普遍性、規模,以及價值在最近幾年才經歷了大規模擴展。

本文將介紹大數據系統一個最基本的組件:處理框架。處理框架負責對系統中的數據進行計算,例如處理從非易失存儲中讀取的數據,或處理剛剛攝入到系統中的數據。數據的計算則是指從大量單一數據點中提取信息和見解的過程。

下文將介紹這些框架:

· 僅批處理框架:

Apache Hadoop

· 僅流處理框架:

Apache Storm

Apache Samza

· 混合框架:

Apache Spark

Apache Flink

大數據處理框架是什么?

處理框架和處理引擎負責對數據系統中的數據進行計算。雖然“引擎”和“框架”之間的區別沒有什么權威的定義,但大部分時候可以將前者定義為實際負責處理數據操作的組件,后者則可定義為承擔類似作用的一系列組件。

例如Apache Hadoop可以看作一種以MapRece作為默認處理引擎的處理框架。引擎和框架通常可以相互替換或同時使用。例如另一個框架Apache Spark可以納入Hadoop并取代MapRece。組件之間的這種互操作性是大數據系統靈活性如此之高的原因之一。

雖然負責處理生命周期內這一階段數據的系統通常都很復雜,但從廣義層面來看它們的目標是非常一致的:通過對數據執行操作提高理解能力,揭示出數據蘊含的模式,并針對復雜互動獲得見解。

為了簡化這些組件的討論,我們會通過不同處理框架的設計意圖,按照所處理的數據狀態對其進行分類。一些系統可以用批處理方式處理數據,一些系統可以用流方式處理連續不斷流入系統的數據。此外還有一些系統可以同時處理這兩類數據。

在深入介紹不同實現的指標和結論之前,首先需要對不同處理類型的概念進行一個簡單的介紹。

批處理系統

批處理在大數據世界有著悠久的歷史。批處理主要操作大容量靜態數據集,并在計算過程完成后返回結果。

批處理模式中使用的數據集通常符合下列特征…

· 有界:批處理數據集代表數據的有限集合

· 持久:數據通常始終存儲在某種類型的持久存儲位置中

· 大量:批處理操作通常是處理極為海量數據集的唯一方法

批處理非常適合需要訪問全套記錄才能完成的計算工作。例如在計算總數和平均數時,必須將數據集作為一個整體加以處理,而不能將其視作多條記錄的集合。這些操作要求在計算進行過程中數據維持自己的狀態。

需要處理大量數據的任務通常最適合用批處理操作進行處理。無論直接從持久存儲設備處理數據集,或首先將數據集載入內存,批處理系統在設計過程中就充分考慮了數據的量,可提供充足的處理資源。由于批處理在應對大量持久數據方面的表現極為出色,因此經常被用于對歷史數據進行分析。

大量數據的處理需要付出大量時間,因此批處理不適合對處理時間要求較高的場合。

Apache Hadoop

Apache Hadoop是一種專用于批處理的處理框架。Hadoop是首個在開源社區獲得極大關注的大數據框架。基于谷歌有關海量數據處理所發表的多篇論文與經驗的Hadoop重新實現了相關算法和組件堆棧,讓大規模批處理技術變得更易用。

新版Hadoop包含多個組件,即多個層,通過配合使用可處理批數據:

· HDFS:HDFS是一種分布式文件系統層,可對集群節點間的存儲和復制進行協調。HDFS確保了無法避免的節點故障發生后數據依然可用,可將其用作數據來源,可用于存儲中間態的處理結果,并可存儲計算的最終結果。

· YARN:YARN是Yet Another Resource Negotiator(另一個資源管理器)的縮寫,可充當Hadoop堆棧的集群協調組件。該組件負責協調并管理底層資源和調度作業的運行。通過充當集群資源的接口,YARN使得用戶能在Hadoop集群中使用比以往的迭代方式運行更多類型的工作負載。

· MapRece:MapRece是Hadoop的原生批處理引擎。

批處理模式

Hadoop的處理功能來自MapRece引擎。MapRece的處理技術符合使用鍵值對的map、shuffle、rece算法要求。基本處理過程包括:

· 從HDFS文件系統讀取數據集

· 將數據集拆分成小塊并分配給所有可用節點

· 針對每個節點上的數據子集進行計算(計算的中間態結果會重新寫入HDFS)

· 重新分配中間態結果并按照鍵進行分組

· 通過對每個節點計算的結果進行匯總和組合對每個鍵的值進行“Recing”

· 將計算而來的最終結果重新寫入 HDFS

優勢和局限

由于這種方法嚴重依賴持久存儲,每個任務需要多次執行讀取和寫入操作,因此速度相對較慢。但另一方面由于磁盤空間通常是服務器上最豐富的資源,這意味著MapRece可以處理非常海量的數據集。同時也意味著相比其他類似技術,Hadoop的MapRece通常可以在廉價硬件上運行,因為該技術并不需要將一切都存儲在內存中。MapRece具備極高的縮放潛力,生產環境中曾經出現過包含數萬個節點的應用。

MapRece的學習曲線較為陡峭,雖然Hadoop生態系統的其他周邊技術可以大幅降低這一問題的影響,但通過Hadoop集群快速實現某些應用時依然需要注意這個問題。

圍繞Hadoop已經形成了遼闊的生態系統,Hadoop集群本身也經常被用作其他軟件的組成部件。很多其他處理框架和引擎通過與Hadoop集成也可以使用HDFS和YARN資源管理器。

總結

Apache Hadoop及其MapRece處理引擎提供了一套久經考驗的批處理模型,最適合處理對時間要求不高的非常大規模數據集。通過非常低成本的組件即可搭建完整功能的Hadoop集群,使得這一廉價且高效的處理技術可以靈活應用在很多案例中。與其他框架和引擎的兼容與集成能力使得Hadoop可以成為使用不同技術的多種工作負載處理平臺的底層基礎。

流處理系統

流處理系統會對隨時進入系統的數據進行計算。相比批處理模式,這是一種截然不同的處理方式。流處理方式無需針對整個數據集執行操作,而是對通過系統傳輸的每個數據項執行操作。

· 流處理中的數據集是“無邊界”的,這就產生了幾個重要的影響:

· 完整數據集只能代表截至目前已經進入到系統中的數據總量。

· 工作數據集也許更相關,在特定時間只能代表某個單一數據項。

處理工作是基于事件的,除非明確停止否則沒有“盡頭”。處理結果立刻可用,并會隨著新數據的抵達繼續更新。

流處理系統可以處理幾乎無限量的數據,但同一時間只能處理一條(真正的流處理)或很少量(微批處理,Micro-batch Processing)數據,不同記錄間只維持最少量的狀態。雖然大部分系統提供了用于維持某些狀態的方法,但流處理主要針對副作用更少,更加功能性的處理(Functional processing)進行優化。

功能性操作主要側重于狀態或副作用有限的離散步驟。針對同一個數據執行同一個操作會或略其他因素產生相同的結果,此類處理非常適合流處理,因為不同項的狀態通常是某些困難、限制,以及某些情況下不需要的結果的結合體。因此雖然某些類型的狀態管理通常是可行的,但這些框架通常在不具備狀態管理機制時更簡單也更高效。

此類處理非常適合某些類型的工作負載。有近實時處理需求的任務很適合使用流處理模式。分析、服務器或應用程序錯誤日志,以及其他基于時間的衡量指標是最適合的類型,因為對這些領域的數據變化做出響應對于業務職能來說是極為關鍵的。流處理很適合用來處理必須對變動或峰值做出響應,并且關注一段時間內變化趨勢的數據。

Apache Storm

Apache Storm是一種側重于極低延遲的流處理框架,也許是要求近實時處理的工作負載的最佳選擇。該技術可處理非常大量的數據,通過比其他解決方案更低的延遲提供結果。

流處理模式

Storm的流處理可對框架中名為Topology(拓撲)的DAG(Directed Acyclic Graph,有向無環圖)進行編排。這些拓撲描述了當數據片段進入系統后,需要對每個傳入的片段執行的不同轉換或步驟。

拓撲包含:

· Stream:普通的數據流,這是一種會持續抵達系統的無邊界數據。

· Spout:位于拓撲邊緣的數據流來源,例如可以是API或查詢等,從這里可以產生待處理的數據。

· Bolt:Bolt代表需要消耗流數據,對其應用操作,并將結果以流的形式進行輸出的處理步驟。Bolt需要與每個Spout建立連接,隨后相互連接以組成所有必要的處理。在拓撲的尾部,可以使用最終的Bolt輸出作為相互連接的其他系統的輸入。

Storm背后的想法是使用上述組件定義大量小型的離散操作,隨后將多個組件組成所需拓撲。默認情況下Storm提供了“至少一次”的處理保證,這意味著可以確保每條消息至少可以被處理一次,但某些情況下如果遇到失敗可能會處理多次。Storm無法確保可以按照特定順序處理消息。

為了實現嚴格的一次處理,即有狀態處理,可以使用一種名為Trident的抽象。嚴格來說不使用Trident的Storm通常可稱之為Core Storm。Trident會對Storm的處理能力產生極大影響,會增加延遲,為處理提供狀態,使用微批模式代替逐項處理的純粹流處理模式。

為避免這些問題,通常建議Storm用戶盡可能使用Core Storm。然而也要注意,Trident對內容嚴格的一次處理保證在某些情況下也比較有用,例如系統無法智能地處理重復消息時。如果需要在項之間維持狀態,例如想要計算一個小時內有多少用戶點擊了某個鏈接,此時Trident將是你唯一的選擇。盡管不能充分發揮框架與生俱來的優勢,但Trident提高了Storm的靈活性。

Trident拓撲包含:

· 流批(Stream batch):這是指流數據的微批,可通過分塊提供批處理語義。

· 操作(Operation):是指可以對數據執行的批處理過程。

優勢和局限

目前來說Storm可能是近實時處理領域的最佳解決方案。該技術可以用極低延遲處理數據,可用于希望獲得最低延遲的工作負載。如果處理速度直接影響用戶體驗,例如需要將處理結果直接提供給訪客打開的網站頁面,此時Storm將會是一個很好的選擇。

Storm與Trident配合使得用戶可以用微批代替純粹的流處理。雖然借此用戶可以獲得更大靈活性打造更符合要求的工具,但同時這種做法會削弱該技術相比其他解決方案最大的優勢。話雖如此,但多一種流處理方式總是好的。

Core Storm無法保證消息的處理順序。Core Storm為消息提供了“至少一次”的處理保證,這意味著可以保證每條消息都能被處理,但也可能發生重復。Trident提供了嚴格的一次處理保證,

很赞哦!(3)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:江西九江湖口县

工作室:小组

Email:[email protected]