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





















