在Apache Hadoop的起步階段,主要支持類似搜索引擎的功能。如今,Hadoop已經被數十個行業采用,它們依靠大數據計算來提升業務處理性能。政府、制造業、醫療保健、零售業和其他部門越來越多的從經濟發展和Hadoop計算能力中受益,然而受到傳統企業解決方案限制的公司將會發現競爭變得越來越殘酷。
選擇一個合適的Hadoop發行版和在業務中應用Hadoop一樣有必要。最終,你會發現選擇哪種Hadoop發行版取決于主機的規格,盡管性能和擴展性才是你應該仔細檢查的兩個主要特性。讓我們了解一下一些具體的Hadoop性能和擴展性要求,以及對幾個關鍵架構的要求。
性能
企業需要擺脫傳統的數據庫解決方案來管理數據,主要原因是為了增加原始性能并獲得可擴展性。這可能會讓你感到驚訝,因為并不是所有創建出的Hadoop分布系統都一樣。
在我的另一篇文章中曾講到,增加250毫秒的延遲可能會毀掉整個線上銷售的旺季,我們可以了解一下為什么性能的低下(高延遲)會讓人難以忍受。網站性能的遲緩會使線上的銷售轉化率下降7%,這對于流量很大的線上零售商來說意味著數百萬美元的損失。
正如你在下圖看到的那樣,將MapR M7版本與另一個Hadoop發行版對比,在延遲上的差別意味著性能的不同,而不同發行版之間性能差距也是驚人的。
當你考慮Hadoop的實時應用時,比如金融安全系統的實時應用,那樣對高性能增加的要求甚至更高。
要特別感謝像Hadoop這樣的技術,它使金融罪犯竊取數字資產變得越來越難,金融服務公司比如Zions銀行現在已經能夠在銀行客戶感覺到任何實質性影響之前阻止財務欺詐。對于分析和實時數據響應來說,高性能和可靠性很有必要,這可以阻止破壞性欺詐活動。
擴展性
Hadoop的另一個主要優點是可擴展性。不用通過單一的企業服務器限制數據吞吐量,Hadoop可以跨計算機集群完成對大型數據集的分布式處理,從而在商品化硬件多個部分之間采用逐個擊破的辦法消除數據上限。
這種體系結構只是數據可擴展性提升的起點,還遠沒有結束。關于可擴展性,Hadoop平臺內還有三個方面需要進一步考慮:
文件瓶頸
Hadoop默認的體系結構利用單一NameNode作為剩余數據節點的主節點。因為單個NameNode,所有數據被迫進入到一個瓶頸期,這就將Hadoop集群限制在只能有5000萬到2億個文件。
單個NameNode的執行情況也需要使用商業級NAS,而不是預算友好型的商品化硬件。
對于單一NameNode體系結構有一種更好的選擇——使用分布式元數據結構。下面提供兩種體系結構的可視化比較:
正如你所看到的那樣,分布式元數據架構使用的完全是商品化硬件,不僅節省了成本,它還使性能提升了10-20倍,擺脫了文件瓶頸,使文件數上限達到了10億,比單個NameNode的體系結構在容量上提升了5000倍,這確實是很大的成功。
節點擴展
Hadoop的一些較小用戶對數據存儲和處理并沒有太高要求,因此能夠在更少的節點上運行,而有些Hadoop實現則可以達到了數千節點的規模。
這也是Hadoop可擴展性非常出色的地方。從一個入門級大數據實現擴展到具有數千個節點的集群很容易,按照需求增加商品化硬件可以使成本最小化,這涉及到數據處理成本以及需求增加所需投入的成本。
節點容量
除了節點的數量,考慮到物理存儲限制,Hadoop用戶還應該檢查每個處理和存儲容量。你可以使用具有更高磁盤密度的節點減少總體節點數量,同時還能保證數據存儲的要求。
架構基礎
Hadoop的性能和可擴展性可以被進一步提升,前提是你要有多架構基礎分布式系統的思想。
減少軟件層
軟件層太多,會導致導航成本的增加,使Hadoop系統的性能很難得到提升。
使所有應用程序在同一個平臺上運行
一些Hadoop發行版可能會要求你創建多個實例,一個優化執行將使同一個環境中所有的工作負載被同時處理,這就減少了重復數據的產生,因此提高了可擴展性和性能。
利用公共云平臺獲取更好的彈性和可擴展性
一個好的發行版使你可以在自己的防火墻內靈活地使用Hadoop以及可靠的云環境,比如亞馬遜網絡服務和谷歌計算引擎。
最后,選擇正確的Hadoop發行版應符合業務需求,不僅僅考慮當前的需求還應考慮未來的需求。分析每個發行版的性能和可擴展性,同時考慮架構基礎,這也是在組織內成功實施和評估Hadoop的基礎。