齊超 崔然



摘 ?要: 隨著互聯網時代的到來,互聯網數據的產生和收集數量呈爆炸式發展。使用金融機構大數據抓取軟件系統處理和存儲相關數據成為許多商業機構和研究機構的常態化選擇,金融機構大數據抓取軟件系統可以簡化使用者對于信息傳輸和信息計算的具體操作,便于提高使用者的使用效率和準確率。本文研究的金融機構大數據抓取軟件系統通過Python和Java語言完成,主要包括:金融機構大數據抓取軟件系統分析模塊、金融機構大數據抓取軟件系統優化模塊、金融機構大數據抓取軟件系統預測模塊。在研究的過程當中本文采用了遞歸隨機搜索算法、Java圖形界面、Hadoop平臺進行設計研究。經過測試,在選用服務器為Intel Atom D510時,金融機構大數據抓取軟件系統優化模塊在Hadoop集群上開展優化,系統任務執行時間變短,比原來的數據時間縮短了5%以上,優化有效。
關鍵詞: 金融機構大數據;大數據軟件系統;Hadoop平臺
中圖分類號: TP391. 77 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.06.037
本文著錄格式:齊超,崔然. 于遞歸隨機搜索算法的Hadoop平臺大數據軟件系統研究[J]. 軟件,2020,41(06):177184
【Abstract】: With the advent of the Internet era, the generation and collection of Internet data have exploded. Using the big data capture software system of financial institutions to process and store relevant data has become a regular choice for many commercial and research institutions. The big data capture software system of financial institutions can simplify the specific operation of users on information transmission and information calculation, and facilitate the use efficiency and accuracy of users. The big data capture software system of financial institution is completed by Python and Java language, including: analysis module of big data capture software of financial institution and big data capture software of financial institution ?System optimization module, financial institutions big data capture software system prediction module. In the process of research, this paper adopts recursive random search algorithm, Java graphical interface, Hadoop platform to design research. After testing, when the server is selected as Intel Atom D510, the big data grab software system optimization module of financial institutions carries out optimization on Hadoop cluster, and the execution time of the system task becomes shorter than that of the original data, and the optimization is effective.
【Key words】: Financial institution big data; Big data software system; Hadoop platform
0 ?引言
隨著互聯網時代的到來,互聯網數據的產生和收集數量呈爆炸式發展。使用金融機構大數據抓取軟件系統處理和存儲相關數據成為許多商業機構和研究機構的常態化選擇,金融機構大數據抓取軟件系統可以簡化使用者對于信息傳輸和信息計算的具體操作,便于提高使用者的使用效率和準確率。但是,金融機構大數據抓取軟件系統雖然為使用者帶來了較大的便利,卻也限制了使用者對金融機構大數據抓取軟件系統底層運行方式的了解和熟悉,這不利于使用者發揮金融機構大數據抓取軟件系統全部性能,不利于使用者對金融機構大數據抓取軟件系統進行升級和優化。本文旨在通過開發優化金融機構大數據抓取軟件系統的自動解析工具,幫助使用者自動對金融機構大數據抓取軟件系統進行合理優化,發揮金融機構大數據抓取軟件系統的全部功能。
1 ?相關工作
1.1 ?分布式計算存儲系統
Hadoop是Apache之下的產品。Hadoop經過長時間的發展,目前已擁有多個分項。它的主要組成部分是分布式計算系統和Hadoop(DHFS)[1]。同時,它還擁有Common、Avro、Chukwa、Hive、Hbase等分項,這些分項可以幫助Hadoop完成更多不同類型的數據收集和處理任務,是Hadoop功能的進化和衍生,為Hadoop擴充功能,提升適用范圍提供了幫助[2]。
(1)高可靠性。系統擁有多個數據支持副本,可以保證在某個節點出現問題時仍可以切換到其他副本進行信息數據處理[3]。
(2)高擴展性。該系統通過集簇進行數據的收集和計算。集簇可以隨時進行擴展,每個集簇的擴展能力很強,可以同時的向無數節點進行擴展[4]。
(3)高效性。系統數據可以隨時隨地地移動,同時可以確保節點之間的平衡性。也因此,系統在處理數據時方便、快捷。
(4)高容錯性。Hadoop可以隨時對副本進行存儲,對于沒有辦法繼續進行的任務,系統會重新安排副本進行計算[5]。
1.2 ?Hadoop分布式計算系統
Hadoop分布式計算系統模型可以進行數據編程和計算。它的語言環境包括(Java, Python, C++等),可以保障數量龐大的數據分析任務[6]。分布式計算系統是通過各自為戰的方式進行相關演算。它是把整個數據信息進行拆分,然后分別下發到各個分節點中進行運算,再將運算結果進行匯總,最后得到總體結果的運算過程[7]。也可以說,分布式計算系統是分解數據,計算,匯總數據,得到結果[8]。
1.3 ?Java性能跟蹤工具
B Trace可以對Java平臺的數據進行動態跟蹤,是一款較為有效的數據跟蹤工具[9]。B Trace對于查找代碼有著較為良好的應用,可以幫助使用者進行錯誤代碼的追查,對未知流量的監測。B Trace監測的情況一般具有偶然性和特殊性,很難重復發生[10]。
B Trace通過(Hotswap)對Java程序中的相關代碼進行跟蹤,并通過指令執行進行替換[11]。它的語言是Java,具有較強的普遍性,應用起來也較為簡單。它對Java平臺代碼的監控和追查可以在不改變當前程序的前提下進行,這對于B Trace的具體實施難度無疑降低了很多[12]。目標JVM是一個動態插入B Trace的代理。B Trace對代理發出指令,代理對B Trace的指令進行反饋[13]。
1.4 ?遞歸隨機搜索算法
遞歸隨機搜索由隨機搜索算法中轉變發展得出。遞歸隨機搜索算法相較于傳統的算法在效率方面有著顯著的優勢。傳統的算法在計算少量樣本時可以快速的得出最優解范圍,而如果抽樣變多,樣本空間變小,傳統算法是計算速度就會明顯變慢,同時增加得到最優解的資源消耗[14]。而遞歸隨機搜索算法適合于大型數據的抽樣計算,可以保持較為穩定的速度,同時計算效率相較于傳統計算方法要快很多。由于遞歸隨機搜索的種種優勢,被普遍的應用到諸多領域的運算當中[15]。
2 ?分析設計
上一章對系統程序研發具體技術進行了詳細闡述。本章的重點是金融機構大數據抓取軟件系統的相關內容進行具體的闡述,并對其基本設計思路進行解析。
2.1 ?需求分析
Hadoop存在著使用者對底層數據的了解和應用缺乏知識和概念,對于優化Hadoop,提升Hadoop最大作用存在較大的困難[16]。為了解決這一困難,需要相應的金融機構大數據抓取軟件系統抓取軟件幫助。金融機構大數據抓取軟件系統抓取軟件可以幫助使用者在不了解金融機構大數據抓取軟件系統底層運行細節的前提下對金融機構大數據抓取軟件系統進行優化調節,提升金融機構大數據抓取軟件系統運行效率。這有利于降低金融機構大數據抓取軟件系統使用者要求,降低使用者使用成本和時間成本[17]。
2.2 ?設計思路
對Hadoop的影響因素進行解析,有助于對Hadoop進行合理優化。影響Hadoop的主要因素有以下方面:(1)分布式程序。(2)相關輸入數據。(3)擁有的相關資源。(4)配置參數。這四方面是影響Hadoop的主要因素。(Perf=F(p,d,r,c)。這里面p表示Hadoop分布式程序,d表示相關輸入數據,r表示擁有的相關資源,c表示配置參數。金融機構大數據抓取軟件系統性能的優化的最直觀表現是金融機構大數據抓取軟件系統在處理數據時所使用時間的長短,如果進行優化后的金融機構大數據抓取軟件系統在進行數據處理過程中比原有的程序所用的時間短,那么可以說新的優化是有效的[18]。
2.3 ?工作原理
大數據性能分析工具是利用對系統配置參數的調整,工作原理系統運行速度和運行效果的提升。它需要對節點的數據信息進行隨機抓取,了解各個節點相關信息,并對這些有效信息進行加工和分析,以保證對配置參數的調整依據和預測依據[19]。其運行原理是:第一,使用者在Hadoop平臺上進行腳本安裝,發送編輯好的B Trace程序到Slave目錄下[20]。第二,運行腳本,對相關數據進行隨機抓取。在抓取數據完成后,將抓取到的數據發送給Master節點。使用者可以根據自身需求選擇合適的程序和功能,并對需要設置的參數進行有效預測和開啟優化功能。第三,用戶通過預測結果給出的參數配置信息進行參數配置,工作原理系統的優化目標[21]。如圖1。
2.4 ?大數據抓取軟件系統系統架構
針對金融機構大數據抓取軟件系統的設計思路,本文對金融機構大數據抓取軟件系統進行了系統架構繪圖,如圖2所示,金融機構大數據抓取軟件系統主要由三部分組成,它們分別是:金融機構大數據抓取軟件系統分析模塊、金融機構大數據抓取軟件系統預測模塊、金融機構大數據抓取軟件系統優化模塊[22]。
3 ?算法過程
3.1 ?執行分析模塊設計
根據Hadoop的運行機制可以知道,Hadoop平臺的運行機制主要包括Map階段和Reduce階段。Map階段是通過數據讀取、映射、集合、重整、合并工作原理的,具體流程如圖3所示。
各個環節有以下功能:
(1)洗牌(Shuffle):對兩個階段的數據進行轉化,使原數據符合Reduce階段數據需求。
(2)合并(Merge):將原數據進行整合。
(3)化簡(Reduce):在Reduce階段運行相關程序對原數據進行加工,得到簡化數據。
(4)寫數據(Write):將產生的新數據寫入系統。
在Hadoop平臺系統下,大數據系統軟件分析模塊通過使用profile.py腳本進行啟動。待模塊正式運行后,通過agent將B Trace Job大數據系統軟件分析類的on Job Client 提交工作內方法和org.apache. hadoop.mapred.Job Client類的提交工作內方法連接在一起。當Hadoop使用提交工作內時同時開始運作,并記錄運轉時間。而使用org.apache.hadoop.分布式計算系統.Job與wait For Completion方法綁定,確定運行結束時間[23]。B Trace Task And Mem Profile可以對各階段數據進行有效收集。Hadoop平臺的數據參數配置通過XML Cluster Parser工作原理[42]。另外,XML Profile Parser將收集到的數據轉化為XML文件進行輸出。XML文件上傳至分布式的過程是利用Up datexml中的Up datexml工作原理的如圖4。
3.2 ?預測模塊設計
企業要建立完善的大數據預測的數學模式,就要對Hadoop平臺系統任務各個環節參數配置及資源損耗情況進行分別計算,并最終進行整體匯總,得到總體計算模型,這樣的結果更加客觀。如圖5所示,是對map階段的緩存(io.sort.mb參數)進行調整后,與之相對于的真實時間和時間和與測試時間情況圖。
通過圖5得出,預測時間和實際時間之間仍舊不是完全相同的,這是因為抓取數據工具BTrac相對的系統資源,影響了實際操作的結果。但是抓取數據工具BTrac所占用的系統資源非常小,對于最終結果的影響十分有限,在計算誤差允許范圍內[48]。
在通過金融機構大數據抓取軟件系統預測模塊對Hadoop平臺進行具體測算時,并不能完全掌握Hadoop平臺的全部數據,如圖6,Hadoop平臺系統數據的鍵值對等信息就無法進行觀測。觀測得出結果后,系統會自動生成相關文件記錄,文件生成在第一步設置的路徑中。使用者可以使用軟件對該文件進行讀取,得到直觀的模擬演算信息。
3.3 ?優化模塊設計
遞歸隨機搜索算法需要擁有明確的樣本區間,如果樣本區間過大就會對系統資源造成不必要的損耗。這里可以通過配置參數的特性進行遞歸隨機搜索算法樣本區間的界定。如,io.sort.record.percent可以通過界定百分比區間進行區間劃分;io.sort.mb的取值范圍是服務器緩存大小到1,可以以此進行區間界定。金融機構大數據抓取軟件系統優化模塊的流程圖如圖,7所示。
金融機構大數據抓取軟件系統優化模塊的類圖如圖8所示。
金融機構大數據抓取軟件系統優化模塊的入口是Driver類的Job優化工具。通過使用Job工具優化類達到讀取前配置參數和讀取CPU相關指標的目的。
智能作業優化:類對系統相關配置參數進行調取,利用參數特征,使用遞歸隨即搜索算法確定適配區間。通過使用Recur sive Random Seash類對適配區間進行隨機數據抓取,利用金融機構大數據抓取軟件系統預測模塊對抓取數據進行相關預測,最小值為系統任務執行時間最短值,即最優配置參數。
利用Export XML類的Export XML,達到將數據輸出形成XML文件的目的。
4 ?系統性能分析及測試
4.1 ?測試環境及軟件平臺
測試環境如表1所示。
4.2 ?系統性能分析
本文以金融機構大數據抓取軟件系統預測模塊的特性作為研究和設計測試用例的出發點,通過對參數配置、數據輸入大小和服務器個數三個方面進行具體測算,得出相應測算結果。將測算結果相互比較得出較優值。經過測試可以得出以下結果:金融機構大數據抓取軟件系統執行模塊相關輸入數據量調整后,平臺任務輸入數據量調整后實際執行時間和輸入數據量調整后虛擬執行時間的差別在運行誤差區間內,差別很小,預測結果可以作為依據正常使用。
表3為第三個測試用例。旨在對金融機構大數據抓取軟件系統預測模塊Hadoop集群服務器個數調整后任務執行時間的虛擬結果測算。利用平臺任務Hadoop集群服務器個數調整實際執行時間和Hadoop集群服務器個數調整后虛擬執行時間的比較判斷預測結果的準確度。
4.3 ?遞歸隨機搜索算法在銀行大數據系統中的導入應用
(1)導入數據。通過應用遞歸隨機算法原理導入,得出的銀行信貸數據一共有256條數據,每條數據包括5個屬性,分別是月收入、存款總額、客戶信用、客戶貢獻度、是否貸款。其中客戶信用和客戶貢獻度字段有兩種取值:“一般”和“高”;是否貸款字段也有兩種取值,分別用“Y”表示同意貸款,“N”表示不同意貸款。數據導入后如圖9所示。
(2)建立數據挖掘模型數據導入后,根據對數據的分析,我們得知下面的工作就是通過建立遞歸隨機算法模型對以上數據進行分類,將“是否貸款”字段定義為輸出屬性,其它字段為輸入屬性,所得數據流圖如圖10所示。
我們通過“是否貸款”節點可以查看“是否貸款”字段中值的分布比例,如圖11所示。
執行數據流圖中的遞歸隨機算法節點,得到一些決策規則,如圖12所示。
通過對上圖的分析,我們可以將這些規則解釋為:
(1)對月收入低于6000元的客戶,不提供貸款。
(2)對月收入高于6000元,存款總額低于100000元的客戶不提供貸款。
(3)對月收入高于6000元,存款總額高于100000元的但客戶貢獻度一般的客戶不提供貸款。
(4)對月收入高于6000元,存款總額高于100000元的但客戶貢獻度高的客戶提供貸款。
(5)對月收入高于6000元,并且客戶信用高的客戶提供貸款。
對這些規則進行分析,管理人員通過以上規則可以將信貸客戶分類,以后審批貸款時可以將客戶數據和已分類的數據進行比較,就可以更好、更快的進行決策判斷。
4.4 ?測試結果
最后生成的數據報表如下表4所示。
通過測試對比可以看出,優化后的數據抓取時間比原來的時間總體減少了5秒以上,優化有效。如圖13。
后臺作業PrepareCleanup, kinit對系統做了初始化設置,然后分別對各張臨時表的歷史數據進行清理,共耗時41秒;LoadTradedata節為數據裝載總控作業,負責導入線上線下的交易流水數據,共耗時27秒;fetchCCBData節作業負責獲取增量數據更新,若無更新則直接進行下階段處理,此處耗時28秒;etl_stage節為ETL處理流程,對基礎數據進行清洗、轉換等預處理,耗時4分36秒;loadStaticData節為靜態數據裝載作業,運行耗時26秒;analyticsMonthly節為月報計算作業,調用Hive進行數據計算,共耗時11分30秒;genReport節為報表結果匯總作業,運行耗時2分14秒。經過測試后,在選用服務器為Intel Atom D510時,銀行大數據抓取軟件系統優化模塊在Hadoop集群上開展優化,系統任務執行時間變短,比原來的數據時間縮短了5%以上,優化有效。運行結果如圖14。
5 ?結論
大數據系統軟件可以較好的提升企業大數據的分析效率,對企業大數據的應用具有重要的意義。不僅利于降低大數據系統使用者要求,降低使用者使用成本和時間成本,還對于大數據系統自身提升系統運算能力、儲存優化、尋找系統優化途徑等方面也有著顯著的作用。本文的創新之處在于使用了遞歸算法進行設計,遞歸算法適合于大型數據的抽樣計算,可以保持較為穩定的速度,同時計算效率相較于傳統計算方法要快很多。該算法在大數據平臺中應用還較少,所以是一個顯著特色。
參考文獻
[1] Michael Gerndt, Bernd Mohr, Jesper Larsson Tr?ff. A test suite for parallel performance analysis tools[J]. Concurrency and Computation: Practice and Experience, 2017, 19(11).
[2] John Mellor-Crummey, Robert J. Fowler, Gabriel Marin, Nathan Tallent. HPCVIEW: A Tool for Top-down Analysis of Node Performance[J]. The Journal of Supercomputing, 2015, 23(1).
[3] Shajulin Benedict. Performance issues and performance analysis tools for HPC cloud applications: a survey[J]. Computing, 2013, 95(2): 42-25.
[4] 袁芬, 徐從富. 基于機會協作的農業物聯網大數據處理系統設計[J]. 計算機應用, 2014, 34(07): 2136-2139.
[5] 張鋼, 謝曉珊, 黃英, 王春茹. 面向大數據流的半監督在線多核學習算法[J]. 智能系統學報, 2014, 9(03): 355-363.
[6] 程學旗, 靳小龍, 王元卓, 郭嘉豐, 張鐵贏, 李國杰.金融機構大數據抓取軟件系統和分析技術綜述[J]. 軟件學報, 2014, 25(09): 1889-1908.
[7] 張濱, 樂嘉錦. 基于列存儲的MapReduce并行連接算法[J]. 計算機工程, 2014, 40(08): 70-75+85.
[8] 方巍, 鄭玉, 徐江. 大數據: 概念、技術及應用研究綜述[J]. 南京信息工程大學學報(自然科學版), 2014, 6(05): 405-419.
[9] 宮宇新, 何滿潮, 汪政紅, 尹雨婷. 巖石破壞聲發射時頻分析算法與瞬時頻率前兆研究[J]. 巖石力學與工程學報, 2013, 32(04): 785-799.
[10] 覃雄派, 王會舉, 李芙蓉, 李翠平, 陳紅, 周烜, 杜小勇, 王珊. 數據管理技術的新格局[J]. 軟件學報, 2013, 24(02): 175-197.
[11] 李從宏.基于遞歸調用技術的關鍵字搜索軟件設計[J].電腦編程技巧與維護, 2018(12): 60-62.
[12] Sato Wataru, Kochiyama Takanori, Uono Shota, Usui Naotaka, Kondo Akihiko, Matsuda Kazumi, Usui Keiko, Toichi Motomi, Inoue Yushi. Analyzing Neural Activity and Connectivity Using Intracranial EEG Data with SPM Software[J]. Journal of visualized experiments : JoVE, 2018(140).
[13] Polasky Daniel A, Dixit Sugyan M, Fantin Sarah M, Ruotolo Brandon T. CIUSuite 2: Next-Generation Software for the Analysis of Gas-Phase Protein Unfolding Data[J]. Analytical chemistry, 2019.
[14] Cypress Brigitte S. Data Analysis Software in Qualitative Research: Preconceptions, Expectations, and Adoption[J]. Dimensions of critical care nursing : DCCN, 2019, 38(4).
[15] Grüning Bj?rn A, Lampa Samuel, Vaudel Marc, Blankenberg Daniel. Software engineering for scientific big data analysis[J]. GigaScience, 2019, 8(5).
[16] Hershman Ronen, Henik Avishai, Cohen Noga. CHAP: Open- source software for processing and analyzing pupillometry data[J]. Behavior research methods, 2019, 51(3).
[17] Jair Kamwing, McCann Chase D, Reed Harrison, Castel Amanda D, Pérez-Losada Marcos, Wilbourn Brittany, Greenberg Alan E, Jordan Jeanne A. Validation of publicly- available software used in analyzing NGS data for HIV-1 drug resistance mutations and transmission networks in a Washington, DC, Cohort[J]. PloS one, 2019, 14(4).
[18] Jones-Diette Julie S, Dean Rachel S, Cobb Malcolm, Brennan Marnie L. Validation of text-mining and content analysis techniques using data collected from veterinary practice management software systems in the UK[J]. Preventive veterinary medicine, 2019, 167.
[19] Buckle Adam, Gilbert Nick, Marenduzzo Davide, Brackley Chris A. capC-MAP: software for analysis of Capture-C data[J]. Bioinformatics (Oxford, England), 2019.
[20] Asif Muhammad Khan, Nambiar Phrabhakaran, Ibrahim Norliza, Al-Amery Samah M, Khan Iqra Muhammad. Three- dimensional image analysis of developing mandibular third molars apices for age estimation: A study using CBCT data enhanced with Mimics & 3-Matics software[J]. Legal medicine (Tokyo, Japan), 2019, 39.
[21] ]Schrode Benedikt, Pachmajer Stefan, Dohr Michael, R?thel Christian, Domke Jari, Fritz Torsten, Resel Roland, Werzer Oliver. GIDVis:a comprehensive software tool for geometry- independent grazing-incidence X-ray diffraction data analysis and pole-figure calculations[J]. Journal of applied crystallography, 2019, 52(Pt 3).
[22] S. Jovanovic, D. Jovanovic, G. Bratic, M. A. Brovelli. ANALYSIS OF FREE ROAD DATA IN TANZANIA, UGANDA AND KENYA USING FREE AND OPEN SOURCE SOFTWARE[J]. ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2019, XLII-2/W13.
[23] Brigitte S. Cypress. Data Analysis Software in Qualitative Research: Preconceptions, Expectations, and Adoption[J]. Dimensions of Critical Care Nursing, 2019, 38(4).