14天1000+大集羣滾動升級,銀行櫃檯盡然毫無感覺

摘要:中國工商銀行聯合華爲完成了金融行業首家規模超千臺的Hadoop集羣大版本滾動升級,爲期兩週的升級過程突破了傳統的離線升級模式,真正實現了業務無感的平滑滾動升級。

2020年8月27日,中國工商銀行聯合華爲完成了金融行業首家規模超千臺的Hadoop集羣大版本滾動升級,爲期兩週的升級過程突破了傳統的離線升級模式,真正實現了業務無感的平滑滾動升級。全程集羣作業無中斷、性能無影響,爲全行上百個應用、上千個場景、上萬個作業保障了7*24小時不間斷的數據服務。本次滾動升級對金融科技領域意義重大,中國工商銀行爲金融同業樹立了大數據服務連續性上的建設標杆,響應了國家大數據和人工智能戰略技術高地的建設要求,爲金融同業大數據平臺的高可用建設提供了可參考的綜合解決方案。

一、項目背景

中國工商銀行從2002年起持續優化數據架構,推進數據賦能業務,在完成數據大集中的同時,率先建設金融行業企業級數據倉庫。以“開放、共享”爲原則,工商銀行於2016年啓動大數據服務雲體系的建設,完成了企業級全量數據集中和通用服務沉澱,截至目前以可靠、高效、易擴展的大數據和人工智能平臺爲基礎,以數據中臺爲賦能核心,構建了集基礎設施、大數據和人工智能技術、海量高時效全數據、標準智能共享服務、豐富多樣業務場景於一體的數據智能生態新模式(如圖1),助力全行服務提質增效,向智能化、生態化時代的躍進。

圖1 中國工商銀行大數據服務雲現有架構

工行大數據平臺的Hadoop批量集羣已超過一千個節點,日均處理作業數十萬個,數據存儲數十PB,賦能於180餘總行應用和境內外41家分行及子公司,承載了全行重點批量作業,其中包括監管報送、反洗錢、反欺詐、損益分析、減值測算等多個重要業務場景,服務連續性需求較高。爲了在保障7*24小時不間斷服務的前提下,維持技術引領,Hadoop集羣應做到業務無感的平滑滾動升級,保障技術組件的先進性,降低技術風險,深化技術能力,助力新技術場景創新和IT架構轉型升級。

二、項目內容

2.1 技術挑戰

工行本次滾動升級面向的Hadoop集羣,部署了ZooKeeper、HDFS、YARN、MapReduce、Spark、Hive、HBase等各類組件,各組件的版本更新必然存在一些適用性、兼容性問題(組件版本變更如表1)。

表1. 組件版本變更表

此外,集羣中每日上萬作業的執行,也爲無感知的滾動升級加大了難度。主要挑戰有以下幾點:

一是Hadoop 2.X到3.X的跨大版本升級中,社區僅提供了HDFS的滾動升級能力,YARN的社區原生目標版本由於與原版本協議不同,無法支持滾動升級。

二是Hive 1.2到3.1的跨大版本升級中,由於元數據前後格式不兼容、API前後版本有變化、部分語法不兼容等問題,導致社區原生版本無法支持滾動升級。

三是社區原生版本的HDFS在升級過程中,刪除的文件並不會物理刪除,而是移動到trash目錄,這一處理對大容量集羣的滾動升級造成存儲資源壓力,阻礙了剩餘信息保護。

四是升級前後由於版本變化,每日上萬任務量,如何保障平穩運行,尤其是損益分析、減值測算等核心場景。

五是上千臺的物理節點的環境下,需要確保在升級過程中,快速應對硬件(磁盤、內存等)故障,不影響升級。

六是升級過程較爲複雜,應對集羣升級狀態強化監控、告警等運維管理服務,加強關鍵技術、管理瓶頸的應急響應。

2.2 技術保障

