任 群,王愛平
(亳州學院 電子與信息工程系,安徽 亳州236800)
在大數據和互聯網+的時代背景下,創業創新是當代大學生必備的能力,創新創業的出現響應了“大眾創業,萬眾創新”的號召。 科學高效的管理平臺可以指導和支持大學生的創業創新教育,因此探討了大學生創業創新平臺的構建。 基于大數據的創業創新平臺的構建面臨著許多挑戰,其中一個就是大數據處理的能源效率問題[1-2]。 本研究提出了CGDP,一個具有成本效益的綠色大數據處理框架,并將大學生創業創新平臺部署在基于CGDP 的集群中。
基于CGDP 的集群框架,如圖1 所示。 綠色大數據處理模塊(CGDP)部署在網關與核心網絡之間,包括一個大數據中心、一個數據庫和一個綠色感知優化模塊。 首先,由大數據中心收集和預處理由無線異構網絡生成的原始數據。 然后,通過基于人工智能的數據分析,從清晰的數據中提取用戶行為和網絡模式,并將相關結果和有用的歷史數據存儲在數據庫中,用于訓練學習系統。 綠色感知優化模塊進行具有成本效益和綠色感知的任務調度策略。

圖1 基于綠色大數據的系統框架
本平臺的主要角色有學院、高校、企業、導師、學生,不同的角色具有不同的功能。 創業創新項目申請是大學生創業創新平臺的主要功能之一,該功能主要的用戶是學生。 學生可以進行新增項目,填寫項目申請書等操作,還可以對申請書進行修改、刪除以及提交等操作。 學院、高校、企業、指導教師通過項目審核處理功能對項目進行審核。 指導教師首先對學生提交的申請書進行審核,并填寫審核意見。 如果審核不通過,則需要將申請書退回修改或者拒絕申請;若審核通過,則提交學院、高校和企業進行審核。 項目統計功能是實現項目匯總的途徑,而項目成果展示功能將實現項目成果的發布。 項目信息查詢實現了基于關鍵字查詢和基于條件查詢的功能。
本平臺的功能模塊如圖2 所示。

圖2 系統功能模塊圖
由于篇幅有限,此處主要介紹創業項目信息查詢功能的詳細設計以及實現過程。
項目信息查詢實現了條件查詢和關鍵字查詢功能。 條件查詢功能通過設置條件來對項目進行篩選,關鍵字查詢支持用戶進行模糊查找。 下面介紹利用關鍵字進行模糊查詢的具體實現算法。 首先,用戶在應用程序端或者網頁端輸入關鍵字;然后,通過邏輯層的相關處理后,采用數據庫接口根據關鍵字查找數據庫;最后,查詢結果會顯示到應用程序或者網頁。 本平臺使用了基于信息檢索(Information Retrieve,IR)排序的搜索算法來進行查詢。 采用圖結構來對數據庫建模,圖的節點表示數據庫中的表,當表i 的主鍵是表j 的外鍵時,節點i 與節點j 之間有邊相連接。 查詢結果是一個包含元組樹集合的結果圖。 提出了基于IR 排序的搜索算法。 首先將存儲在文本數據庫中的基本信息單元定義為文檔,然后計算查詢關鍵字和文檔的相似度,并以相似度為標準來對文檔進行排序。 假設元組樹T,元組樹中每個文檔為{D1,…,Dm},則T 為Di的父文檔。 相似度的計算公式為:

其中,ω(k,Q)是查詢Q 中關鍵詞k 的權重;ω(k,T)是元組樹中關鍵詞k 的權重,其計算方式為:


