徐炫東,杜舒明,吳永歡
(廣州供電局有限公司,廣東 廣州 510620)
隨著云計(jì)算、移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)和大數(shù)據(jù)技術(shù)的廣泛應(yīng)用,現(xiàn)代社會(huì)已經(jīng)邁入全新的大數(shù)據(jù)時(shí)代。這些新技術(shù)的興起,正深刻改變著當(dāng)前的市場(chǎng)格局。
數(shù)據(jù)的爆炸式增長(zhǎng)和價(jià)值的擴(kuò)大化,將對(duì)企業(yè)未來的發(fā)展產(chǎn)生深遠(yuǎn)影響,數(shù)據(jù)將成為企業(yè)的核心資產(chǎn)。越來越多的企業(yè)開始重視大數(shù)據(jù)戰(zhàn)略布局,重新定義自己的核心競(jìng)爭(zhēng)力,從數(shù)據(jù)中揭示規(guī)律,了解過去、知悉現(xiàn)在、洞察未來,讓一切業(yè)務(wù)數(shù)據(jù)化,同時(shí)也讓企業(yè)數(shù)據(jù)業(yè)務(wù)化。
在這種新的技術(shù)革命形勢(shì)下,遵循“互聯(lián)網(wǎng)+”的模式,基于云計(jì)算、云服務(wù)的理念,建設(shè)包含技術(shù)平臺(tái)、數(shù)據(jù)應(yīng)用平臺(tái)、數(shù)據(jù)產(chǎn)品、數(shù)據(jù)服務(wù)及數(shù)據(jù)監(jiān)控平臺(tái)等全棧式大數(shù)據(jù)平臺(tái)尤為重要,可為企業(yè)數(shù)字化轉(zhuǎn)型、業(yè)務(wù)創(chuàng)新、決策支撐、流程優(yōu)化及風(fēng)險(xiǎn)監(jiān)控打下堅(jiān)實(shí)的基礎(chǔ)。
公司大數(shù)據(jù)平臺(tái)將在Hadoop和云計(jì)算等技術(shù)的基礎(chǔ)上,對(duì)現(xiàn)有量收系統(tǒng)、數(shù)據(jù)分析綜合服務(wù)平臺(tái)的歷史數(shù)據(jù)、數(shù)據(jù)模型、報(bào)表應(yīng)用等進(jìn)行移植,全面整合公司業(yè)務(wù)數(shù)據(jù)。數(shù)據(jù)來源涵蓋公司所有的生產(chǎn)和管理系統(tǒng),并可接入同業(yè)及相關(guān)市場(chǎng)甚至互聯(lián)網(wǎng)信息,建立清晰的企業(yè)畫像、用戶畫像及業(yè)務(wù)畫像,讓數(shù)據(jù)形成資產(chǎn)、形成驅(qū)動(dòng)力,真正做到讓一切業(yè)務(wù)數(shù)據(jù)化,同時(shí)也數(shù)據(jù)業(yè)務(wù)化,從而逐步蛻變成國(guó)內(nèi)一流、世界領(lǐng)先的大數(shù)據(jù)平臺(tái)。
大數(shù)據(jù)平臺(tái)需支持多應(yīng)用管理,即支持對(duì)應(yīng)用的服務(wù)級(jí)別管理(SLA),能夠?qū)崿F(xiàn)應(yīng)用的訪問資源控制,支持資源隔離,同時(shí)支持多租戶功能,如全局管理平臺(tái),實(shí)現(xiàn)租戶的準(zhǔn)入、操作、分組、分層、授權(quán)以及隔離等功能。
大數(shù)據(jù)平臺(tái)應(yīng)具有統(tǒng)一運(yùn)維監(jiān)控,可以圖形化實(shí)現(xiàn)安全管理、用戶管理、監(jiān)控運(yùn)維、服務(wù)調(diào)度、應(yīng)用部署、資源管理、作業(yè)編排以及服務(wù)接口等。
大數(shù)據(jù)平臺(tái)應(yīng)同時(shí)支持作業(yè)調(diào)度管理,即實(shí)現(xiàn)統(tǒng)一的作業(yè)調(diào)度與編排管理功能,支持使用工作流的可視化方式對(duì)工作任務(wù)進(jìn)行統(tǒng)一編排和調(diào)度,同時(shí)支持作業(yè)的資源管理、流程管理、任務(wù)管理、數(shù)據(jù)管理、應(yīng)用管理、租戶管理以及多ETL調(diào)度任務(wù)的部署和并行處理等功能。
2.1.1 數(shù)據(jù)采集
首先,互聯(lián)網(wǎng)上的數(shù)據(jù)與傳統(tǒng)的數(shù)據(jù)庫(kù)中的數(shù)據(jù)不同。傳統(tǒng)的數(shù)據(jù)庫(kù)都有一定的數(shù)據(jù)模型,可以根據(jù)模型具體描述特定的數(shù)據(jù),同時(shí)可以很好地定義和解釋相關(guān)的查詢語(yǔ)言。而互聯(lián)網(wǎng)上的數(shù)據(jù)非常復(fù)雜,沒有特定的模型描述,每一站點(diǎn)的數(shù)據(jù)都各自獨(dú)立設(shè)計(jì),且數(shù)據(jù)本身具有自述性和動(dòng)態(tài)可變性。
其次,要解決Web上的數(shù)據(jù)查詢問題。因?yàn)槿绻璧臄?shù)據(jù)不能有效得到,對(duì)這些數(shù)據(jù)進(jìn)行分析、集成和處理就無從談起。
2.1.2 數(shù)據(jù)清洗
(1)數(shù)據(jù)分析。數(shù)據(jù)分析是指從數(shù)據(jù)中發(fā)現(xiàn)數(shù)據(jù)的普遍規(guī)則,如業(yè)務(wù)規(guī)則、字段域等。通過對(duì)數(shù)據(jù)的分析,可定義數(shù)據(jù)清洗的規(guī)則,并選擇合適的算法,如血緣分析、影響分析等。
(2)數(shù)據(jù)檢測(cè)。數(shù)據(jù)檢測(cè)是指根據(jù)預(yù)定義的清洗規(guī)則和相關(guān)數(shù)據(jù)算法,檢測(cè)數(shù)據(jù)是否正確。例如,檢測(cè)記錄是否是重復(fù)記錄,是否滿足字段域、業(yè)務(wù)規(guī)則,字段是否齊全等。
2.1.3 數(shù)據(jù)修正
數(shù)據(jù)修正是指手工或自動(dòng)修正檢測(cè)到的錯(cuò)誤數(shù)據(jù)、處理重復(fù)的記錄及補(bǔ)全數(shù)據(jù)等。
對(duì)于數(shù)據(jù)清洗應(yīng)該滿足:數(shù)據(jù)清洗應(yīng)該能檢測(cè)和消除所有主要的錯(cuò)誤和不一致,包括單數(shù)據(jù)源和多數(shù)據(jù)源集成時(shí);數(shù)據(jù)清洗方法能被這樣的工具支持,人工檢測(cè)和編程工作要盡可能少,并具有可擴(kuò)展性。
2.1.4 數(shù)據(jù)融合
在信息化建設(shè)過程中,經(jīng)常出現(xiàn)數(shù)據(jù)集成或融合問題。數(shù)據(jù)采集與清洗后的數(shù)據(jù),需要進(jìn)行融合使用。
數(shù)據(jù)融合使用過程中,通常會(huì)遇到如下3種情況。
(1)各個(gè)數(shù)據(jù)源中所有的原始數(shù)據(jù)合并到一個(gè)新的數(shù)據(jù)源中,通常用于數(shù)據(jù)倉(cāng)庫(kù)。數(shù)據(jù)倉(cāng)庫(kù)作為新的數(shù)據(jù)源進(jìn)行更全方位的數(shù)據(jù)分析,提供給前端應(yīng)用使用。
(2)各個(gè)數(shù)據(jù)源中所有的原始數(shù)據(jù)并不合并到一個(gè)新的數(shù)據(jù)源中,但要求各個(gè)數(shù)據(jù)源中所有的原始數(shù)據(jù)作為一個(gè)整體數(shù)據(jù)源供用戶使用。該情況的出現(xiàn)主要是不同的企業(yè)或部門之間的數(shù)據(jù)很難打通,如銀行與房企、社保與醫(yī)院等。
(3)前兩種情況同時(shí)存在。這種情況的出現(xiàn),常見于智慧城市建設(shè)過程中不同部門不同領(lǐng)域的各種數(shù)據(jù)進(jìn)行相互集成。
大數(shù)據(jù)平臺(tái)對(duì)企業(yè)級(jí)用戶提供多應(yīng)用場(chǎng)景的支持。如通過Stream提供實(shí)時(shí)數(shù)據(jù)計(jì)算場(chǎng)景支持,通過Inceptor提供批處理場(chǎng)景支持,通過Hyperbase提供在線數(shù)據(jù)服務(wù)場(chǎng)景支持,通過Discover提供數(shù)據(jù)分析和挖掘場(chǎng)景支持。
大數(shù)據(jù)平臺(tái)通過云平臺(tái)系統(tǒng)實(shí)現(xiàn)大數(shù)據(jù)平臺(tái)多應(yīng)用管理,支持對(duì)應(yīng)用的服務(wù)級(jí)別管理(SLA),實(shí)現(xiàn)應(yīng)用的訪問資源控制,支持資源隔離。
云平臺(tái)系統(tǒng)基于Docker容器技術(shù),支持一鍵部署各個(gè)組件,支持優(yōu)先級(jí)的搶占式資源調(diào)度和細(xì)粒度資源分配,讓大數(shù)據(jù)應(yīng)用輕松擁抱云服務(wù),滿足企業(yè)對(duì)于構(gòu)建統(tǒng)一的企業(yè)大數(shù)據(jù)平臺(tái)來驅(qū)動(dòng)各種業(yè)務(wù)的強(qiáng)烈需求。
在實(shí)際業(yè)務(wù)開展過程中,面對(duì)的不同應(yīng)用需求,通過集群管理方式,滿足業(yè)務(wù)全天候(7×24 h)服務(wù),可以結(jié)合公司資源管理系統(tǒng),快速、動(dòng)態(tài)、靈活部署業(yè)務(wù),隨需銷毀或創(chuàng)建集群。
在保障資源安全的情況下,隔離方面需要通過資源管理系統(tǒng)對(duì)計(jì)算資源和內(nèi)存資源進(jìn)行管理,避免不同應(yīng)用、不同服務(wù)互相搶占資源。
同時(shí),在實(shí)際業(yè)務(wù)過程中,逢大型節(jié)日、特定周期業(yè)務(wù)迎來峰值,需要通過在已申請(qǐng)的資源配額里進(jìn)行資源動(dòng)態(tài)分配,合理歸還,保障各業(yè)務(wù)系統(tǒng)都有合理資源可用。
對(duì)不同的租戶操作員進(jìn)行分組分類分級(jí)管理,利用Kerberos和LDAP對(duì)租戶應(yīng)用授權(quán),支持對(duì)計(jì)算資源和內(nèi)存資源的管理能力,避免高消耗服務(wù)爭(zhēng)搶資源,設(shè)置租戶的數(shù)據(jù)訪問能力,實(shí)現(xiàn)數(shù)據(jù)隔離。
本方案提供統(tǒng)一的運(yùn)維監(jiān)控服務(wù),主要通過云計(jì)算系統(tǒng)實(shí)現(xiàn),而云計(jì)算系統(tǒng)的核心是Docker和Kubernetes。本方案涉及的所有軟件的部署都通過Docker打包成鏡像文件,以便快捷地部署實(shí)施。內(nèi)部系統(tǒng)通過鏡像數(shù)據(jù)接口交互層進(jìn)行交互,通過外部接口層納入集團(tuán)運(yùn)維平臺(tái)進(jìn)行統(tǒng)一監(jiān)控。
整個(gè)架構(gòu)通過Docker打包,并提供服務(wù)接口,這種服務(wù)接口分為兩層[1]。(1)鏡像層:①提供接口文件;②提供數(shù)據(jù)接口。(2)外部接口層;①提供API;②提供URL嵌入;③提供數(shù)據(jù)接口;④提供XML接口(包括定制XML、JSON等);⑤ESB接口。
整個(gè)接口層的設(shè)計(jì)便于產(chǎn)品之間和系統(tǒng)之間的交換,也便于整個(gè)架構(gòu)對(duì)接IBM Tivoli、BMC ControlM等監(jiān)控平臺(tái),引入監(jiān)控或者外推監(jiān)控,更好地融入公司的監(jiān)控體系,便于統(tǒng)一監(jiān)控。
2.4.1 Hadoop集群自動(dòng)化部署
大數(shù)據(jù)平臺(tái)提供集群自動(dòng)化部署服務(wù)。用戶只需要安裝Manager管理平臺(tái)軟件,就可以在友好的圖形化界面上安裝、部署和配置所需要的服務(wù)。整個(gè)安裝過程不需要用戶使用任何終端命令或者代碼。
平臺(tái)提供了強(qiáng)大的在線擴(kuò)容功能,不需要宕機(jī)停庫(kù),不需要停止業(yè)務(wù),就可以添加新的節(jié)點(diǎn)實(shí)現(xiàn)擴(kuò)容。節(jié)點(diǎn)添加完成后,可以立即對(duì)新添加的節(jié)點(diǎn)進(jìn)行角色分配,一旦配置成功,則新加的節(jié)點(diǎn)會(huì)馬上投入運(yùn)算。擴(kuò)容后的數(shù)據(jù)節(jié)點(diǎn)不需要停機(jī)進(jìn)行數(shù)據(jù)重分布,系統(tǒng)自動(dòng)選擇空閑時(shí)間進(jìn)行數(shù)據(jù)重新分布。同時(shí),擴(kuò)容的操作可以方便地在界面進(jìn)行操作。
2.4.2 Hadoop集群資源管理
大數(shù)據(jù)平臺(tái)提供計(jì)算任務(wù)管理和作業(yè)管理,包括作業(yè)的上傳、配置、啟動(dòng)、停止、刪除和狀態(tài)查看等功能。
在大數(shù)據(jù)平臺(tái)中,資源可以從多個(gè)方面進(jìn)行管理。從資源管理模塊YARN的層面,用戶通過配置不同的Scheduler定義不同的資源使用策略,目前支持FIFO Scheduler、Fair Scheduler以及 Capacity Scheduler,實(shí)現(xiàn)作業(yè)動(dòng)態(tài)調(diào)整、支持對(duì)任務(wù)系統(tǒng)資源占用進(jìn)行實(shí)時(shí)調(diào)配以及改變作業(yè)調(diào)度優(yōu)先級(jí)等操作。
2.4.3 圖形界面方式多租戶管理
用戶可以使用圖形化界面配置多租戶的用戶、組的權(quán)限。管理員用戶可以新建、編輯用戶的信息。同時(shí),用戶可以按需創(chuàng)建、按需銷毀計(jì)算集群,且創(chuàng)建集群時(shí)只需要指定所需計(jì)算資源,無需指定具體的物理機(jī)器。
Trinity產(chǎn)品充分支持集團(tuán)數(shù)據(jù)服務(wù)技術(shù)方面的技術(shù)需求,數(shù)據(jù)流架構(gòu)圖如圖1所示[2]。

