大數據下單集群如何做到2萬+規模?
【導讀】
7月9日,中國通信院在大數據產業峰會·成果發布會上為通過大數據產品能力評測的產品頒發證書,華為云FusionInsight MRS以測試項全部滿分的成績順利通過評估,并成功突破單集群2萬節點的超大規模,樹立行業新標桿。
為了應對5G、IoT高速發展,大數據技術在分布式批處理基礎能力上進一步加強。FusionInsight MRS作為華為基于Hadoop生態的大數據產品,一直致力于超大規模單集群承載能力的探索和實踐,目的是當數據指數級增長時,華為自研的大數據產品能平滑的滿足用戶需求。隨著社會數字化轉型的加速,數據量激增超出了預期,與此同時,用戶的多場景融合分析的訴求不允許將集群進行拆分,不允許將數據分析業務割裂而導致業務模塊之間失去關聯。因此華為大數據研發團隊開啟了單集群2萬節點規模探索。
超大規模集群的技術痛點
對于一個分布式系統來說,當集群規模由小變大以后,簡單的問題都會變得異常復雜。隨著節點的增多,簡單的心跳機制,也會讓Master節點不堪重負。2W節點的FusionInsight MRS集群面臨著諸多挑戰:
1.如何實現面向多租戶場景的批、流、交互式混合負載的高效調度,集群規模與處理能力的線性擴展、引擎之間資源波峰波谷錯峰復用
數據的集中存儲可以通過超大集群來有效解決,但數據如果僅僅是存著,不會產生價值,只有進行大量的分析才能從數據中找到價值。通過跑批任務,生成固定的報表是大數據平臺的常規用法,數百P的數據如果僅僅用來跑批,無論是對數據還是對海量的計算資源都是一種浪費;時間就是金錢,時間就是效率,數據T+0入湖,實時更新入湖,就是不斷加速數據價值變現,超大規模集群應該能實現數據的T+0實時數據入湖,全量數據的批量分析,數據分析師的交互式探索分析,確保平臺的價值最大化 。如在一個大集群上,同時快速的實現數據T+0的實時入湖,批分析,還能面向大量分析師的即席查詢要求,做到計算資源的隔離和共享,是調度系統需要解決的一個重要問題。
2.如何面對存儲、計算、管理方面的新挑戰,突破多個組件的瓶頸限制
計算方面:隨著集群規模變大,YARN的ResourceManager可調度的資源變得更多,可以并行的任務更多,這對中心調度進程提出了更高的要求,如果調度速度跟不上,作業任務會在集群入口處堆積,而集群的計算資源無法有效利用。
存儲方面:隨著存儲容量的增加,HDFS在大規模集群上需要管理的文件對象增多,HDFS NameNode元數據量也會相應增加。社區雖然提供了NameNode聯邦機制,但需要應用層感知不同NameNode的命名空間,使用和維護都會變得異常復雜。除此之外,還很容易出現各命名空間之間映射的數據量不均衡的問題。同時,隨著數據量的增加,Hive元數據中的數據量急劇增長,對元數據庫也會形成極大的壓力,極易出現所有的SQL語句都堆積在元數據查詢環節造成阻塞。
運維管理方面:除了計算和存儲面臨的瓶頸問題,平臺的運維能力,也會隨著規模變大,遇到瓶頸問題。如系統的監控系統,當節點從5000變為20000的時候,每秒處理的監控指標會從每秒60萬增加到200多萬條。
3.如何提升大規模集群的可靠性和運維能力,確保集群不停服
平臺的可靠性一直是平臺運維部門最關注的點,當集群承擔了全集團的全量數據統一加工分析之后,就意味著集群必須24小時永遠在線,但是技術會不斷發展[Z(4] ,平臺必須要確保系統可以支持后續的更新與升級,以確保集群可面相未來持續演進,發展。
另外,隨著集群規模的增加,機房空間不足的問題將凸顯出來。如果簡單地將一個大集群跨機房部署,在帶寬負載和可靠性上,都會面臨比較大的挑戰。如何做到機房級的可靠性,對一個超大規模的集群也至關重要。
超大規模集群優化的實踐過程
針對以上各方面的挑戰,FusionInsight MRS在3.0版本進行了系統性的優化。如果說當年從500到5000節點,主要是在代碼級的優化,那么從5000到2W,僅憑代碼級的優化已經無法達成,很多問題需要架構級的優化才能解決。
1.自研Superior超級調度器,解決超大規模調度效率和面向多租戶場景的混合負載的問題
FusionInsight引入數據虛擬化引擎,在統一的大集群上提供了交互式查詢的能力,解決了面向分析師的查詢效率問題。為了支撐在超大集群上同時支持多樣化的負載,在自研的Superior調度器上,實現了為租戶同時分配保留資源與共享資源,租戶獨享保留資源的權益同時還滿足了資源共享的需求。對于更重要的業務,則可以通過綁定固定資源池的方式,將一批固定的機器分配給某個租戶,做到物理上的隔離。通過計算引擎和調度引擎的協同,真正做到了數據不出湖,在一個大平臺上的業務閉環。
在多租戶能力方面,隨著租戶越來越多,租戶間的資源隔離成為用戶的核心訴求。Hadoop社區提供了基于隊列的計算資源隔離能力,基于Quota的存儲資源閾值限制能力,但是在任務或者讀寫操作被分配到同一臺主機上時,依然會相互爭搶資源。針對此場景,在MRS產品上提供了以下幾種方式進行更加細粒度的隔離:
標簽存儲:給承載存儲資源的DataNode打標簽,在文件寫入時指定標簽,實現了最大程度的存儲資源隔離。該特性可以有效應用于冷熱數據存儲和硬件資源異構的場景。
多服務:在同一個集群中的不同主機資源上,部署多個同種服務,不同的應用可根據需求,使用各自的服務資源,并且相互之間互不干擾。
多實例:在同一個集群中的同一臺主機資源上,獨立部署同種服務的多個實例資源,以達到主機資源的充分利用,不與其它服務實例共享。例如:HBase多實例、Elasticsearch多實例、Redis多實例等。
2.技術攻堅,突破計算、存儲、管理等各方面的瓶頸
在計算任務的調度效率方面,通過專利調度算法進行優化,將一維的調度轉換為二維調度,實現了相對開源調度器在效率上數倍提升。在實際的大規模集群生產環境下,針對自研Superior和開源Capacity性能對比:
同步調度情況下,Superior比Capacity快30倍
異步調度情況下,Superior比Capacity快2倍
同時通過對2W集群的深度優化,FusionInsight MRS 3.0版本的Superior可以達到調度35w/s個Container的調度速率,完全超出了大規模集群在調度速率上的用戶預期,并且集群資源利用率達到98%以上,超過開源Capacity的能力近一倍,為大規模集群的平穩商用奠定了堅實的基礎。
下圖是分別在Superior和Capacity下關于“資源利用率”的監控視圖:可以看出Superior近乎100%的資源使用率,而Capacity下資源無法得到充分利用。
Superior資源利用率
Capacity資源利用率
在存儲方面,Hadoop社區為解決HDFS在文件對象管理上的瓶頸,推出了聯邦解決方案。但是大量不同命名空間的引入,直接導致上層業務在開發、管理、維護上復雜度上升。為解決這一問題,社區又推出了Router Based Federation特性,由于在NameNode之上加了一層Router進行交互,導致性能下降。
針對以上問題,FusionInsight MRS對產品方案做了如下優化:
通過在大集群生產環境中識別關鍵瓶頸,FusionInsight MRS利用合并單次讀寫流程中的交互次數、使用改良的數據通信壓縮算法等技術方案,將性能下降控制在4%以內。
為解決不同命名空間之間數據不均衡的問題,FusionInsight MRS利用DataMovementTool自動均衡不同命名空間之間的數據,大大降低了集群維護成本。
隨著數據量的增加,Hive的元數據在面對海量表/分區的時候,也面臨著非常大的瓶頸。雖然Hive的社區推出了Metastore Cache的解決方案,但并未解決多個Metastore之間的緩存一致性的問題,導致此方案無法在大規模的集群上規模商用。FusionInsight MRS通過引入分布式緩存Redis作為替代方案,結合分布式鎖、緩存黑白名單機制、緩存生命周期管理等技術手段增強了Metastore Cache的可用性。
在運維管理面方面,當集群規模增長到2W節點后,運維壓力陡然增加:
系統需要采集的監控指標數量也從原來的每秒采集60W+條數據,增長到200W+條
告警并發處理從原來的200條/s增長到1000條/s
配置管理的總條目數從50萬增長到200多萬
FusionInsight MRS原有架構中主備模式的監控、告警、配置、元數據存儲模塊,因為數據量的暴漲受到了巨大的性能挑戰,為解決這一問題,新版本利用Flink、HBase、Hadoop、Elasticsearch等成熟的分布式組件技術,將原來的集約主從模式調整成了可彈性伸縮的分布式模式,成功解決了運維管理面臨的難題,并且為后續運維數據的二次價值挖掘打下了基礎。
3.通過滾動升級/補丁、任務級“斷點續傳”、跨AZ高可用等部署能力,保障平臺持續穩定運行
滾動升級/補丁:FusionInsight從2.7版本開始支持滾動升級功能,實現了平臺升級/補丁等操作的業務無感知。但隨著時間的發展 ,社區能力卻不支持滾動升級,如Hadoop2到Hadoop3的大版本升級這意味著很多超大集群不得不一直停留在老版本而無法升級,當然這是業務無法接受的。FusionInsight MRS通過對社區接口的兼容性處理,成功實現了Hadoop大版本間的滾動升極,并在2020年Q2完成了1W+節點集群規模的滾動升級。在FusionInsight的客戶中,滾動升級成了500+規模集群的必備能力。
任務級“斷點續傳”:在大規模集群上,持續運行著一些超大任務,動輒包含幾十萬個Container,這類任務往往運行時間長,中間一旦出現個別故障,有可能導致任務需重新執行,造成大量的計算資源白白浪費。
FusionInsight MRS提供了多種機制保障任務的可靠運行,例如:
存儲上提供感知AZ的文件存儲策略,將文件自身及其副本分別放置在不同的AZ上,用戶發起讀寫操作時,優先在本AZ內尋找資源,只有在AZ故障的極端場景下,才會出現跨AZ的網絡讀寫流量。
計算上提供感知AZ的任務調度機制,將用戶提交的任務充分分配在同一個AZ內完成,避免同一個任務的不同計算單元之間消耗網絡資源。
通過以上的存儲塊放置策略和計算任務的本地化調度,還可實現單集群跨AZ的高可用,單AZ故障的時候,核心數據和計算任務不受影響。
【結束語】
FusionInsight MRS 單集群21000節點在2020年7月獲信通院頒發大數據產品能力評測證書,成為業界第一個單集群突破2W節點的商用大數據平臺,樹立行業新標桿。未來,FusionInsight MRS將持續深入大數據技術的探索和研究,在大集群技術的基礎上進一步實現存算分離,通過統一的元數據和安全管理,實現數算分離(數據+元數據和計算分離),從而實現數據在更大范圍的共享,進而實現一份數據,多個計算集群的靈活部署和彈性伸縮,通過平滑擴展的架構,可支持10萬級,甚至百萬級別的集群規模,不斷適應企業大數據應用多場景融合的核心訴求。
未來架構演進方向
十多年來FusionInsight 致力于為全球60+國家地區、3000+政企客戶構建企業級智能數據湖,結合平臺+生態戰略,與800+商業合作伙伴 ,廣泛應用于金融、運營商、政府、能源、醫療、制造、交通等多個行業,在政企數字化轉型中,釋放數據價值,助力政企客戶業務高速增長。MRS源于開放的大數據生態,疊加了企業級的關鍵能力,既保持了開放性,又給客戶提供了企業級融合大數據平臺,幫助客戶實現T+0數據入湖,一站式融合分析,讓數據“慧”說話。
數據庫 大數據
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。