考慮在單個數據中心中減少大數據處理過程中(如MapReduce)不可再生能源的消耗。 數據中心由不可再生能源和可再生能源供電,并配有后備電池。 在MapReduce 框架中,數據的處理涉及一組機器:一個主節點和多個從節點。 主節點是負責工作負載調度和計算資源管理的中央協調器。 從節點負責執行Map 或Reduce 任務和數據存儲。 用戶約束(如截止日期)是數據處理框架的性能指標。 因此,綠色大數據處理框架(CGDP)允許用戶指定MapReduce 任務的松弛性,每個作業的松弛性根據其截止日期定義。 CGDP 利用工作的松弛性來執行成本和綠色的優化。 該系統由Hadoop 集群、充電控制器、逆變器、電池和開關組成。 由于可再生能源的輸入電壓是動態變化的,因此采用充電控制器來防止過充電。 充電控制器還監視充電、放電操作。 通過充電控制器,剩余的可再生能源自動充電到電池中。
采用兩個參數Cp和e 對電池進行建模,Cp是電池的有效容量,e 是電池的充電效率。 對于一個給定的充電功率Δx,估計的電池電量的增量為△x′=△x·e。 CGDP 有兩個優化目標,分別是綠色感知優化和符合成本效益優化。 其中,綠色感知優化是指在所有任務都能在截止日期之前完成的條件下,最小化不可再生能源的使用量;而符合成本效益的優化目標則是最小化能源的使用成本。
當一個新任務進入系統時,它首先被放入一個任務等待隊列。 對于等待隊列中的任務,需要進行性能和能耗評估。 然后在滿足任務截止時間的條件下,確定最具能效的執行配置。 執行配置包括了服務器的數量以及每臺服務器的物理資源。 接下來,將任務添加到任務隊列中。 使用一個多隊列結構來表示任務負載的執行計劃。 由于MapReduce 任務的到達方式是未知的,且可再生能源會隨著時間的變化而變化,因此難以做出最優的離線任務調度計劃。 任務調度計劃需要在系統運行時動態生成和調整,以適應任務和可再生能源的變化。 在本研究中,為了簡化算法設計,進行定期的任務調整。 在一段時間內,CGDP 生成節能環保和具有成本效益的調度計劃。 我們將這一段時間稱為一個“epoch”。 在每個epoch 開始時,對任務量進行預測。 給定每個任務的節能執行配置,首先根據集群容量生成基本的節能計劃。 接下來,應用一系列優化來降低計劃的不可再生能源消耗和能耗成本。 在一段時間內,CGDP 定期進行任務調度,并根據優化的執行計劃在服務器上執行電源管理。 將任務調度的時間段稱為“slot”。 對于每個slot,CGDP 為任務分配一組服務器,并根據執行計劃執行任務。 對于當前slot 執行計劃中要調度的所有任務,CGDP 采用截止時間優先的調度算法。 該算法優先處理接近截止時間的作業。
為了通過綠色感知調度最小化集群的不可再生能耗,首先,生成一個基本的執行計劃,其中,特別考慮了數據處理框架的能效和集群容量。 然后,通過綠色感知的任務切換和電池輔助綠色轉移機制,進一步降低基本節能計劃的不可再生能源消耗。
3.3.1 基本的節能執行計劃
在每一個epoch 開始時,對任務(包括工作類型和到達率等)以及可再生能源的供應情況進行在線預測。
(1)任務預測:通過使用簡單的時間序列分析[3],可以較為精確地預測小型任務的到達率。 利用任務之間的相似性,結合時間序列預測算法,可以準確估計小型任務的總能耗和執行時間。 在實驗中,對于小型任務的能源消耗預測誤差平均小于6%,執行時間的預測誤差平均小于4%。 但對于大型任務,它們的到達并沒有規律,并且大型任務的能耗和執行時間差別很大。 因此,采用成本模型在大型任務到達才對他們進行評估。 由于大型任務的執行時間較長,因此這種隨機應變的預測為調度提供了足夠的優化空間。
(2)可再生能源供應預測:大多數的可再生能源(如太陽能和風能)都取決于天氣狀況。 采用了Green-Hadoop[4]中使用的預測方法,該方法能夠以非常高的準確性來預測太陽能。
(3)節能計劃生成:為CGDP 制訂了基本的節能計劃。 CGDP 生成的計劃具有兩個不同的特性。 首先,CGDP 的任務執行配置在滿足任務截止時間的同時能耗最小;其次,生成計劃是以MapReduce 任務的能耗和性能模型作為指導的。 文中開發了一個多隊列數據結構來表示一個epoch 的執行計劃。 每個隊列對應一個slot,它包含在slot 開始時啟動的任務。 每個epoch 由N 個slot 組成,時隙長度為ts秒,一個slot 對應一個隊列。 在設計中,當前的epoch 有N 個隊列,用q0,...,qN-1表示。 其中,qi維護松弛性小于i+1 的任務,并采用一個單獨的隊列q′存儲所有松弛性超出當前epoch 的任務。 隨著時間的流逝,在每個slot 的開始,任務的松弛性將減少,然后將分配一定數量的服務器給這些任務,直到任務完成為止。 在每個epoch 開始時,松弛性小于epoch 的作業會被分配到相應的qi中,而前一個epoch 未完成的任務將分配到q0中。 因此,epoch 的任務包括來自q′的任務、epoch 結束前在當前epoch 期間到達的帶有松弛性的任務以及來自之前epoch的任務。 假設每個slot 所需的服務器數量是ni。 如果ni超出了集群容量,需要將當前slot 中運行的任務移動到具有可用資源的隊列j。 重復這個過程,直到所有ni都不大于集群的容量。
3.3.2 綠色感知優化的任務轉換
CGDP 支持四種基本工作轉換:(1)推遲D(j,i):該操作將任務j 推遲i 個slot;(2)提前A(j,i):該操作將任務j 提前i 個slot;(3)分配P(j,i):該操作為任務j 增加了服務器的數量;(4)減配D(j,i):該操作減少了任務j 的服務器數量。
第一階段:在這一階段,在保持當前epoch 的基本節能執行計劃的同時,進行提前A(j,i)和推遲D(j,i)操作,以降低不可再生能源的消耗。 由于基本節能執行計劃中的所有任務都盡可能地被推遲,任何推遲操作都將違反任務的截止時間。 因此,如果不可再生能源的消耗可以進一步被優化,首先進行提前操作,然后考慮推遲操作。 第一階段的優化算法如下:


