王麗莉
?
基于Hadoop的云計算平臺的研究與設(shè)計
王麗莉
天安財產(chǎn)保險股份有限公司,上海 200120
隨著保險保險行業(yè)對信息化的要求越來越高,幫助保險行業(yè)應(yīng)對互聯(lián)網(wǎng)環(huán)境下的大渠道、大保單、大數(shù)據(jù)的挑戰(zhàn),支持大數(shù)據(jù)分析和介入,拓寬數(shù)據(jù)挖掘的廣度和深度,利用云計算平臺管理和存儲這些數(shù)據(jù)顯得極為重要。基于此,提出了一種基于分布式計算技術(shù)進行管理和存儲海量數(shù)據(jù)的方法,設(shè)計開發(fā)基于Hadoop的云計算平臺。
云計算;保險行業(yè);Hadoop;分布式計算
采用云的形式,將使保險公司變得更為靈活、快速。傳統(tǒng)模式下,保險公司上線新產(chǎn)品需要3~6個月的時間,采用云平臺后將會縮短到1~2周。對應(yīng)的開發(fā)成本、部署成本將會從百萬級十萬級降低至數(shù)萬元。快速的產(chǎn)品部署意味著極低的試錯成本。面對突發(fā)的市場需求,保險公司可快速推出產(chǎn)品,同時根據(jù)市場反饋不斷調(diào)整策略。這種小步快跑、快速迭代的方式,讓保險公司能夠就像互聯(lián)網(wǎng)公司一樣迅速響應(yīng)市場需求,推出新產(chǎn)品。幫助保險公司低成本、低風險、快速利用云計算優(yōu)勢拓展優(yōu)化傳統(tǒng)業(yè)務(wù)和服務(wù),同時使保險公司更容易的利用云平臺生態(tài)圈為保險提供流量,渠道和大數(shù)據(jù)服務(wù)。此外,云平臺還將輸出大數(shù)據(jù)挖掘分析能力,改變保險公司只能依托自有數(shù)據(jù)對產(chǎn)品定價的模式,讓保險公司更了解客戶,做到人群細分和差異化定價。
1.1 云計算概述
云計算是一種超級計算模式,通過把計算任務(wù)分配給大量計算機構(gòu)成的資源池上,使應(yīng)用系統(tǒng)根據(jù)需求獲得相應(yīng)的計算能力、存儲空間和軟件服務(wù),通過網(wǎng)絡(luò)訪問可配置的計算資源(例如網(wǎng)絡(luò)、服務(wù)器、存儲、應(yīng)用和服務(wù)),這些資源可實現(xiàn)快速提供與釋放,并且只需極少的管理成本或服務(wù)供應(yīng)商的干預[1-2]。
云計算模式具有“按需自助服務(wù)、寬廣網(wǎng)絡(luò)訪問、資源池化、快速伸縮、可計量服務(wù)”5項基本特征和“私有云、社區(qū)云、公有云、混合云”4種部署方式,提供“SaaS、PaaS、IaaS”3大服務(wù)類型。
云計算體系結(jié)構(gòu)自底而上為物理資源層、資源池層、管理中間件層和SOA(Service Oriented Architecture)構(gòu)建層[3]。物理資源層由計算機、存儲器、網(wǎng)絡(luò)設(shè)施、數(shù)據(jù)庫和軟件等組成。資源池層將大量相同類型的資源構(gòu)成同構(gòu)或接近同構(gòu)的資源池。管理中間件層負責云計算的資源管理,并對眾多應(yīng)用任務(wù)進行調(diào)度,使資源能夠高效、安全地為應(yīng)用提供服務(wù)。SOA構(gòu)建層將云計算能力封裝成標準的Web Service服務(wù),并納入到SOA體系進行管理和使用。
云計算基本架構(gòu)由管理和服務(wù)兩大部分組成[4]。
1.2 Hadoop概述
Hadoop是Apache開源組織的一個分布式計算框架,可以在任何普通的硬件設(shè)備組成的集群上運行應(yīng)用程序,構(gòu)建一個具有高可靠性和良好擴展性的并行分布式系統(tǒng),HDFS分布式文件系統(tǒng)、MapReduce編程模型和HBase分布式數(shù)據(jù)庫是其三大核心技術(shù) 無論是存儲的可擴展還是計算的可擴展都是Hadoop的設(shè)計根本。它是完全使用Java開發(fā)的開源平臺,可以運行在任何普通的軟硬件平臺上。Hadoop所采用的分布式系統(tǒng)屬于一種被稱為“向外擴展”的增強計算能力的方式,它是把許多低成本的PC設(shè)備組成大型集群,形成功能專一的分布式系統(tǒng)。分布式文件系統(tǒng)的備份恢復機制以及MapReduce的任務(wù)監(jiān)控保證了分布式處理的可靠性。它的高效數(shù)據(jù)交互實現(xiàn)以及MapReduce結(jié)合Local Data處理的模式,為高效處理海量的信息做了基礎(chǔ)準備。
整個Hadoop的體系結(jié)構(gòu)主要通過HDFS實現(xiàn)對分布式存儲的底層支持,通過MapReduce來實現(xiàn)對分布式并行任務(wù)處理的程序支持。
2.1 Hadoop云計算平臺總體設(shè)計
結(jié)合海量數(shù)據(jù)異構(gòu)性、分布性、多樣性等特點,從系統(tǒng)編程實現(xiàn)角度考慮,采用MVC架構(gòu)設(shè)計,使結(jié)構(gòu)更加清晰,系統(tǒng)易于擴展,系統(tǒng)整體架構(gòu)如圖1所示:

