《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》一1.5 大数据系统应有的属性...
本節書摘來自華章出版社《大數據系統構建:可擴展實時數據系統構建原理與最佳實踐》一書中的第1章,第1.1節,南森·馬茨(Nathan Marz) [美] 詹姆斯·沃倫(JamesWarren) 著 馬延輝 向 磊 魏東琦 譯,更多章節內容可以訪問云棲社區“華章計算機”公眾號查看。
1.5 大數據系統應有的屬性
你應該使大數據系統努力具備盡可能多的關于復雜性和可擴展性的屬性。大數據系統不僅要運行良好、有效地使用資源,還必須易于推理。下面逐一介紹這些屬性。
1.5.1 魯棒性和容錯性
面對分布式系統的挑戰,構建“做正確的事”的系統并非易事。盡管會遇到機器隨機出現故障、分布式數據庫中一致性的復雜語義、重復的數據、并發性等問題,但系統仍需能夠正確運行。這些挑戰使得“推斷系統在做什么”變得很難。使大數據系統具備魯棒性的一部分工作是為了避免這些復雜性(挑戰),以便你能很容易推斷系統(即探索系統)。
正如之前所討論的,系統必須是可以容忍人為錯誤的。這是系統中經常被忽視的屬性,開發者應予以重視。在生產系統中,偶爾有人出差錯是不可避免的,比如部署錯誤代碼損壞了數據庫中的值。如果你將不變性和重新計算性構建到大數據的核心系統中,那么該系統通過提供一個清晰、簡單的恢復機制,就能很容易地適應人為錯誤。這些內容將在第2~7章中詳細描述。
1.5.2 低延遲讀取和更新
一方面,絕大多數的應用程序需要對讀取操作有很低的延遲—這一時間通常是幾毫秒到幾百毫秒;另一方面,更新延遲的需求在不同應用程序之間有著很大的區別。一些應用程序需要更新操作立即傳播,但其他應用程序延遲幾個小時也是可以的。無論如何,大數據系統中如果需要低延遲更新,你就必須能夠實現它。更重要的是,你需要在不影響系統魯棒性的前提下,能夠實現低延遲讀取和更新。本書將從第12章開始介紹如何在速度層實現低延遲更新。
1.5.3 可擴展性
面對數據或負載的增加,可擴展性能夠通過將資源添加到系統中來保持性能。Lambda架構在系統堆棧的所有層是水平可擴展的—擴展是通過添加更多的機器來實現的。
1.5.4 通用性
一個通用系統可以支持大多數應用程序。事實上,如果本書所述內容沒有推及大多數的應用程序,那么它不會是非常有用的。因為Lambda架構是基于所有數據功能的,可以推廣到所有應用程序,無論是財務管理系統、社交媒體分析、科學應用、社交網絡,還是其他應用。
1.5.5 延展性
每次添加相關功能或對系統的工作方式做出一些改變時,你不需要重復勞動。具備可延展性的系統允許以最小的開發成本添加功能。
通常,一個新特性或一個現有功能的改變需要將舊數據遷移成新格式。系統具備可延展性的要素之一就是它容易實現大規模遷移。能夠輕松、快捷地完成大規模遷移,是你將學習的方法的核心。
1.5.6 即席查詢
幾乎每個大型數據集中都有意料之外的值,因此,能夠對數據進行即席(ad hoc)查詢是非常重要的。此外,能夠任意地挖掘數據集為業務優化和新的應用程序也提供了可能。最終,除非你可以問這些數據任意問題,否則你將不能利用數據發現有趣的事情。本書的第6章和第7章在討論批處理時,將介紹進行即席查詢的方法。
1.5.7 最少維護
維護是開發人員的重負,它是需要保持系統平穩運行的工作。包括預測什么時候添加用于擴展的機器、保持進程啟動并運行以及調試生產環境中的任何錯誤。
減少維護的一個重要途徑是選擇實現復雜性盡量低的組件,即依賴底層具有簡單機制的組件。特別是分布式數據庫,它往往有著非常復雜的內部結構。系統越復雜,出錯的可能性就越大,你越需要了解有關系統調試和優化的知識。
通過依靠簡單的算法和組件,來降低實現復雜性,進而實現最少維護。Lambda架構采用的一個技巧是:將復雜性推出核心組件,并將其送到幾小時后輸出是可丟棄的系統的片段中。所使用的最復雜的組件,如讀/寫分布式數據庫,在輸出最終是可丟棄的這一層中。本書第12章在討論速度層時將詳細討論該技術。
1.5.8 可調試性
一旦出錯,大數據系統必須提供必要的信息來調試系統。關鍵是能夠追蹤系統中的每一個值,并能明確該值是如何產生的。
“可調試性”是在Lambda架構中通過批處理層的功能特性和盡可能使用重新計算算法來實現的。
將所有這些屬性組合在同一個系統中實現,這看起來是一個令人生畏的挑戰。但從基本原理出發,正如Lambda架構做的,這些屬性將從最終的系統設計中自然而然地生成。
在深入介紹Lambda架構之前,我們來看更傳統的架構—以依賴增量計算為特征—以及它們無法滿足這些屬性的原因。
總結
以上是生活随笔為你收集整理的《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》一1.5 大数据系统应有的属性...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: easy_runner一个简单的压测程序
- 下一篇: 地市级地铁数据管理信息系统解决方式