所謂滾動升級,就是藉助於Hadoop核心組件的高可用機制,在不影響集羣整體業務的情況下,一次升級/重啓少量節點。循環滾動,直至集羣所有節點升級到新版本。下圖爲已HDFS組件滾動升級示例:

爲應對上述技術挑戰項目組建了滾動升級小組,由社區PMC、社區Commiter、版本Developer構成,主要執行了以下技術保障:

一是依託協議同步、元數據映射轉換、API封裝轉換等方式,解決了社區協議不同、元數據格式不同、API變化等導致的兼容性問題,保障了滾動升級過程中低版本的組件客戶端的正常使用,目前項目組已將發現的通用問題反饋開源社區。

二是針對HDFS社區新版本升級過程中的文件未刪除問題,項目組額外實現了trash目錄自動清理,將邏輯刪除轉換爲物理刪除,並增補了舊版本定期清理trash目錄的工具。一方面確保了基礎設施資源利用的有效性,降低存儲成本;另一方面貫徹了國標、金標等保2.0中的剩餘信息保護,確保關鍵信息存儲空間的完全釋放。

三是詳細評估了各組件升級過程及升級後版本的性能狀況,完成了升級時長的預估,針對升級過程中和事後可能出現的瓶頸點,做了相應架構調整及優化,助力實現滾動升級的全局可控、全程無感、全面無誤。

爲解決上千節點規模集羣的調度性能,小組推出了自研Superior調度器,在舊版本的基礎上深度優化了調度算法,將一維的調度轉換爲二維調度,實現調度速率提升至每秒35萬個Container。

爲解決大規模存儲的瓶頸問題,社區推出了聯邦解決方案,但不同的命名空間的引入,導致上層業務在開發、數據管理、維護上覆雜度提升,爲解決這一問題,社區又推出了Router Based Federation特性,但由於在NameNode之上加了一層Router進行交互,導致性能下降。小組提供瞭如下優化:

  • 通過在大集羣生產環境中識別關鍵瓶頸,我們通過合併單次讀寫流程中的交互次數、使用改良的數據通信壓縮算法等技術方案,將性能下降控制在4%以內。
  • 爲解決不同命名空間之間數據不均衡的問題,我們利用DataMovementTool自動均衡不同命名空間之間的數據,大大降低了集羣維護成本。

同時,小組發現Hive的元數據在面對海量表/分區的時候,也面臨着非常大的瓶頸。雖然社區推出了Metastore Cache的解決方案,但僅適用於一個MetaStore的場景,多個MetaStore的緩存並不一致,導致此特性無法在實際場景中使用。小組提出使用Redis作爲替代方案,同時通過分佈式鎖、緩存黑白名單機制、緩存生命週期管理等技術手段增強了該特性的可用性。

爲保障大規模集羣在滾動升級期間的容錯能力,小組提供了任務級“斷點續傳”能力,例如:

Hive不中斷業務能力:即當Hive beeline斷連、Hive Server因故障重啓、MapReduce JobHistory無響應等原因導致Hive任務失敗時,任務能夠繼續重試運行,無需失敗從頭開始,大大降低了重試成本及任務時長。

AM的斷點續傳能力:雖然Yarn的Application Master故障後,能夠立即在其他節點上被拉起,但之前已執行的計算任務只能從頭開始處理。小組提供了AM記錄任務執行狀態、區分任務執行進度能力,待AM因故障被重啓拉起後,可以安裝之前的記錄狀態繼續執行,提升了執行效率。

四是運維管理方面,項目組針對性的研發了升級管理服務界面,可以端到端、分步驟地完成滾動升級,便於查看滾動升級狀態,實現組件級控制。爲了降低在升級過程中對關鍵任務服務連續性的影響,項目實現了按升級批次暫停的功能,有助於在關鍵作業或者作業高峯時段,通過暫停升級進行風險規避,確保業務無影響。此外,爲快速處理升級過程中可能出現的硬件故障,升級管理服務提供了故障節點隔離能力,在故障發生時,可以跳過對應節點的升級動作,保障了故障處理和升級的同步進行。

