節能減排監控系統的計算框架研究論文
節能減排監控系統的計算框架研究論文
摘要:海量採集資料的儲存和高併發訪問、節能減排計算業務的快速增長及計算邏輯的頻繁變化,使得目前基於Windows技術的計算框架的處理能力和擴充套件性成為節能減排系統應用深化過程中的瓶頸。針對遇到的問題,設計了基於Linux系統、Hadoop大資料技術和Lua指令碼驅動的分散式計算框架,將複雜的計算業務拆分成彼此獨立的可重用計算元件,利用Lua指令碼技術實現計算元件之間的關聯關係和計算元件的計算邏輯。目前,利用這種計算框架建立了節能減排計算平臺,為江蘇全省所有統調燃煤機組環保電價考核業務提供高吞吐量、高擴充套件性和高效可靠的計算服務。
關鍵詞:節能減排;分散式計算;指令碼技術;Lua;Hadoop;HBase
江蘇省自2006年開始建立了“燃煤機組煙氣脫硫實時監控及資訊管理系統”,經過多年的努力,先後建立起脫硫、脫硝、除塵等各類節能減排應用。隨著應用的深化,採集資料由最初的3000測點擴充套件到目前的40萬測點。資料量隨之劇增。同時,計算業務也日趨複雜,演算法邏輯頻繁調整,目前的資料庫伺服器和計算伺服器承受了巨大的資源壓力。為了解決當前出現的問題,本文提出了一個基於大資料技術的節能減排分散式計算框架,要求能夠適應多變的業務需求以及高併發的資料處理要求。節能減排分散式計算框架是一套基於Linux系統、Hadoop大資料平臺,支援Lua指令碼驅動的計算平臺,它具有較高的擴充套件性和資料併發處理能力,支援海量資料儲存,能夠解決當前系統中遇到的各類問題。
1計算框架需求分析
節能減排分散式計算框架的建立是為節能減排系統服務的,資料計算模型與節能減排具體應用密切相關。目前主要考慮三種業務的計算模型。脫硫業務:對脫硫相關裝置的測點資料進行處理和統計,對統計結果進行深層次的分析。脫硝業務:對脫硝相關裝置的測點資料進行處理和統計,對統計結果進行深層次的分析。除塵業務:對除塵相關裝置的測點資料進行處理和統計,對統計結果進行深層次的分析。
2系統整體架構
節能減排分散式計算框架構建在Linux作業系統上,在實現上分為三層結構:資料庫服務系統、公共服務系統、平臺服務系統,結構如圖1所示。
2.1資料庫服務系統
由大資料系統(Hadoop)和關係型資料庫系統(DB2)構成,其中大資料系統(Hadoop)是核心,關係型資料庫系統用於輔助支撐。Hadoop主要用於儲存歷史資料、結果資料、檔案資料、分散式計算框架管理資料。
2.2公共服務系統
公共服務系統是分散式計算框架的資料處理核心,負責資料訪問驅動介面、指令碼驅動引擎、安全處理、日誌處理以及計算框架和應用的異常處理。根據分散式計算框架的特性,公共服務系統將會對外暴露出多個數據介面,用於上層應用的資料訪問、資料處理、業務演算法實現以及指令碼驅動。
2.3平臺服務系統
平臺服務系統包括:指令碼編輯系統、平臺執行系統、輔助系統。指令碼編輯系統具有業務演算法配置、指令碼編寫和管理功能;平臺執行系統具有任務排程、執行功能,指令碼編輯系統編寫的指令碼將透過執行系統驅動;輔助系統包括外部歷史資料、檔案資料的匯入和儲存。
3節能減排大資料中心
節能減排分散式計算框架將資料分成四類,分別是:現場實時採集資料、計算結果、檔案資料、分散式計算框架管理資料。資料的儲存基於Hadoop系統的HBase資料庫。Hadoop的核心是HDFS和MapReduce,HDFS為海量資料提供儲存,MapReduce為海量資料提供檢索計算[1]。HBase是一個分散式的、面向列的開源資料庫,它在Hadoop之上提供了非結構化的資料儲存能力[2]。
3.1現場實時採集資料
在分散式計算框架中,現場實時採集的資料儲存於歷史資料表中。節能減排分散式計算框架中最大測點數約40萬,大部分測點資料的採集週期為每10秒,資料量巨大。考慮到節能減排資料的規模以及大資料檢索效能,歷史資料表按年分表儲存。歷史資料儲存以測點編碼、小時時間為行檢索關鍵字,儲存對應小時的歷史資料,該測點的一個小時資料按四個列族方式儲存,每個列族儲存15分鐘資料。
3.2結果資料
結果資料包括節能減排相關計算業務的處理結果,包括脫硫、脫硝、除塵小時排放資料、考核資料和事件統計資料等。每種應用資料都是基於特定的計算單元(應用相關的具有內在邏輯關係的一組測點)的多個測點資料按照一定的邏輯關係計算所得,因而計算結果資料在Hadoop中的儲存以計算單元編碼、時間為檢索關鍵字,按照應用要求建立列族儲存結果資料。
3.3檔案資料
節能減排分散式計算框架的建立是為節能減排的各種應用服務,目前應用相關檔案資料主要是與電廠、裝置、採集關係比較緊密的一些配置資訊資料。各種檔案表中以檔案的'編碼為檢索關鍵字,根據具體的檔案資訊建立列族儲存資料。
3.4分散式計算框架管理資料
分散式計算框架內除了需要處理的歷史資料外,還包括支撐系統執行的框架管理資料,如:賬戶資料、指令碼資訊資料、日誌資料等。帳號資料是分散式計算框架中的登入使用者資訊,帳號資訊作用於指令碼任務執行的全過程。指令碼資訊資料是由指令碼編輯系統生成的指令碼資訊,計算框架依賴指令碼資訊進行任務排程和計算,併產生最終的結果資料。日誌資料是計算框架根據規則產生的各種操作日誌資訊,方便資料回溯和跟蹤。
4分散式計算框架
節能減排分散式計算框架是基於Linux上Hadoop系統的計算平臺,是為了適應節能減排複雜多變的應用業務而開發的、支援指令碼程式設計的計算平臺,它以Lua指令碼技術為支撐,融合了節能減排的計算業務特性。節能減排分散式計算框架的任務執行透過任務排程節點控制;任務排程節點將指令碼傳送給計算節點;計算節點呼叫底層的Lua指令碼驅動引擎完成任務執行。任務排程節點與計算節點之間的關係如圖2所示。圖2任務排程節點與計算節點之間的關係計算節點具有線性擴充套件性,可以根據需要任意增加節點數量。計算節點會將任務的執行情況反饋給任務排程節點,由任務排程節點更新資料庫中的任務狀態。
4.1任務排程節點
根據指令碼編輯系統生成的指令碼資訊以及快照表中的測點最新資料時標資訊,生成可以執行的指令碼任務,並將指令碼任務分派給計算節點。
4.2計算節點
接收任務排程節點分派的指令碼任務,啟動任務執行序列執行任務。每個計算節點中可以有多個任務執行序列併發執行指令碼任務。
4.3任務執行序列
任務執行序列是計算節點中的最小任務執行單元,它從全域性任務佇列中獲取任務,並將任務指令碼分解為多個指令碼塊,根據指令碼塊之間的串聯關係依次呼叫Lua指令碼驅動引擎執行指令碼塊。
4.4Lua指令碼驅動引擎
Lua是一門擴充套件式程式設計語言,它作為一個強大、輕量的嵌入式指令碼語言,可供任何需要的程式使用。其最大的特點是:可擴充套件、簡單、高效率、跨平臺[3]。在Lua指令碼的基礎上,結合節能減排分散式計算框架的特點,對Lua介面進行了擴充,使得指令碼驅動引擎能夠訪問計算框架內的各種資源。擴充的介面包括:Hadoop訪問介面、關係資料庫訪問介面、記憶體控制介面、任務排程介面、任務執行介面、安全控制介面、日誌管理介面。在分散式計算框架中,為了方便Lua指令碼的編寫,以及實現多裝置、多應用之間的指令碼共享,使用了以下兩種技術:1)指令碼分塊。支援將一個指令碼分解為多個指令碼塊,每個指令碼塊完成單一的功能,透過計算框架內部的執行序列實現指令碼塊串聯。2)指令碼塊共享。對於不同應用,可以將相同的計算功能定義為獨立的指令碼塊,實現共享,減輕指令碼程式設計工作量。
4.5Hadoop訪問介面
Hadoop是一個能夠對海量資料進行分散式處理的軟體框架,它具有可靠、高效的特性,且易於擴充套件。在Hadoop的基礎上,結合節能減排分散式計算框架的特性,對Hadoop的訪問介面進行了規劃,在節能減排大資料中心四類資料之間實現了統一的資料訪問介面。
5結論
基於Linux系統和大資料Hadoop平臺,以Lua指令碼技術驅動的節能減排分散式計算框架,透過計算節點的線性擴充套件能力提高了資料吞吐量,透過指令碼分塊和共享技術提高了演算法的相容性和可擴充套件性,從而有效地解決了當前節能減排系統中海量資料併發操作和演算法多變問題。
作者:王其祥 周春蕾 孫栓柱 單位:江蘇方天電力技術有限公司
參考文獻
[1]TomWhite.Hadoop權威指南(2版),周敏奇,王曉玲,等,譯.2011.
[2]LarsGeorge.HBase權威指南.代志遠,劉佳,等,譯.2013.
[3]RobertoIerusalimschy.ProgramminginLua.2005.