第二階段:第二階段是第一階段的補充,考慮分配和減配來進一步減少不可再生能源的消耗。 第二階段算法可以改變執行計劃,但可能會降低能源效率。
3.3.3 電池輔助的能源轉移
當可再生能源供應過剩時,可以利用電池儲存能源,以備將來使用。 設計了電池輔助轉移來進一步優化執行計劃的任務轉換。 有了電池,可以把任務時間推遲到更晚的時間段,以提高能源效率。 由于充放電存在能量損失,需要評估電池輔助轉移的能量增益與充放電損失之間的權衡。 將這個問題表示為帶有約束的非線性整數規劃問題,并提出了一種啟發式算法來進行綠色轉移優化。
對當前slot 內的每個任務進行減配操作,并利用剩余的可再生能源對電池進行充電。 首先,將所有由可再生能源供能的任務J 添加到FIFO 隊列Q 中。 然后,每次從Q 中取出一個作業,在保證能夠減少不可再生能源消耗的情況下,執行減配和充電操作。 重復該過程,直到隊列Q 為空。 對于每個任務j,如果減配不會違反任務的截止時間,對任務j 執行減配。 由于充電、放電時會有能量損失和電池滿負荷時的能量浪費,為了提高能源效率,需要將未來任務所消耗的能源與可再生能源的實際數量進行比較。 如果實際的可再生能源量大于未來任務的能源消耗,將進行降級操作,并利用剩余的可再生能源對電池進行充電。
為了利用動態定價來降低集群的電力成本,通過擴展CGDP 來提供具有成本效益的調度。
3.4.1 成本優化的任務轉換
通過考慮不可再生能源的價格,進行成本效益優化。 成本效益優化的基本思想是利用不可再生能源來調度任務,如果可以降低當前epoch 的總電力成本,則將高峰期的不可再生能源消耗轉移到其他時段。 在一個epoch 中的電力成本為,其中N 是slot 的個數,Ci是slot i 的電力成本,其定義如下:


圖3 不可再生能源消耗對比
3.4.2 電池輔助的不可再生能源轉移
設計了電池輔助的不可再生能源轉移機制,通過具有成本效益的工作轉移進一步優化執行計劃[6]。 在電池的幫助下,可以較低的價格購買非高峰時段的不可再生能源,并在高峰時段使用。 由于在充放電過程中存在能量損耗,需要比較一下由于價格差異而節省的電費和充放電過程中的損耗。 也可以將這個問題表示為一個帶約束的非線性整數規劃問題,并采用啟發式算法來執行計劃上的不可再生能源轉移。 由于在充電、放電的過程中會有能量損失,因此并非所有購買的不可再生能源都可以在未來得到利用。因此,需要將峰谷電價差異所帶來的電費節約與能源浪費所帶來的損失進行比較[7]。 如果價格差異帶來的收益大于充放電過程中的浪費,將購買不可再生能源,并進行充電以便未來使用。
將系統部署在一個由10 節點組成的集群上,并進行實驗以評估本系統的性能。 基于最新版本的Hadoop YARN 2.6.0 實現了本系統,并將Hadoop YARN 2.6.0[5]作為基本算法,記為“Hadoop”。 與此同時,選擇Greena-ware Hadoop(記為“GreenHadoop”)算法進行比較。 在該集群中,每個節點有兩個Intel Xeon CPU、24 GB 內存和1T 的磁盤。 節點的閑時功耗為150 瓦,峰值功耗為280 瓦。 這些節點通過10Gb 的以太網連接。其中一個節點被配置為主節點,其他節點被部署為從節點。
圖3 為不同系統的不可再生能源能耗。 總的來說, GreenHadoop、CGDP-basic 和CGDP 消耗的不可再生能源都比Hadoop 少。 與GreenHadoop 相比,CGDP 通過采用高效節能的優化,消耗了更少的不可再生能源。考慮到能源效率,CGDP-basic 比GreenHadoop 減少了6%的消耗,而CGDP 將任務轉換和電池輔助轉移應用于基本節能計劃,因此比CGDP-basic 進一步減少14.9%的消耗。

圖4 各部分能源消耗對比
圖4 展示了不可再生能源消耗、可再生能源消耗、電池充電、可再生能源浪費和數據復制的開銷的對比結果[8]。 浪費的可再生能源包括充電、放電時的能量損失和電池充滿電后被丟棄的部分。 通過將電力需求與綠色供應結合起來,GreenHadoop 可以比Hadoop 利用更多的綠色能源。 然而,在不考慮焦耳效率的情況下,它比CGDP 消耗更多的不可再生能源。 CGDP-basic比GreenHadoop 更能有效地利用能源,消耗更少的不可再生能源。 CGDP 的電池輔助轉移技術將更多的綠色能源充電到電池中,而不是直接使用電池,從而減少了不可再生能源。
本研究探討了大學生創業創新平臺的構建。
基于大數據的創業創新平臺構建面臨著許多挑戰,其中一大挑戰就是大數據處理的能源效率問題。 提出了CGDP,一個具有成本效益的綠色大數據處理框架,并將大學生創業創新平臺部署在基于CGDP 的集群中。