圖1 平臺整體框架結(jié)構(gòu)
2.2 Hadoop云計算平臺功能設(shè)計思想
從功能考慮,基于Hadoop的集群特征,將云計算平臺的計算資源擴展到Hadoop的各個節(jié)點上,利用Hadoop集群的并行計算和存儲功能與數(shù)據(jù)處理的理論相結(jié)合,便可以高效完成海量數(shù)據(jù)的處理,實現(xiàn)基于Hadoop的云計算平臺。
Hadoop是一種分布式系統(tǒng)基礎(chǔ)架構(gòu),與MapReduce編程模式相結(jié)合,用戶可以對分布式程序進行開發(fā),對集群快速高效的數(shù)據(jù)運算和數(shù)據(jù)存儲充分利用。因此,基于Hadoop的云計算平臺在處理計算資源數(shù)據(jù)過程中具有如下特點:(1)在Hadoop的存儲和處理過程中,數(shù)據(jù)可以通過建立多個副本的方式對丟失的或錯誤的數(shù)據(jù)進行快速及時的恢復。MapReduce可以將集群的最大計算資源進行調(diào)用,Hadoop分布式文件系統(tǒng)可調(diào)用集群的最大存儲資源,根據(jù)計算和存儲任務(wù)來增加集群的節(jié)點。(2)編程人員不需要關(guān)心每處數(shù)據(jù)的細節(jié),只需將MapReduce作為統(tǒng)一的數(shù)據(jù)處理接口,用戶對處理任務(wù)和處理結(jié)果的收集過程是透明的。子問題與子問題之間的數(shù)據(jù)交互可由MapReduce組織管理,在數(shù)據(jù)處理過程中可以根據(jù)節(jié)點與數(shù)據(jù)的特點進行適當修改MapReduce接口來提高數(shù)據(jù)處理的效率。(3)Hadoop云平臺結(jié)合MapReduce改進關(guān)聯(lián)規(guī)則的算法,可以實現(xiàn)數(shù)據(jù)操作并行執(zhí)行,提高了傳統(tǒng)關(guān)聯(lián)算法的效率。
2.2 Hadoop云計算平臺建設(shè)
Hadoop框架的MapReduce計算模型為海量數(shù)據(jù)的復雜計算問題提供了簡單的編程模型。
(1)MapReduce原理,MapReduce是一種高效的適用于海量數(shù)據(jù)處理的分布式編程模型。MapReduce的工作過程可以分為兩個階段:Map階段和Reduce階段。Map將一個任務(wù)分解成多個任務(wù),Reduce將分解后的多任務(wù)的結(jié)果匯總起來得出最后的分析結(jié)果。用戶定義一個Map函數(shù)來處理原始數(shù)據(jù),得到的輸出結(jié)果是一組鍵值對(key/value),再定義一個Reduce函數(shù)將所有擁有相同key值的中間結(jié)果進行合并。
(2)HDFS系統(tǒng)搭,HDFS是Hadoop框架中的分布式并行文件系統(tǒng),它實現(xiàn)了數(shù)據(jù)的分布式存儲及管理與高吞吐量訪問的功能。HDFS對于整個集群有單一的命名空間,保持了數(shù)據(jù)一致性,文件會被分割成多個文件塊,每個文件塊被分配存儲到數(shù)據(jù)節(jié)點上。HDFS由一個名字節(jié)點NameNode和若干個數(shù)據(jù)節(jié)點DataNode組成。NameNode負責存儲文件系統(tǒng)中的元數(shù)據(jù)和控制外部客戶的訪問,DataNode用來存放實際的數(shù)據(jù)。每個文件都被劃分成若干64 M的數(shù)據(jù)塊,這些數(shù)據(jù)塊會被分散地存儲到各個DataNode上,HDFS為了保證數(shù)據(jù)的安全性,還會為數(shù)據(jù)進行備份,默認情況下,每個數(shù)據(jù)塊會有三個副本分別存放在不同的機器上。用戶從NameNode那里獲取數(shù)據(jù)的位置信息后,直接與存放數(shù)據(jù)塊的DataNode進行通信。HDFS采用Master/ Slave 的體系結(jié)構(gòu),集群中有一個NameNode和很多個DataNode組成。Master相當于管理員,管理統(tǒng)一的命名空間,主要負責NameNode及JobTracker的工作;JobTracker啟動、跟蹤和調(diào)度各個Slave的任務(wù)執(zhí)行;Slave:相當于執(zhí)行者,分布式的數(shù)據(jù)節(jié)點,具有DataNode的功能并負責TaskTracker的工作;TaskTracker根據(jù)應(yīng)用要求結(jié)合本地數(shù)據(jù)執(zhí)行Map以及Reduce的任務(wù)。
(3)基于Hadoop云計算平臺的設(shè)計,結(jié)合MapReduce原理和HDFS搭建思路,云計算平臺采用分層思想,可分為:交互層、業(yè)務(wù)應(yīng)用層、數(shù)據(jù)處理層、分布式計算層。其中,交互層通過提供具有良好表現(xiàn)形式的圖形界面,使得用戶可以登錄系統(tǒng)定制各種細粒度的業(yè)務(wù),進行查看或者保存各種輸出結(jié)果。業(yè)務(wù)應(yīng)用層提供了各種業(yè)務(wù)邏輯并實現(xiàn)了對各種業(yè)務(wù)流程的控制和調(diào)度,通過調(diào)用數(shù)據(jù)處理層的多個模塊完成交互層提交的業(yè)務(wù),并返回結(jié)果到交互層。數(shù)據(jù)處理層為業(yè)務(wù)應(yīng)用層提供業(yè)務(wù)流需要的各個模塊,實現(xiàn)各種任務(wù)過程中的并行算法,再將任務(wù)提交到Hadoop分布式計算層進行運算,并將結(jié)果返回給業(yè)務(wù)應(yīng)用層。分布式計算層使用Hadoop框架實現(xiàn)集群存儲和計算。
[1]蔣林濤.對云計算中若干問題的思考[J].電信科學,2011(3):1-6.
[2]劉鵬.云計算[M].2版.北京:電子工業(yè)出版社,2011.
[3]吳朱華.云計算核心技術(shù)剖析[M].北京:人民郵電出版社,2012.
TP311.13
A
1009-6434(2016)12-0117-02