2.3 組織保障

本次升級確立了“風險可控、業務無感”的總體目標,由於目標集羣規模大、涉及應用廣、相關部門多,除了上述技術保障手段,工行還採取了一系列手段,提供組織保障(見圖2),具體描述如下:

圖2 工行滾動升級項目組織保障

在項目管理方面,如何保證跨多部門高效協同地完成工作,是集羣升級過程中一個巨大的挑戰。本次滾動升級項目,形成了大數據與人工智能實驗室牽頭、相關部門配合評審實施的組織形式。前者負責制定了整個項目具體方案和項目流程,通過內部多級評審機制,就總體方案與多部門快速達成共識,同時按照不同的部門職責完成子任務分配,從而保障跨多部門的項目組織架構高效協同工作,平穩推進整體項目進度。

升級準備方面,項目組一是完成了升級版本功能性、非功能性評估,重點驗證了滾動升級的正確性、完整性、適用性;二是實現了對全行的應用場景的梳理,定製了分級驗證機制,爲每一個應用場景制定了相應適度的測試、驗證方案,並完成了正式郵件的告知,用於百餘應用的配合驗證。對於分級驗證機制中的數十個典型應用,通過行內“任務單”項目管理方式納入了項目級配合流程,確保對升級過程進行重點驗證。

災備應急設計方面,工行制定了詳細的保障方案,包括數據備份策略和回滾策略。對於備份策略,一是在升級之前全量備份集羣元數據,排除因元數據丟失而導致丟數的情況;二是對於重點批量數據採用雙園區備份,實現雙加載以避免主集羣升級中的故障風險影響業務。對於回滾策略,一是在技術維度保障了回滾原版本的可行性,保證業務的連續性,二是確立了“無法快速解決的生產故障”、“大規模批量作業中斷”兩項回滾判定條件。上述的“雙加載”是重點業務雙活運行方案的一部分,主要涉及監管報送類損益分析、減值測算等多個應用場景,該類作業在備集羣同步運行,實現重點批量雙園區雙活,切實避免因單邊園區故障影響業務連續性的情況出現。

升級模擬方面,爲了遵循風險可控、循序漸進的原則,工行先後進行了兩套較小規模的集羣滾動升級。一是2020年3月針對Hadoop批量備集羣進行滾動升級,該集羣負責同城雙活運行的重要批量作業,經生產環境實際驗證,升級過程中業務無感知,也未發現集羣側風險;二是2020年4月,工行搭建一套規模更大的Hadoop批量集羣,一方面增強批量雙活承載能力,另一方面再次驗證了滾動升級。兩次生產環境模擬之外,開發、測試環境共計10套不同的Hadoop集羣陸續完成了滾動升級驗證,實現了升級風險的歸納總結和研發修訂,爲最大規模的集羣升級打下堅實基礎。

三、總結與展望

中國工商銀行聯合華爲公司完成的本次金融業首家規模超千臺的Hadoop集羣大版本滾動升級,實現了客戶無感知,切實保障了客戶的核心利益,標誌着工行向金融大數據藍圖邁出了重要的一步,藉助於Hadoop核心組件的高可用機制,完成了端到端分步驟的滾動升級,實現了升級過程中的可視化控制和管理。

大數據的高速發展帶來的社會經濟的“革命”,在廣度、深度和速度上都將會是空前的,也將會遠遠超出工業社會的常識和認知,並且發展所帶來的的挑戰和困難也將是前所未有的。在此背景下,中國工商銀行會繼續建立健全企業級大數據平臺,進一步提升數據洞察能力和基於場景的數據挖掘能力,充分釋放大數據作爲基礎性戰略資源的核心價值,爲金融科技應用實踐和大數據生態建設建設添磚加瓦。

本文分享自華爲雲社區《華爲雲FusionInsight MRS金融行業首個1000+大集羣滾動升級成功》,原文作者:Sailing27 。

 

點擊關注,第一時間瞭解華爲雲新鮮技術~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章