近兩年,大數(shù)據(jù)分布式架構(gòu)成為金融行業(yè)關(guān)鍵詞匯,圍繞分布式架構(gòu)分布式計算、分布式存儲、分布式網(wǎng)絡(luò)成為信息科技的主流。金融各個子行業(yè)包括銀行、保險、證券、信托行業(yè),紛紛采取分布式架構(gòu)和相關(guān)技術(shù)建設(shè)新系統(tǒng)或重構(gòu)原有系統(tǒng),利用分布式架構(gòu)的高可擴(kuò)展性、高處理效率、強(qiáng)容錯能力特點,來提升信息系統(tǒng)的靈活性,降低成本,保障供應(yīng)安全。
中金智匯的大數(shù)據(jù)架構(gòu)經(jīng)歷了三個主要階段:
a. 使用Gearman基于MapReduce思想實現(xiàn)自研的分布式處理架構(gòu)。
b. 引入Hadoop解決自研分布式處理架構(gòu)網(wǎng)絡(luò)IO問題。
c. 引入Spark解決Hadoop小規(guī)模數(shù)據(jù)集處理性能不足,以及磁盤IO等問題。
1.1 Gearman
架構(gòu)
Gearman驅(qū)動的應(yīng)用程序由三部分組成:Client(客戶端),Worker(工作者)和JobServer(作業(yè)服務(wù)器)。
· Client負(fù)責(zé)創(chuàng)建要運行的作業(yè)并將其發(fā)送到JobServer。
· JobServer將找到一個合適的工作人員,可以運行該作業(yè)并轉(zhuǎn)發(fā)給Worker。
· Worker執(zhí)行Client的工作,并通過JobServer向Client發(fā)送響應(yīng)。
Gearman提供應(yīng)用程序調(diào)用的Client和Worker API,以與Gearman JobServer(也稱為gearmand)進(jìn)行通信,因此無需處理網(wǎng)絡(luò)或作業(yè)映射。在內(nèi)部,Gearman Client和Worker API使用TCP協(xié)議與JobServer通信。
優(yōu)點
Gearman實現(xiàn)了基本的MapReduce思想,Client將一個大任務(wù)拆分成多個小任務(wù)后,發(fā)送給多個Worker并行處理,將處理結(jié)果返回Client。
缺點
Gearman在處理大量數(shù)據(jù)的場景下,由于JobServer不清楚要處理的數(shù)據(jù)存儲到哪個對應(yīng)的Worker上,所以導(dǎo)致Worker接到任務(wù)時首先需要去公共存儲中獲取數(shù)據(jù),導(dǎo)致大量的網(wǎng)絡(luò)IO,從而導(dǎo)致性能不足。
1.2 Hadoop
架構(gòu)
HDFS集群由NameNode管理文件系統(tǒng)命名空間的主服務(wù)器和管理客戶端對文件的訪問組成。此外,還有許多DataNode,通常是群集中每個節(jié)點一個,用于管理連接到它們運行的節(jié)點的存儲。HDFS公開文件系統(tǒng)命名空間,并允許用戶數(shù)據(jù)存儲在文件中。在內(nèi)部,文件被分成一個或多個塊,這些塊存儲在一組DataNode中。
· NameNode執(zhí)行文件系統(tǒng)命名空間操作,如打開,關(guān)閉和重命名文件和目錄。它還確定了塊到DataNode的映射。
· DataNode負(fù)責(zé)提供來自文件系統(tǒng)客戶端的讀寫請求。 DataNode還根據(jù)NameNode的指令執(zhí)行塊創(chuàng)建,刪除和復(fù)制。
Hadoop MapReduce作業(yè)通常將輸入數(shù)據(jù)集拆分為獨立的塊,這些塊由Map任務(wù)以完全并行的方式處理。Hadoop MapReduce對Map的輸出進(jìn)行排序,然后輸入到Reduce任務(wù)。通常,作業(yè)的輸入和輸出都存儲在文件系統(tǒng)中。Hadoop MapReduce負(fù)責(zé)調(diào)度任務(wù),監(jiān)視它們并重新執(zhí)行失敗的任務(wù)。
優(yōu)點
Hadoop已經(jīng)完全實現(xiàn)了MapReduce的分布式處理思想,同時在其基礎(chǔ)上完成失敗重試等功能。同時在Hadoop的架構(gòu)設(shè)計中,由于NameNode已經(jīng)記錄了每個數(shù)據(jù)塊具體存在哪些個DataNode上,所以在執(zhí)行Map任務(wù)的分發(fā)時,會根據(jù)NameNode的存儲記錄表,將需要處理的任務(wù)直接分發(fā)到有該任務(wù)需要的數(shù)據(jù)的DataNode上進(jìn)行處理,解決了之前介紹Gearman的缺點,從而導(dǎo)致DataNode處理任務(wù)時,不需要去其他服務(wù)器獲取數(shù)據(jù),解決了網(wǎng)絡(luò)IO瓶頸的問題,提高了任務(wù)處理效率。
缺點
由于Hadoop設(shè)計時算子單一(只有Map和Reduce)導(dǎo)致如果要完成一個多步驟任務(wù)時,每一個步驟都需要寫一個Map和Reduce,同時每個Map和Reduce的執(zhí)行過程代表數(shù)據(jù)至少會落地一次,所以導(dǎo)致執(zhí)行整個任務(wù)中會出現(xiàn)大量的磁盤IO,從而影響了處理效率。
1.3 Spark
架構(gòu)
· Spark中的Driver即運行程序的主函數(shù)并創(chuàng)建SparkContext,創(chuàng)建SparkContext的目的是為了準(zhǔn)備Spark應(yīng)用程序的運行環(huán)境,在Spark中有SparkContext負(fù)責(zé)進(jìn)行資源申請、任務(wù)的分配和監(jiān)控等,當(dāng)Executor部分運行完畢后,Driver同時負(fù)責(zé)將SparkContext關(guān)閉,通常用SparkContext代表Driver。
· Executor是某個Application運行在工作節(jié)點上的一個進(jìn)程, 該進(jìn)程負(fù)責(zé)運行計算任務(wù),并且負(fù)責(zé)將數(shù)據(jù)存到內(nèi)存或磁盤上,每個程序都有各自獨立的一批Executor,在Spark on Yarn模式下,其進(jìn)程名稱為CoarseGrainedExecutor Backend。一個CoarseGrainedExecutor Backend有且僅有一個Executor對象, 負(fù)責(zé)將任務(wù)包裝成TaskRunner,并從線程池中抽取一個空閑線程運行Task, 這個每一個CoarseGrainedExecutor Backend能并行運行Task的數(shù)量取決與分配給它的Cpu個數(shù)。
優(yōu)點
和Hadoop MapReduce相比Spark通過使用內(nèi)容代替磁盤作為處理過程中間數(shù)據(jù)的存儲,從而減少了在磁盤IO上的開銷,解決了Hadoop的性能問題。同時設(shè)計了彈性分布式數(shù)據(jù)集(RDD)的數(shù)據(jù)結(jié)構(gòu)作為數(shù)據(jù)處理的基礎(chǔ)單元,配合有向無環(huán)圖(DAG)、Pipline等技術(shù)減少了運算步驟,提高了執(zhí)行效率。
1.4Hadoop+Spark
原理
由于Spark最出色的就是計算框架,其資源調(diào)度框架(Standalone模式)對復(fù)雜場景的資源調(diào)度略顯不足。所以和Hadoop的資源調(diào)度框架(Yarn)和底層存儲框架(HDSF)組合使用,這樣做既可以繼承了Spark計算框架的全部優(yōu)勢,也可以解決了Hadoop MapReduce的問題。
廣發(fā)銀行信用卡中心,擁有6000余坐席,約4.2億 通電話/年,每天3.6萬小時 的語音量,最初領(lǐng)導(dǎo)層根據(jù)企業(yè)發(fā)展戰(zhàn)略,預(yù)見了未來企業(yè)自身和應(yīng)用技術(shù)的發(fā)展趨勢,早在2014年便與原中金數(shù)據(jù)大數(shù)據(jù)事業(yè)部現(xiàn)中金智匯簽訂了合作協(xié)議,運用分布式大數(shù)據(jù)底層架構(gòu)開展上層業(yè)務(wù)。
中金智匯利用分布式大數(shù)據(jù)技術(shù)架構(gòu),將原來無法方便處理、 非結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行解析、分析和挖掘 。將原來每天必須要人工抽樣的低效模式,變成每天使用機(jī)器全量的高效模式。使得卡中心從原來一天處理37件,到現(xiàn)在一天可以處理18000件,創(chuàng)造了500%的顛覆性提升 。
中金智匯通過四年來語音庫數(shù)據(jù)的積累,結(jié)合分布式大數(shù)據(jù)技術(shù)架構(gòu)、產(chǎn)品快速創(chuàng)新能力和深入行業(yè)的應(yīng)用經(jīng)驗。不斷的對積累數(shù)據(jù)進(jìn)行分析和挖掘,去尋求和發(fā)現(xiàn)海量數(shù)據(jù)背后的價值,從而衍生了多種適合卡中心的分析和挖掘的數(shù)據(jù)模型。使得卡中心在客戶投訴率下降10%-20%,客戶滿意度上升10%-20%,員工技能提升5%-15%等等的業(yè)務(wù)價值增長。為其改善了風(fēng)險防控之外的服務(wù)流程優(yōu)化 20 余項,陸續(xù)開拓了營銷效果監(jiān)控及信審合規(guī)等業(yè)務(wù)范圍,為廣發(fā)銀行在智能營銷、信用卡分期方面帶來極大營收。
憑借技術(shù)的先進(jìn)性、產(chǎn)品的創(chuàng)新性、方案的有效性,中金智匯積累了金融、政府、互聯(lián)網(wǎng)等多個行業(yè)大中型客戶的成功應(yīng)用案例,并得到了市場的廣泛認(rèn)同,陸續(xù)服務(wù)包括交通銀行、大地保險、同程旅游、中國一汽等在內(nèi)的數(shù)十家大中型企業(yè)客戶,積累了跨銀行、保險、商旅、車企、物流、BPO等多個行業(yè)與領(lǐng)域的客戶案例,并與中科院聲學(xué)所、北京郵電大學(xué)、騰訊、第四范式等資深科研機(jī)構(gòu)及領(lǐng)軍行業(yè)企業(yè)建立了廣泛的合作關(guān)系。
大數(shù)據(jù)的未來就是人工智能,而人工智能需要依靠底層分布式大數(shù)據(jù)架構(gòu)的支撐得以實現(xiàn)。中金智匯利用底層分布式大數(shù)據(jù)架構(gòu)結(jié)合語音識別、NLP/NLU、深度學(xué)習(xí)等技術(shù)在聯(lián)絡(luò)中心數(shù)據(jù)分析、實時坐席助手 等場景均實現(xiàn)了可用于生產(chǎn)的智能應(yīng)用產(chǎn)品。當(dāng)然,這還遠(yuǎn)遠(yuǎn)不夠……
“這是一個最好的時代”!在未來,中金智匯會基于大數(shù)據(jù)架構(gòu)體系及完備的應(yīng)用場景結(jié)合產(chǎn)品快速創(chuàng)新能力,為追求高效客戶經(jīng)營能力的企業(yè),提供領(lǐng)先、專業(yè)、可靠的智能化應(yīng)用產(chǎn)品和服務(wù),而持續(xù)努力著!