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

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

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

1、項目背景

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

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

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

2、項目內容

2.1 技術挑戰

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

表1. 組件版本變動表工具

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

一是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集羣陸續完成了滾動升級驗證,實現了升級風險的概括總結和研發修訂,爲最大規模的集羣升級打下堅實基礎。

3、總結與展望

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

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

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

 

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

相關文章
相關標籤/搜索