
揭秘中興大數(shù)據(jù)在銀行領(lǐng)域的系統(tǒng)部署
本文首度揭秘了中興通訊的大數(shù)據(jù)平臺系統(tǒng)DAP在國內(nèi)Z銀行的部署過程。
大數(shù)據(jù)是一個開放的平臺,當(dāng)前大部分系統(tǒng)是基于互聯(lián)網(wǎng)公司的開源的產(chǎn)品而生,銀行業(yè)是不能完全照搬互聯(lián)網(wǎng)原生技術(shù)模式,銀行業(yè)在安全性、穩(wěn)定性有其特殊要求,對高可用、安全私密有更高的需求,新的大數(shù)據(jù)技術(shù)平臺必須與傳統(tǒng)行業(yè)的企業(yè)級特性相融合。
為了保證穩(wěn)定性,從硬件到軟件都需要考慮高可用問題。
Z銀行的大數(shù)據(jù)業(yè)務(wù)場景如下:
綜合上述業(yè)務(wù)場景,同步考慮金融行業(yè)的數(shù)據(jù)高安全性,服務(wù)高穩(wěn)定性,我們進(jìn)行規(guī)劃設(shè)計。
Z銀行需要進(jìn)行海量數(shù)據(jù)的存儲,則必須要部署HDFS,且該組件是其他組件的基礎(chǔ)。同時用戶需要對數(shù)據(jù)進(jìn)行ETL處理,則MapReduce(YARN)也同樣要部署。對外進(jìn)行在線查詢離不開HBase,因為HBase也需要進(jìn)行部署。
綜上,需要部署的組件有Zookeeper、HDFS、HBase和MapReduce(YARN)。
金融業(yè)的特殊性要求我們必須考慮到整體服務(wù)的高穩(wěn)定性,所以需要考慮組件的高可用實現(xiàn)。對于各個組件的高可用實現(xiàn),我們分別采用如下的實現(xiàn)方式:
Zookeeper:選擇三臺服務(wù)器部署,為集群提供協(xié)調(diào)服務(wù)。
NameNode:采用QJMHA方式部署,選擇兩臺服務(wù)器部署NameNode,選擇三臺服務(wù)器部署JournalNode。
HBase:配置兩臺Hmaster,分別為主備,主備倒換借助Zookeeper實現(xiàn)。
ResourceManager:采用HA的方式部署。YARN依賴于HDFS運(yùn)行,故部署時可選擇將ResourceManager與HDFS的 NameNode合設(shè)、將NodeMamager與DataNode合設(shè)的方式。
業(yè)務(wù)及管理數(shù)據(jù)庫:采用分布式數(shù)據(jù)庫實現(xiàn),一般選擇三臺機(jī)器作分布式數(shù)據(jù)庫集群的部署。
HIVE、ZHD-Manager:分別配置兩臺作為主備。
了解到該銀行的業(yè)務(wù)主要分為普通業(yè)務(wù)和重點(diǎn)業(yè)務(wù),因此我們又必須考慮到數(shù)據(jù)和業(yè)務(wù)的安全性,為降低彼此的影響,需要進(jìn)行物理隔離。我們基于此將整個機(jī)群設(shè)計為由一個大集群和若干小集群組成,大集群用于進(jìn)行基礎(chǔ)數(shù)據(jù)的清洗等ETL任務(wù),再將處理后的數(shù)據(jù)導(dǎo)入到小集群中進(jìn)行處理,由小集群專享該數(shù)據(jù)。一般來說一個集群都自帶一套管理門戶,但這樣會造成維護(hù)使用上的復(fù)雜,所以為了降低部署成本和維護(hù)復(fù)雜性,就要采用單個門戶管理多個集群的方式。
另外,一般來說在實際部署時整套系統(tǒng)環(huán)境又要分為生產(chǎn)環(huán)境和測試環(huán)境。其中生產(chǎn)環(huán)境僅僅用于實際運(yùn)營,承載真實業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)應(yīng)用;測試環(huán)境用于各種必要的功能驗證和性能測試等,包括應(yīng)用在上線前的功能驗證。
如把兩個環(huán)境合用,將帶來很多不確定性,測試環(huán)境容易對生產(chǎn)環(huán)境造成干擾,影響生產(chǎn)環(huán)境正常業(yè)務(wù)的提供,甚至測試環(huán)境中不成熟的應(yīng)用和業(yè)務(wù)運(yùn)行時可能對環(huán)境造成破壞性的影響。因此對生產(chǎn)環(huán)境和測試環(huán)境進(jìn)行物理隔離,兩者獨(dú)立運(yùn)行,互不干擾,防止因硬件資源的占用或者搶奪對運(yùn)行造成不必要的影響。保證系統(tǒng)運(yùn)行的安全和資源的有效利用,進(jìn)一步保障銀行的安全生產(chǎn)。
解決了生產(chǎn)測試可能造成的互相干擾的問題,接下來我們還要考慮各種不同類型應(yīng)用的部署和運(yùn)行。在Z銀行的應(yīng)用場景中,大數(shù)據(jù)平臺上運(yùn)行的應(yīng)用分為在線應(yīng)用和離線應(yīng)用兩大類。作為大數(shù)據(jù)平臺,就必須要對在線應(yīng)用和離線應(yīng)用的運(yùn)行提供基本的運(yùn)行規(guī)劃,為應(yīng)用的部署提供依據(jù),因為不用的應(yīng)用在同一套物理集群上部署運(yùn)行時,同樣會出現(xiàn)資源競爭的情形。
1)不同應(yīng)用所用資源的隔離,解決在線類應(yīng)用和離線類應(yīng)用在運(yùn)行時的資源爭搶問題。
對于目前的業(yè)務(wù)場景,MapReduce任務(wù)、Hive為離線應(yīng)用,HBase服務(wù)為在線應(yīng)用,提供實時查詢服務(wù)。部署方式如下圖所示:
在線應(yīng)用與離線應(yīng)用資源隔離
集群中的數(shù)據(jù)都是基于HDFS進(jìn)行存放的,因此對于屬于同一個集群內(nèi)的應(yīng)用的數(shù)據(jù)隔離,可通過設(shè)置不同的HDFS目錄存放的方式實現(xiàn)。不同應(yīng)用屬于不同的用戶,不同的應(yīng)用使用不同的目錄,然后通過對目錄進(jìn)行權(quán)限配置的方式進(jìn)行隔離和共享。
2)不用應(yīng)用運(yùn)行時計算資源的隔離考慮,解決運(yùn)行時內(nèi)存和CPU的調(diào)度問題。主要包括如下兩種手段:
由于MapReduce任務(wù)運(yùn)行時往往會占用大量的CPU和磁盤資源,為保證自身或者其他任務(wù)的正常執(zhí)行,對MapReduce也要進(jìn)行隔離。
對于普通MapReduce任務(wù)的隔離通過YARN自身的機(jī)制完成。在YARN中,資源管理由ResourceManager和NodeManager共同完成,其中ResourceManager中的調(diào)度器負(fù)責(zé)資源的分配,NodeManager負(fù)責(zé)資源的供給和隔離。ResourceManager將某個NodeManager上資源分配給任務(wù)后,NodeManager按照要求為任務(wù)提供相應(yīng)的資源,保證這些資源具有獨(dú)占性,為任務(wù)運(yùn)行提供基礎(chǔ)的保證。
另外MapReduce任務(wù)實時性要求不高,可通過為各個MapReduce任務(wù)單獨(dú)規(guī)劃運(yùn)行時間段的方式來輔助隔離,避免多個應(yīng)用同時運(yùn)行時出現(xiàn)資源搶占的情況。其中對于任務(wù)的執(zhí)行時間,需要通過先在測試環(huán)境中運(yùn)行采集,再通過等比例推算評估的方式獲得,防止出現(xiàn)某個MapReduce任務(wù)的實際運(yùn)行時間超出了配置時間。
而對于某些用戶認(rèn)為重要或者特殊(由用戶自主決定)的MapReduce任務(wù)的隔離可通過設(shè)置專用調(diào)度器的方式完成。為應(yīng)用設(shè)定調(diào)度隊列,并為隊列指定專屬服務(wù)器,通過將MapReduce任務(wù)指定在某臺服務(wù)器上運(yùn)行的方式達(dá)到隔離的目的。而其他普通的MapReduce應(yīng)用則無權(quán)使用該專屬服務(wù)器的資源。
3)對不同功能的在線服務(wù)數(shù)據(jù)進(jìn)行隔離,保證重點(diǎn)在線應(yīng)用的正常運(yùn)行。
需要單獨(dú)規(guī)劃HBase集群,且該集群基于一套獨(dú)立的HDFS運(yùn)行,從物理上和邏輯上和其他在線集群都進(jìn)行隔離。該HBase集群的數(shù)據(jù)來源問題可通過兩種方式解決:接口程序或者基于distcp的集群拷貝。
對于少量的數(shù)據(jù)遷移可通過接口程序?qū)崿F(xiàn),對于大量的數(shù)據(jù)遷移可通過distcp的方式進(jìn)行。后者需要先在離線應(yīng)用服務(wù)集群內(nèi)對數(shù)據(jù)進(jìn)行處理,生成HFile文件,再通過distcp將文件拷貝到在線應(yīng)用集群,再在在線應(yīng)用集群內(nèi)執(zhí)行數(shù)據(jù)導(dǎo)入到HBase的操作。在線應(yīng)用服務(wù)再基于導(dǎo)入的數(shù)據(jù)對外提供實時查詢服務(wù)。如下圖所示:
另外由于MapReduce任務(wù)在運(yùn)行時對磁盤、CPU等要求較高,當(dāng)MapReduce的Job和HBase等部署在一臺服務(wù)器運(yùn)行時,容易對HBase服務(wù)造成影響(響應(yīng)很慢,長時間等待)。所以在同一套HDFS內(nèi),在服務(wù)器比較充足的情形下,也建議對MapReduce任務(wù)的運(yùn)行和HBase服務(wù)也需要進(jìn)行隔離。將HBase服務(wù)指定在集群中的某些服務(wù)器上運(yùn)行,MapReduce任務(wù)指定在集群中的其他服務(wù)器上運(yùn)行。通過部署不同的基礎(chǔ)服務(wù)在不同的服務(wù)器上的方式來實現(xiàn)。
為了節(jié)省資源,我們提供了一種基于一套HDFS來實現(xiàn)對多套HBase支撐的實現(xiàn),不用的HBase共用一套Zookeeper,部署方式見下圖:
所有HBase集群基于同一套zookeeper實現(xiàn),每個集群包含各自的HMaster和Region Server,可對外獨(dú)立提供在線查詢服務(wù)。通過調(diào)用HBase java api實現(xiàn)HBase客戶端訪問集群內(nèi)的HBase集群。由于使用相同的HDFS存儲,為了防止相同的表存儲空間重疊,不同的HBase集群使用不同的存儲路徑。同時為了區(qū)分Zookeeper中存儲的rootdnode路徑,也需要修改配置文件。不同的HBase集群對外提供不同類型的數(shù)據(jù)查詢服務(wù)。對于同一個HBase服務(wù),可通過對列和表的所屬權(quán)配置實現(xiàn)對HBase的訪問控制。
Z銀行的實際部署如下圖所示:
大數(shù)據(jù)平臺上運(yùn)行的應(yīng)用分為在線應(yīng)用(HBase服務(wù))和離線應(yīng)用(MapReduce服務(wù))兩大類。Z銀行大數(shù)據(jù)平臺分為基礎(chǔ)集群和在線集群。
基礎(chǔ)集群用于接收外部導(dǎo)入的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行加工處理,主要通過MapReduce任務(wù)對數(shù)據(jù)進(jìn)行基礎(chǔ)加工。
在線集群是為保證重點(diǎn)在線應(yīng)用的正常運(yùn)行而單獨(dú)規(guī)劃的區(qū)域,第一期是由歷史數(shù)據(jù)平臺1個HBase集群構(gòu)成,后期再擴(kuò)展個人綜合對賬單系統(tǒng)以及反洗錢風(fēng)險管理系統(tǒng)。
基礎(chǔ)集群和在線集群相互關(guān)系說明如下:
每個集群都基于一套獨(dú)立的HDFS運(yùn)行,這樣從物理上和邏輯上與其他集群都進(jìn)行隔離。在線集群的數(shù)據(jù)都來源于基礎(chǔ)集群,依靠本地萬兆網(wǎng)實現(xiàn)高效的傳輸。在線應(yīng)用服務(wù)基于導(dǎo)入的數(shù)據(jù)對外提供實時查詢服務(wù)。
基礎(chǔ)集群以及歷史數(shù)據(jù)平臺集群各自基于一套Zookeeper實現(xiàn),每個集群包含各自的Master和RegionServer。
整個集群中部署一套CBDP-Manager用于實現(xiàn)集群的管理,并且該Manager單獨(dú)使用一套單機(jī)MariaDB實現(xiàn)管理數(shù)據(jù)、告警數(shù)據(jù)、性能數(shù)據(jù)的存儲。
整套大數(shù)據(jù)平臺在部署后一直平穩(wěn)運(yùn)行,效果得到客戶的一致稱贊,并成為客戶的集團(tuán)內(nèi)的典型案例。在后續(xù)的擴(kuò)容中,也是非常的方便簡潔,在短時間內(nèi)即完成了擴(kuò)容升級。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學(xué)領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點(diǎn)數(shù)據(jù)的科學(xué)計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點(diǎn)數(shù)據(jù)時的科學(xué)計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導(dǎo)向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10CDA 數(shù)據(jù)分析師:商業(yè)數(shù)據(jù)分析實踐的落地者與價值創(chuàng)造者 商業(yè)數(shù)據(jù)分析的價值,最終要在 “實踐” 中體現(xiàn) —— 脫離業(yè)務(wù)場景的分 ...
2025-09-10機(jī)器學(xué)習(xí)解決實際問題的核心關(guān)鍵:從業(yè)務(wù)到落地的全流程解析 在人工智能技術(shù)落地的浪潮中,機(jī)器學(xué)習(xí)作為核心工具,已廣泛應(yīng)用于 ...
2025-09-09