圖1 數(shù)據(jù)流架構(gòu)圖
Trinity提供功能完整、性能優(yōu)異的ETL框架支持平臺(tái)建設(shè)。針對(duì)數(shù)據(jù)的預(yù)處理和中間的轉(zhuǎn)換清洗,包括寫入目標(biāo)時(shí)針對(duì)異常數(shù)據(jù)的捕獲。整個(gè)過程由Trinity提供的調(diào)度平臺(tái)和元數(shù)據(jù)管理平臺(tái)提供支撐,讓各部分之間緊密合作又各司其職。
針對(duì)此項(xiàng)目復(fù)雜的業(yè)務(wù)系統(tǒng)和管理,Trinity提供完善的調(diào)度功能,以更好地對(duì)各個(gè)模塊進(jìn)行良好調(diào)度管理,相應(yīng)邏輯如圖2所示。
調(diào)度平臺(tái)是平臺(tái)的數(shù)據(jù)流核心,讓相關(guān)的業(yè)務(wù)系統(tǒng)、處理系統(tǒng)按照一定的業(yè)務(wù)邏輯,在客戶的安排下像流水線一樣,或串行或并行,按照一定的依賴關(guān)系,在每日每周定時(shí)觸發(fā),依次執(zhí)行。Trinity提供完善的接口和管理模塊,讓眾多的作業(yè)管理簡(jiǎn)易高效。

圖2 相應(yīng)邏輯
大數(shù)據(jù)分布式作業(yè)調(diào)度的應(yīng)用場(chǎng)景和ETL的定義過程、數(shù)據(jù)引擎和業(yè)務(wù)場(chǎng)景的需求有著重要關(guān)聯(lián)。分布式調(diào)度過程通過場(chǎng)景化驅(qū)動(dòng)逐步完善,電網(wǎng)企業(yè)大數(shù)據(jù)的作業(yè)調(diào)度在滿足通用調(diào)度后發(fā)現(xiàn)存在數(shù)據(jù)解釋、細(xì)粒度更新延遲等問題,也開啟了逐步迭代的完善過程。