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