節能減排監控系統的計算框架研究論文

摘要:海量採集數據的存儲和高併發訪問、節能減排計算業務的快速增長及計算邏輯的頻繁變化,使得目前基於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]op權威指南(2版),周敏奇,王曉玲,等,譯.2011.

[2]e權威指南.代志遠,劉佳,等,譯.2013.

[3]ramminginLua.2005.