選擇S3 / HDFS的5大理由
在磚,我們的工程師指導成千上萬的組織來定義他們的大數據和雲的策略。當大數據工作負載遷移到雲中,最常問的問題之一就是如何評估HDFS與雲提供商提供的存儲係統,如Amazon的S3,微軟Azure Blob存儲,穀歌雲存儲。在這篇文章中,我們分享我們的想法為什麼雲存儲是數據存儲的最佳選擇。
在這個討論中,我們使用Amazon S3作為一個例子,但結論推廣到其他雲平台。Beplay体育安卓版本我們比較S3和HDFS沿著以下尺寸:
- 成本
- 彈性
- SLA(可用性和持久性)
- 性能/美元
- 事務和數據完整性寫道
成本
讓我們考慮存儲的總成本,這是一個組合的存儲成本和人力成本(維護)。
首先,讓我們存儲成本的估計每月1 tb的數據。
截至2017年5月,S3的標準第一1 tb的數據存儲的價格是23美元/月。請注意,根據您的使用模式,S3清單和文件傳輸可能會花費金錢。另一方麵,使用infrequent-access冷數據存儲成本隻有一半,12.5美元/月。對於本文的目的,我們使用23美元/月近似成本。S3與計算能力但卻不給你自由利用短暫的集群和選擇實例類型最適合一個工作負載(例如,計算密集型),而不是簡單地從存儲的角度是最好的。
對HDFS,最經濟有效地存儲EC2實例是d2的家庭。慷慨和HDFS最好的情況下,我們使用以下假設是幾乎不可能實現在實踐中:
- 水晶球未來完全預測存儲需求提前三年,所以我們可以使用的最大的折扣使用3年保留的實例。
- 工作負載穩定房價比為1.0。這意味著我們的存儲係統不需要彈性。
- 存儲利用率為70%,和標準HDFS複製因子設置為3。
與上述假設,使用d2.8xl實例類型(與71%的折扣5.52美元/小時,48個結核病硬盤),它的成本5.52 x 0.29 x 24 x 30/48 3/0.7 = 103美元/月1 tb的數據。(注意與保留的情況下,可以實現低價格在d2的家庭。)
所以單獨的存儲成本,S3是5 x比HDFS便宜。
基於我們的經驗管理海量數據,S3的人力成本幾乎為零,而通常需要一個Hadoop的工程師團隊或供應商支持維護HDFS。一旦我們在人力成本因素,S3是比HDFS便宜10倍集群在EC2上類似的能力。
彈性
容量規劃很難得到正確的,很少組織可以準確估計資源需求的前期。在內部世界,這將導致大量的痛苦在事後提供更多的資源或由於過度供應低利用率的前期巨大浪費。
S3的最好的好處之一,或雲存儲一般來說,是其彈性和現收現付定價模型:你隻收取你,如果你需要更多的數據,隻是轉儲。在引擎蓋下,雲提供商自動規定資源需求。
簡單地說,S3是彈性,HDFS不是。
SLA(可用性和持久性)
基於我們的經驗,S3的可用性已經太棒了。隻有兩次在過去的六年中,我們經曆了S3停機時間,我們從S3從未經曆過數據丟失。
亞馬遜聲稱99.999999999%的耐久性和99.99%的可用性。注意,這是高於絕大多數組織的內部服務。從亞馬遜官方的SLA可以在這裏找到:服務水平協議——Amazon Simple Storage Service (S3)。
HDFS,相反,它是很難估計的可用性和耐久性。一個理論上可以計算出兩個SLA屬性基於EC2的平均故障間隔時間(MTTF),加上升級和停機維護時間。在現實中,這些都是難以量化。據我們了解,大多數工作與客戶beplay体育app下载地址Hadoop集群可用性低於99.9%,即每年至少9個小時的停機時間。
與cross-AZ自動複製,複製在不同的數據中心,S3的可用性和耐用性遠優於HDFS”。
性能/美元
S3的主要問題是,消費者不再有數據本地化和所有讀取需要通過網絡傳輸數據,性能調優和S3本身就是一個黑盒子。
當使用HDFS,完美的數據本地化,可以得到~ 3 gb /節點本地讀吞吐量的一些實例類型(如i2.8xl,大約90 mb / s /核心)。DBIO,我們的雲I / O優化模塊,提供優化的連接器S3和可以維持~ 600 mb / s讀吞吐量i2.8xl每核心(大約20 mb / s)。
也就是說,在每個節點的基礎上,HDFS讀吞吐量可以產生6 x高於S3。因此,考慮到S3比HDFS便宜10倍,我們發現S3幾乎2 x比HDFS性能每一美元。
然而,與S3一大好處是我們可以從計算單獨的存儲,因此,我們可以推出一個較大的集群小段時間增加吞吐量,容許物理限製。這種分離的計算和存儲也允許不同火花的應用程序(如數據工程ETL作業和一個特別的數據科學模型訓練集群)上運行自己的集群,防止影響多用戶固定大小的Hadoop集群的並發問題。這種分離(和不同的工作負載的靈活住宿)不僅降低了成本,還提高了用戶體驗。
HDFS S3有超過一個優點是元數據性能:它是相對較快對HDFS namenode但成千上萬的文件列表可以為S3需要很長時間。然而,可伸縮的分區處理功能我們實現了在Apache 2.1火花與元數據性能在S3中,緩解了這一問題。
請繼續關注公告在不久的將來與DBIO完全消除這個問題。
事務和數據完整性寫道
大多數的大數據係統(例如,火花,蜂巢)依靠HDFS的原子重命名功能支持原子寫道:也就是說,工作是觀察到的輸出的讀者以一種“全或無”的方式。這對數據的完整性是很重要的,因為當工作失敗,部分數據不應寫入腐敗的數據集。
S3缺乏原子目錄重命名已保證數據完整性的一個關鍵問題。這導致了複雜的應用程序邏輯,以保證數據的完整性,如沒有附加到現有分區的數據。
今天,我們很高興宣布支持事務DBIO工件中寫道,這檔節目的特點就是高性能連接器S3(和其他未來的雲存儲係統)與事務性寫支持數據的完整性。有關更多信息,請參見這篇文章。
其他操作問題
到目前為止,我們已經討論了耐用性、性能和成本考慮,但還有其他幾個地區係統S3有較低的運營成本和易用性比HDFS:
- 加密、訪問控製和審計:S3支持多種類型的加密,與AWS customer-managed鑰匙,並易於配置的審計日誌記錄和訪問控製功能。這些特性使它容易滿足法規遵從性需求,如PCI或HIPAA合規。
- 備份和災難恢複:S3的選擇版本控製功能自動維護修改或刪除文件的備份,因此很容易從意外刪除的數據恢複。區域複製可以用來增強S3已經強大的可用性保證為了抵禦AWS的完整的故障區域。
- 數據生命周期管理:S3可以配置為自動遷移對象一個可配置的時間後冷藏。經常在許多組織中,讀取數據時讀取新的顯著較少。S3的生命周期管理政策可以自動執行遷移舊對象罕見訪問存儲為了節省成本,或冰川來實現更大的節約成本;後者是有用的組織,監管法規長期存儲的數據。
HDFS支持這些額外的要求需要更多工作的係統管理員和進一步增加運營成本和複雜性。
結論
在這篇文章我們使用S3雲存儲vs HDFS:為例比較
S3 | HDFS | S3 vs HDFS | |
---|---|---|---|
彈性 | 是的 | 沒有 | S3是更有彈性 |
成本/結核/月 | 23美元 | 206美元 | 10倍 |
可用性 | 99.99% | 99.9%(估計) | 10倍 |
耐用性 | 99.999999999% | 99.9999%(估計) | 10 x + |
事務性寫 | 是的,DBIO | 是的 | 類似的 |
總而言之,S3和雲存儲提供彈性,與一個數量級更好的可用性和耐久性和2 x更好的性能,在10 x低成本比傳統HDFS數據存儲集群。
Hadoop的HDFS商品化大數據存儲,使其廉價的存儲和分發大量的數據。然而,在一個原生雲架構,HDFS的好處是最小的,不值得操作的複雜性。這就是為什麼許多組織沒有HDFS運行在雲中,而是使用S3存儲後端。
磚的DBIO,顧客可以坐下來享受高性能的優點連接器雲存beplay体育app下载地址儲在不犧牲數據的完整性。