在我們考慮大資料時,我們注意到了「大」這個字,但是在建設基礎架構時,我們還應該注意「分布式」。
事實上,大資料應用程式需要處理大規模資訊,而且在出於彈性的考慮將資料複製到多個位置時,資訊的規模變得越來越大。但是,大資料的最重要屬性並不在於它的規模,而在於它將大作業分割成許多小作業的能力,它能夠將處理乙個任務的資源分散到多個位置變為並行處理。
在將大規模和分布式架構組合在一起時,我們就能發現大資料網路有一組特殊的需求。下面是需要考慮的六個方面:
1.網路彈性與大資料應用程式
如果有一組分布式資源必須通過網際網路絡進行協調時,可用性就變得至關重要。如果網路出現故障,那麼造成的後果是出現不連續的壞計算資源與資料集。
準確地說,大多數網路架構和工程師的主要關注點是正常執行時間。但是,網路故障時間的根源又各不相同。它們可能源自於各個方面,包括裝置故障(硬體與軟體)、維護和人為錯誤。故障是不可避免的。雖然網路的高度可用性也很重要,但是想要設計完美可用性是不可能的。
網路架構師不能用故障來逃避目標,而應該設計一些能適應故障的彈性網路。網路的彈性取決於路徑多樣性(資源之間設定多條路徑)和故障轉移(能夠快速發現問題和轉移到其他路徑上)。除了傳統的平均故障時間間隔(mtbf)方法,大資料網路的真正設計標準一定要包含這些特性。
2.解決大資料應用中的網路擁塞問題
大資料應用程式不僅僅是規模大,而且還有一種我稱為突發性的特性。當乙個作業啟動之後,資料就開始流轉。在高流量時間段裡,擁塞是乙個嚴重的問題。然而,擁塞可能引起更多的佇列延遲時間和丟包率。此外,擁塞還可能觸發重轉,這可能讓本身負載繁重的網路無法承受。因此,網路架構設計時應該盡可能減少擁塞點。按照可用性的設計標準,減少擁塞要求網路具有較高的路徑多樣性,這樣才能允許網路將流量分散到大量不同的路徑上。
3.大資料中網路一致性要比遲延性更重要
實際上,大多數大資料應用程式對網路延遲並不敏感。如果計算時間的數量級為幾秒鐘或幾分鐘,那麼即使網路上出現較大延遲也是無所謂的——數量級大概為幾千毫秒。然而,大資料應用程式一般具有較高的同步性。這意味著作業是並行執行的,而各個作業之間較大的效能差異可能會引發應用程式的故障。因此,網路不僅要足夠高效,而且要在空間和時間上具有一致的效能。
4.現在就要準備大資料未來的可伸縮性
可能讓人有點意外的是,大多數大資料集群實際上並不大。許多人都知道雅虎在其大資料環境中執行著超過42,000個節點,但是根據hadoop wizard的資料,2023年大資料集群的平均節點數量只有100個。換句話說,即使每一台伺服器配置雙重冗餘,支援整個集群也只需要4個接入交換機(假設是分別有72個10gbe訪問埠的broadcom交換機)。
可伸縮性並不在於現在集群現在有多大規模,而是說如何平衡地擴充套件支援未來的部署規模。如果基礎架構設計現在只適合小規模部署,那麼這個架構將如何隨著節點數量的增加而不斷進化?在將來某乙個時刻,它是否需要完全重新設計架構?這個架構是否需要一些近程資料和資料位置資訊?關鍵是要記住,可伸縮性並不在於絕對規模,而是更關注於實現足夠規模解決方案的路徑。
5.通過網路分割來處理大資料
網路分割是建立大資料環境的重要條件。在最簡單的形式上,分割可能意味著要將大資料流量與其他網路流量分離,這樣應用程式產生的突發流量才不會影響其他關鍵任務工作負載。除此之外,我們還需要處理執行多個作業的多個租戶,以滿足效能、合規性和/或審計的要求。這些工作要求在一些場合中實現網路負載的邏輯分離,一些場合則還要實現它們的物理分離。架構師需要同時在兩個方面上進行規劃,但是初始需求最好統一在一起。
6.大資料網路的應用感知能力
雖然大資料的概念與hadoop部署關係密切,但是它已經成為集群環境的代名詞。根據不同應用程式的特點,這些集群環境的需求各不同相同。有一些可能對對頻寬要求高,而有一些則可能對延遲很敏感。總之,乙個網路要支援多應用程式和多租戶,它就必須要能夠區分自己的工作負載,並且要能夠正確處理各個工作負載。
大資料網路設計的關鍵是要理解一點:需求不僅僅是提供足夠的東西向頻寬。最終,應用程式體驗取決於很多因素,包括網路擁塞和分割。建立乙個滿足所有這些需求的網路需要有前瞻性,不僅要考慮基礎架構能夠支援的伸縮規模,還要考慮不同型別的應用程式如何共存於乙個通用環境中。
原文發布時間為:2023年12月04日
C語言,不得不重視的記憶體分配
儲存區的劃分 1 棧區 棧區儲存區域性變數,棧區的記憶體是由系統自動管理,系統開闢,系統 無需程式設計師管理.2 堆區 通過堆區記憶體分配函式,分配的空間都在堆區,堆區的最大特點 堆區的空間需要程式設計師手動管理,手動開闢,手動釋放.oc常用 3 常量區 對於字元常量,整型常量,浮點型常量,字串常量...
構建大資料網路 需要重視這五個地方
在人們考慮大資料時,人們留意到了 大 這乙個字,可是在投建基礎架構時,人們還應當留意 分布式 實際上,大資料的應用程式需要處理大量資訊,並且在出自彈性的考慮將資料拷貝到多個部位時,資訊的規模變得越來越大。可是,大資料的最關鍵屬性並非在於它的規模,而在於它將大作業切分成很多小作業的能力,它才能將解決一...
構建大資料網路 需要重視這五個地方
在人們考慮大資料時,人們留意到了 大 這乙個字,可是在投建基礎架構時,人們還應當留意 分布式 實際上,大資料的應用程式需要處理大量資訊,並且在出自彈性的考慮將資料拷貝到多個部位時,資訊的規模變得越來越大。可是,大資料的最關鍵屬性並非在於它的規模,而在於它將大作業切分成很多小作業的能力,它才能將解決一...