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