在裸機云上運行大數據分析
大數據分析可以定義為用于處理復雜數據集以發現市場趨勢,關聯性和隱藏數據模式的技術和流程的集合。它使組織能夠做出明智的業務決策,并幫助研究人員驗證其科學模型。
大數據分析已成為所有業務的重要組成部分,無論是財務分析,零售,廣告還是醫療保健。全球數據量呈指數級增長,估計將從今年的33ZB躍升至2025年的175ZB。這不僅創造了巨大的機會,而且對運行大數據分析的基礎架構提出了巨大的要求,并給數據工程師帶來了新的挑戰。
Analytics(分析)工作量有什么獨特之處?
首先,讓我們就定義分析工作負載的觀點達成一致。根據Curt Monash的說法,“分析是事務性的反義詞。” 盡管事務處理(OLTP)的特點是具有少量的離散操作,每秒具有大量事務,并且具有嚴格的數據完整性,但分析工作負載通常以較少的用戶為特色,這些用戶對數據源進行的操作更加復雜且占用大量資源。
幕后發生了巨大的并行性,并且通過使計算盡可能地接近數據來最大程度地降低了數據移動。數據量大,模型復雜且計算由分布式系統完成–所有這些都給執行這些任務的基礎架構帶來了真正的負擔。
考慮過渡到云?
建立和維護您的大數據分析堆棧并不是開玩笑,因此公司經常選擇將其分析工作負載遷移到云中,以降低復雜性并提高運營效率。根據經驗,在準備過渡到云時,有兩個要點要考慮:數據存儲和數據處理。
要存儲的數據山
對于大數據項目,首先需要考慮的是分布式數據存儲。參照Brewer定理,分布式數據存儲不可能同時提供兩個以上的保證:即一致性,可用性還是分區容限。因此,選擇兩個,這很好。與以往一樣,選擇取決于您的應用程序。
為了保持大數據輪旋轉,需要高度可伸縮,高效且經濟高效的存儲。幾乎總會是某種類型的NoSQL數據庫-如今,您可以 選擇超過225個NoSQL數據庫。
還記得布魯爾定理嗎?這是您開始做出犧牲的時候。如果您可以容忍某些數據不可用的風險(犧牲可用性),那么您可以采用一種高度靈活且易于擴展且具有簡單查詢功能的文檔數據庫,例如MongoDB。如果您的客戶可能讀取不一致的數據(犧牲一致性),這沒什么大不了的,那么您可能想要選擇容錯且線性可擴展的數據庫,例如Cassandra。
當您考慮使用傳統的關系數據庫管理系統(例如MySQL或PostgreSQL)并犧牲分區容忍度時,甚至還有一些利基用例。盡管這可以驗證您的行家身份,但可能涉及數據庫分片,并使處理非結構化數據幾乎變得不可能。讓我們僅使用SQL來查詢數據倉庫,對吧?
無論選擇哪種數據庫,大多數數據庫在商用硬件上都能很好地運行。盡管如今所有超大規模云提供商都在提供托管數據庫服務-其中有些人不愿意讓開源成為中指 -但是,當有出色的開源產品出現時,就不必陷入其生態系統中。
例如,您可以在具有HDD,SSD或NVMe直接連接的存儲的裸機云上運行MongoDB集群,從而使每個節點上的I / O操作激增。而且,如果您是真正的速度愛好者,則可能需要設置像Ignite或Redis這樣的內存數據庫。
讓我們處理數據!等等,但是如何?
數據是新的石油,并非沒有原因。我們喜歡數據;它有助于我們更好地理解事物并揭示可行的見解。為此,我們必須以一種或另一種方式處理數據。
首先是Hadoop,其基于MapReduce計算范例的批處理計算框架。生活是美好的,并且在工程師水平擴展其大數據集群并采用大規模并行性的同時演唱了歌曲。每個節點在已為其分配的映射數據上執行給定的reduce函數-這樣,大量數據塊的處理就變得輕而易舉。
這也是Google啟動其搜索引擎的方式。隨著時間的推移,隨著大數據行業的日趨成熟, Hadoop生態系統迅速擴展并引入了更多抽象層來解決新問題。它仍然是當今數據行業中最重要和最常用的工具,您可以在其中輕松地在簡單的商用服務器上運行。只需確保您的節點上具有快速,直接連接的存儲,因為Hadoop MapReduce是磁盤綁定的。
雖然批處理是一個非常強大的概念,但我們首先需要存儲數據以進行處理。當您要開始使用連續數據流進行實時預測時,這會帶來困難。要使算法股票交易或野火監控等工作正常進行,必須一目了然地處理數據。顯然,這里我們需要一個不同的范例,而Apache Spark在流處理方面處于創新的最前沿。
該項目最初旨在解決Hadoop在流分析中的弱點。Spark沒有文件管理系統,因此它依賴于HDFS或任何其他存儲集群。它從集群讀取數據,一步完成其操作,然后將數據寫回到集群。這可以比Hadoop快100倍,因為默認情況下Spark在內存中運行。在為您的Spark集群選擇正確的基礎架構時,請尋找功能強大的RAM。
像大多數偉大的技術一樣,Spark發生了很大的變化。現在,它是一個統一的分析引擎,具有強大的交互式查詢,圖形處理和迭代算法。例如,您可以輕松構建機器學習工作流程,并在Spark上使用一些最受歡迎的算法來遍歷數據集并構建機器學習模型。這些天,它甚至可以處理批處理作業。而關于Spark的最好的事情?它是完全免費的。
云還是不云
好的,您剛剛在口袋里就擁有了所有這些功能強大的開源工具。現在,您需要為項目選擇正確的基礎架構。如果您購買裸機服務器并將其托管在本地,則可以利用原始基礎結構的大部分好處,但需要大量的前期資本投資和進一步的維護成本。
盡管對于大型企業來說,這種選擇仍然相當可觀,但是中小型企業必須更加敏捷。另一方面,租用基礎結構是更方便的選擇,因為您按使用量付費,而無需投資硬件。假設您最終決定遷移到云中。但是選擇哪一個呢?
每個超大規模提供商,無論是AWS,Azure還是GCP,都具有廣泛的托管服務組合,可為大數據社區提供服務,范圍從托管數據庫到集成的機器學習框架。這似乎是一種萬能的解決方案,但是它們的大多數托管服務都具有與免費提供的開源同類服務大致相同的功能。如果您仍然希望完全從基礎結構中抽象出來,并且可以將其鎖定在一個提供商中,那您就可以準備接收不斷增長的發票并使用復雜的定價計算器。有趣的是,甚至還有Cloud Economist的角色可以幫助您解決AWS發票。
好的,因此您想完全控制您的云堆棧,并始終可以自由選擇其駐留位置。如前所述,諸如Hadoop和Spark之類的開源技術在商用硬件上確實能很好地工作,因此主要問題是選擇哪種基礎架構作為服務提供商。從歷史上看,典型的云產品包括虛擬機,這些虛擬機具有超額預定的硬件資源,通常會導致工作負載變動和安全風險增加。盡管云服務生態系統已大大擴展,但基礎架構基礎服務仍然嚴重依賴虛擬機管理程序。
塊上的裸金屬云
裸金屬云是不同的。您仍然擁有完全自動化的基礎架構配置,而沒有底層虛擬化層。這很棒,有幾個原因。首先,所有服務器都是嚴格的單租戶,并且您是整個計算機的唯一所有者。單身生活并不會帶來很多樂趣,但在云中卻是很棒的:您沒有喧鬧的鄰居,沒有硬件超額預定,沒有虛擬機監控程序開銷,并且安全風險更低。簡而言之,裸機云是托管資源密集型應用程序的一種更干凈的方法。對于需要強大基礎架構和增強安全性的數據分析工作負載,裸機云無與倫比。
裸機的原始馬力
在裸機上運行大數據集群可為您帶來更多優勢??梢酝ㄟ^RESTful API在數分鐘內輕松擴展和縮小服務器,這在運行分布式系統時至關重要。沒有虛擬化和硬件超量預訂,您可以以最大容量運行應用程序,并且仍具有平穩穩定的工作負載。如果這還不夠,您可以根據需要自定義服務器硬件。只需在構建機器學習模型時添加GPU加速器,增加RAM來擴展內存數據庫或將NVMe存儲放入服務器即可使Hadoop集群飛速發展。您還能在哪里獲得如此簡單的專用硬件?通過消除虛擬機管理程序的開銷并引入自定義硬件,裸機云可為您提供按需提供的最高效的基礎架構。原始而簡單。
增強的隱私和安全性
在大數據世界中,對安全性非常重視,可以理解的是,您需要相應地選擇基礎架構。處理敏感數據通常意味著您必須存儲和處理個人身份信息(PII),并遵守法律法規。確保您的供應商符合GDPR要求或獲得行業認可的認證(例如ISO 27001)始終是一個好主意。除此之外,您在法律上也有義務擁有私有且隔離的基礎結構。裸金屬云本質上是單租戶,您無需為此付出任何代價。
遵守法律很重要,但系統安全同樣重要。在大數據上,分布式計算集群應在節點之間私下移動數據。為此,您通常需要一個專用網絡子網。在裸機云上,會為每臺服務器自動分配一個專用網絡接口。這樣,您可以在具有10G帶寬的快速安全的LAN上內部處理數據。
數據傳輸便宜100倍
當然,您嘗試使計算盡可能地靠近數據所在的位置。當您的數據集很大時,尤其如此,因為移動計算比移動數據便宜。但是,您仍然需要將數據移入和移出群集。超大規模提供商夸耀其低廉的數據傳輸價格,每TB的價格可能從50美元到100美元以上不等,但在裸機云上,您可以將數據傳入和傳出到Internet的價格低至每TB 1美元。完全不同,對嗎?
現在由您決定
市場上仍然只有少數的裸機云提供商,而能夠提供全自動且易于定制的基礎架構的提供商更少。因此,如果您打算用下一件大事來征服世界,請考慮選擇一個更靈活,高效且具有成本效益的云平臺來升級大數據應用程序。