楊宇 李鳴宇
(1.國網(wǎng)吉林省電力有限公司信息通信公司 吉林省長春市 130022)
(2.中國聯(lián)通吉林省通信公司長春市分公司 吉林省長春市 130000)
圖1所示為分布式計算,是當(dāng)前被廣泛使用的計算方法,其與集中式計算完全不同,是一種需要具備極強(qiáng)的計算能力才能夠完成的計算方方式。如果需要計算同樣的數(shù)據(jù)采用了集中式計算,那么就需要耗費(fèi)大量的時間來完成此工作,無法適應(yīng)當(dāng)前快節(jié)奏的發(fā)展速度。但是使用分布式計算,則可以通過分解的方式讓其能夠用多臺計算機(jī)完成相同總量的計算,實現(xiàn)節(jié)約計算時間的目標(biāo),而且還能夠讓其計算的效率得到大幅度的提升。
圖1:分布式計算
分布式計算技術(shù)種類多樣,不同的技術(shù)應(yīng)用將會呈現(xiàn)出差異性的效果,本文將對其中最為常見的三種分布式計算技術(shù)進(jìn)行對比分析,從不同的角度對分布式進(jìn)行分析,從而探究各種不同的分布式計算技術(shù)所能夠形成的功能效果。
其中主要是以網(wǎng)絡(luò)計算、云計算以及志愿計算為代表。首先來講,網(wǎng)絡(luò)計算技術(shù),是對主要涉及的資源形成合理的聚合分布效果,并對虛擬的組織結(jié)構(gòu)提供支撐,從而搭建其更高質(zhì)量的高層次有效計算服務(wù)。并能夠形成相對較為穩(wěn)定的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),在計算任務(wù)完后,就能夠直接退出系統(tǒng),省略了眾多中間繁瑣應(yīng)用環(huán)節(jié),形成更加簡易的計算作業(yè)方式。而志愿計算技術(shù),能夠更加自由的隨意登入或登出系統(tǒng),但是在系統(tǒng)靈活度有效提升的同時,任務(wù)完成的狀況則難以及時的掌握,往往會出現(xiàn)任務(wù)未完成卻杳無音信的狀況。但由于計算任務(wù)未完成,將使當(dāng)前計算節(jié)點的信譽(yù)度受到影響,在下次實施任務(wù)分配的環(huán)節(jié)中將會降低該節(jié)點的任務(wù)量。
云計算則是按照使用者的實際需求做好合理的按需分配,能夠形成更加靈活且日常的運(yùn)行服務(wù)效果,并以服務(wù)機(jī)制是鏡像執(zhí)行的方式實現(xiàn)異構(gòu)。但是根據(jù)實際而言,網(wǎng)絡(luò)計算、志愿計算以及云計算等方式都能夠?qū)Ξ悩?gòu)資源提供相應(yīng)支撐,而網(wǎng)絡(luò)技術(shù)與志愿技術(shù)相較于云計算所形成的差別則是建立在用戶使用效果基礎(chǔ)上形成的。網(wǎng)絡(luò)計算的異構(gòu)會在中間件的作用下對其進(jìn)行屏蔽,但相應(yīng)的卻能夠為用戶展示相應(yīng)的異構(gòu)信息,從而在中間件的作用下完成異構(gòu)過程[2]。而志愿計算本身所能夠產(chǎn)生的異構(gòu)性影響不明顯,僅需要志愿者提供反饋就能夠完成異構(gòu),并無任何具體的設(shè)備以及系統(tǒng)的要求。
對比三種不同的分布式計算技術(shù),可以發(fā)現(xiàn)分布式計算中的云計算技術(shù)已經(jīng)呈現(xiàn)出進(jìn)一步應(yīng)用的良好效果,其降低了以往使用者有效投入工作的程度,僅需要選擇相對應(yīng)的技術(shù)類型,并支付相應(yīng)費(fèi)用就能夠完成技術(shù)使用。而另外兩種不同的計算技術(shù)應(yīng)用則是建立在整體的系統(tǒng)設(shè)定中所形成的。云計算的分布式技術(shù)應(yīng)用將完整的資源打造成更加分散的應(yīng)用類型,有效提升了資源利用率。而網(wǎng)絡(luò)計算以及志愿計算等均需要聚合資源重新應(yīng)用,過程相對較為繁瑣,并且在這樣的過程中可能會造成資源丟失問題。
對比三種分布式計算技術(shù),其中最為靈活的計算方式就是志愿計算,通過使用網(wǎng)絡(luò)狀態(tài)中的每一個閑置資源,向分支志愿計算結(jié)構(gòu)傳遞相應(yīng)的分割任務(wù),隨后對眾多任務(wù)的處理結(jié)構(gòu)進(jìn)行整合后,形成完成的任務(wù)成果向上提交。在這一過程中無需網(wǎng)絡(luò)計算的數(shù)據(jù)中心介入,更是無需應(yīng)用云計算的云終端,僅僅是在host以及固定服務(wù)器的準(zhǔn)備下就能夠完成調(diào)度處理,相較于最原始的分布式計算技術(shù)本身存在著相一致的應(yīng)用理念。
解決電力大數(shù)據(jù)儲存以及計算需求,形成高性能的處理效果,在其中需要應(yīng)用到分布式技術(shù),并且僅僅是簡單的技術(shù)應(yīng)用難以形成良好的應(yīng)用效果,則需要基于分布式技術(shù)構(gòu)建起相應(yīng)的系統(tǒng)模型,從而保障電力行業(yè)能夠根據(jù)自身的需求特征,更加自主的使用到先進(jìn)的分布式計算平臺,滿足生產(chǎn)運(yùn)行過程中的大數(shù)據(jù)信息處理需求,結(jié)合相關(guān)數(shù)據(jù)庫的應(yīng)用,能夠全面解決大量數(shù)據(jù)儲存過程中的高吞吐以及并發(fā)瓶頸,從而全面解決電力大數(shù)據(jù)的計算難題。
2.1.1 分布式文件系統(tǒng)
以Hadoop框架,構(gòu)建基于電力大數(shù)據(jù)的海量儲存需求下的系統(tǒng)結(jié)構(gòu),最為關(guān)鍵的就是其中的分布式文件系統(tǒng)的應(yīng)用,建立在這一系統(tǒng)上以滿足可擴(kuò)展需求,從而保障能夠?qū)崿F(xiàn)更加良好的分布式儲存作用。分布式文件系統(tǒng)在進(jìn)行資源物理儲存的時候,并不是知己連接本地的節(jié)點,而是采用計算機(jī)網(wǎng)絡(luò)連接的方式與節(jié)點進(jìn)行連接。而以往常見的分布式系統(tǒng)則是基于Key-Value所設(shè)計的建立在硬件中應(yīng)用的運(yùn)行系統(tǒng),這樣的分布式分建系統(tǒng)本身具有較為良好的實用性以及高容錯性,因此,應(yīng)用在大數(shù)據(jù)集中具有良好的優(yōu)勢。
分布式文件系統(tǒng)中負(fù)責(zé)儲存元數(shù)據(jù)的則是獨(dú)立運(yùn)行的master,而基礎(chǔ)信息數(shù)據(jù)的儲存則是需要應(yīng)用眾多以block塊所構(gòu)建的slave結(jié)構(gòu)[3]。借助于這樣的結(jié)構(gòu),則能夠在眾多集群中部署系統(tǒng)應(yīng)用,這樣的集群數(shù)量高達(dá)成百上千,從而保障在分布式文件系統(tǒng)的作用下實現(xiàn)良好的擴(kuò)展度,能夠滿足電力運(yùn)行生產(chǎn)等眾多業(yè)務(wù)過程中的數(shù)據(jù)傳輸與儲存需求。并且,在這樣的分布式文件系統(tǒng)的作用下,能夠形成更加安全穩(wěn)定的系統(tǒng)保障,在任何情況下都能夠及時的解決故障問題。分布式文件系統(tǒng)中的文件副本能夠保障數(shù)據(jù)儲存處于安全狀態(tài),若當(dāng)前系統(tǒng)在運(yùn)行過程中出現(xiàn)任何的單點故障問題,都能夠在最短時間當(dāng)中恢復(fù)數(shù)據(jù),通過數(shù)據(jù)備份保障數(shù)據(jù)安全,避免出現(xiàn)數(shù)據(jù)丟失的現(xiàn)象。
圖2是以fastDF和nginx作為基礎(chǔ)形成的分布式文件系統(tǒng),在分布式文件技術(shù)不斷發(fā)展的過程中,其被不斷的規(guī)范化、標(biāo)準(zhǔn)化、流程化使其能夠更加系統(tǒng)的完成計算目標(biāo),進(jìn)而讓分布式文件技術(shù)在構(gòu)建系統(tǒng)的過程中形成了更加簡單的模型,并且達(dá)成了一致性的設(shè)計效果,能夠簡化各種復(fù)雜的系統(tǒng)結(jié)構(gòu)的同時,有效提升了并發(fā)量以及吞吐量。在這樣的處理模型當(dāng)中,通過多個不同的數(shù)據(jù)節(jié)點結(jié)合單一主控節(jié)點的基礎(chǔ)上形成了分布式文件的集群。在集群中每一對應(yīng)的節(jié)點均能夠?qū)崿F(xiàn)管理數(shù)據(jù)并且具備能夠儲存數(shù)據(jù)的功能,從而生成了眾多數(shù)據(jù)節(jié)點的存在。而主控節(jié)點的主要功能則是對命名文件進(jìn)行管理的同時,對能夠申請文件訪問的客戶端服務(wù)器進(jìn)行相應(yīng)的調(diào)節(jié)。分布式文件系統(tǒng)中,所形成的內(nèi)部運(yùn)行機(jī)制,主要是能夠?qū)?yīng)的數(shù)據(jù)文件進(jìn)行分割處理,從而生成多個數(shù)據(jù)塊的形式,在對應(yīng)負(fù)責(zé)管理數(shù)據(jù)的節(jié)點上進(jìn)行儲存。為了能夠更好的處理電力生產(chǎn)運(yùn)行中龐大的數(shù)據(jù)量,建立的分布式并行計算系統(tǒng)其應(yīng)用到分布式文件系統(tǒng)結(jié)構(gòu),結(jié)合計算機(jī)系統(tǒng)數(shù)據(jù)鏈的功能,完成數(shù)據(jù)的儲存以及管理,從而能夠?qū)崿F(xiàn)更加安全可靠并且吞吐量相對較高的讀寫功能。
圖2:分布式文件系統(tǒng)
2.1.2 并行計算
大規(guī)模的數(shù)據(jù)集實現(xiàn)更加穩(wěn)定的并行計算要求,可建立在由Google提出的MapReduce軟件模型的基礎(chǔ)上,保障并行計算效果。創(chuàng)建分布式并行計算平臺的過程中,引用當(dāng)前軟件架構(gòu),觀察當(dāng)前平臺結(jié)構(gòu)的整體構(gòu)成,在相對應(yīng)的體系中,MapReduce軟件模型的應(yīng)用能夠形成相對更為簡易的框架結(jié)構(gòu)上,借助于這樣的軟件,從而能夠向大量的商用機(jī)器平臺所構(gòu)成的集群中上傳任務(wù),以保障在數(shù)據(jù)并行運(yùn)算的過程中具有相對較高的容錯率。MapReduce軟件模型的應(yīng)用滿足了數(shù)據(jù)量過于龐大時的處理需求,并且能夠?qū)崿F(xiàn)平臺中多個任務(wù)的同步處理功能。SQL的復(fù)雜體現(xiàn)也能夠在這樣的軟件架構(gòu)下輕易的分解,并重新解析優(yōu)化形成對應(yīng)的處理任務(wù),促使SQL能夠?qū)崿F(xiàn)平滑轉(zhuǎn)換成為MapReduce的效果[4]。
并且在這樣的分布式并行計算平臺當(dāng)中,對優(yōu)化調(diào)度相關(guān)任務(wù)時同樣可以借助于MapReduce軟件模型實現(xiàn)。并行處理差異性業(yè)務(wù)數(shù)據(jù)的眾多任務(wù),優(yōu)化系統(tǒng)資源結(jié)構(gòu),實現(xiàn)最大化利用計算系統(tǒng)。能夠有效降低數(shù)據(jù)處理時間,解決了以往處理大量數(shù)據(jù)過程中的時間漫長問題?;贛apReduce軟件模型所構(gòu)建的并行計算平臺,能夠適應(yīng)含有眾多計算機(jī)結(jié)構(gòu)的大規(guī)模集群中應(yīng)用。并且基于實際而言,在對應(yīng)的Map任務(wù)處理計算過程中,也能夠?qū)崿F(xiàn)基于Reduce任務(wù)的同步運(yùn)行。二者運(yùn)行時僅消耗單獨(dú)的計算節(jié)點,從而有效擴(kuò)充了同一時間可同步進(jìn)行運(yùn)算的任務(wù)量,保障具有較好的運(yùn)算效率的同時,提升了運(yùn)算能力表現(xiàn)。同時在MapReduce軟件模型的作用下,每一對應(yīng)的計算節(jié)點也能夠當(dāng)做數(shù)據(jù)儲存節(jié)點應(yīng)用,從而實現(xiàn)當(dāng)前節(jié)點中數(shù)據(jù)的本地運(yùn)算,有效避免了在實際當(dāng)中由于數(shù)據(jù)量過于龐大在傳輸過程中造成網(wǎng)絡(luò)堵塞而卡頓延緩計算的現(xiàn)象。
2.1.3 多維索引
在電力行業(yè)其數(shù)據(jù)是十分多樣化的,通常在數(shù)據(jù)查詢的時候都需要進(jìn)行多維索引,才能夠保證數(shù)據(jù)的全面性和實用性。當(dāng)前,電力企業(yè)都在大規(guī)模的數(shù)據(jù)集上采用了多維索引的查詢方式,從而讓電力企業(yè)的數(shù)據(jù)查詢工作的速度得到大幅度提升,而且還能夠進(jìn)一步提高數(shù)據(jù)的準(zhǔn)確性和時效性,讓電力企業(yè)的工作效率呈現(xiàn)跨越性的改變。
當(dāng)前,多維數(shù)據(jù)查詢主要分為兩個階段。第一個階段就是Filter階段。這一階段主要是用來初步過濾數(shù)據(jù)信息的,給后續(xù)的數(shù)據(jù)篩選提供選擇的候選集。通過初步的粗選,能夠?qū)?shù)據(jù)信息快速地分類,按照要求縮小數(shù)據(jù)的范圍,給后續(xù)篩選提供候選集。在經(jīng)過第一階段過濾之后,就是Refinement階段,即細(xì)化查詢階段。在這一階段,對第一階段的數(shù)據(jù)進(jìn)行了進(jìn)一步的篩選,通過不斷細(xì)化的方式在候選集中找出更加符合要求的結(jié)果,進(jìn)而得出最終結(jié)果集。之后再將最終結(jié)果集中查詢到的數(shù)據(jù)提供給工作人員。
多維索引最常用的索引就是二級索引。二級索引是在每個數(shù)據(jù)維度中建立的索引方式,根據(jù)以往查詢的數(shù)據(jù)的次數(shù)和頻率,建立一個常用的二級索引。這樣,就可以在后續(xù)查詢的過程中,利用二級索引作為查詢的橋梁,擴(kuò)寬數(shù)據(jù)查詢的范圍,更為明確地將信息數(shù)據(jù)定位出來,使整個查詢速度提升起來,提高查詢數(shù)據(jù)的效率[5]。
分布式技術(shù)的使用主要是建立了分布式平臺,更替了傳統(tǒng)的Hadoop平臺,讓索引模式不再局限于單列索引,而是能夠多列同時進(jìn)行索引,提高了查詢系統(tǒng)的速度和準(zhǔn)確度,還讓查詢的時候能夠更加準(zhǔn)確地定位出需要的信息。與此同時,分布式平臺還徹底轉(zhuǎn)變了以往的應(yīng)用支持模式,使其能夠支持更多應(yīng)用,擴(kuò)寬了數(shù)據(jù)查詢的渠道。除了常見的二級索引之外,還引進(jìn)了增強(qiáng)二級索引,以及互補(bǔ)聚簇索引三種索引。
基于分布式技術(shù)所構(gòu)建的大數(shù)據(jù)處理系統(tǒng)其本身則是為了適應(yīng)智能電網(wǎng)發(fā)現(xiàn)下的眾多數(shù)據(jù)處理要求所形成,通過分析電力行業(yè)的相關(guān)業(yè)務(wù)數(shù)據(jù)以及邏輯結(jié)構(gòu)特征等,根據(jù)行業(yè)的先進(jìn)經(jīng)驗,從而構(gòu)建起良好的系統(tǒng)結(jié)構(gòu)。在系統(tǒng)應(yīng)用過程中,通過分布式技術(shù)的計算框架、MapReduce軟件模型的并行計算開發(fā),衍生出多為網(wǎng)絡(luò)文件索引的可能性,從而能夠適應(yīng)電力大數(shù)據(jù)的運(yùn)行要求。在數(shù)據(jù)查詢以及重塑的過程中,能夠?qū)崿F(xiàn)基于SQL以及HQL的自動翻譯以及數(shù)據(jù)自動更新等,確保能夠形成功能性更加良好的系統(tǒng)結(jié)構(gòu)。這樣的分布式并行計算平臺現(xiàn)已參與到我國眾多的電力信息采集系統(tǒng)當(dāng)中,促使原有信息采集系統(tǒng)功能有所提升,并解決了以往在運(yùn)行過程中系統(tǒng)成本相對較高的問題[6]。
2.2.1 分布式儲存環(huán)境
在分布式平臺之中,其儲存環(huán)境主要是以Hadoop框架為基礎(chǔ),并且在其上進(jìn)行擴(kuò)展優(yōu)化得到的。分布式平臺能夠之間連接到終端,并且利用終端端口采集數(shù)據(jù),使用并行ETL工具對采集來的數(shù)據(jù)進(jìn)行整理分析,將檔案類輸出有序地儲存起來進(jìn)而方便后續(xù)的計算、查詢。之后就可以使用平臺中的查詢引擎來支持平臺的數(shù)據(jù)查詢工作。然后還可以利用MapReduce并行環(huán)境讓整個數(shù)據(jù)分析工作更加的高效。由此在多個輔助工具的協(xié)助下,形成更加良好的儲存環(huán)境。
2.2.2 開發(fā)工具
分布式平臺完成數(shù)據(jù)分析的功能需要各種各樣的工具支持才能夠完成高效查詢計算的功能。當(dāng)前分布式平臺采用的主要有庫表管理工具來讓數(shù)據(jù)庫有序地儲存和分類數(shù)據(jù);索引管理工具提供更加高效的數(shù)據(jù)查詢方式;任務(wù)管理工具使查詢更加的高效;ETL管理工具優(yōu)化數(shù)據(jù)查詢和計算的速度;SQL解析工具使數(shù)據(jù)查詢更加的精準(zhǔn)。在各個開發(fā)工具的協(xié)調(diào)使用下,使分布式計算平臺的遷移和轉(zhuǎn)換更有邏輯性,優(yōu)化了平臺的索引定義以及其他功能的性能。
2.2.3 計算環(huán)境
分布式采用的計算環(huán)境主要是MapReduce并行計算環(huán)境。運(yùn)用MapReduce代碼支撐平臺的運(yùn)行業(yè)務(wù)能力,讓分布式平臺能夠更加高效地完成數(shù)據(jù)計算的工作,大大地提高了數(shù)據(jù)計算的速度。與此同時,MapReduce并行計算環(huán)境的使用液位并行ETL奠定了良好的環(huán)境基礎(chǔ),讓其能夠在有力的支撐之下,完成更大規(guī)模的數(shù)據(jù)處理工作,也讓并行計算效果得到有力的保證。此外,這種環(huán)境的使用,也能夠讓整個平臺的處理、分析以及計算功能得到全面的環(huán)境支持。
2.2.4 系統(tǒng)監(jiān)控工具
對于分布式平臺來說,其運(yùn)行狀態(tài)也需要人們加強(qiáng)重視。因此在分布式平臺之中,必然會使用系統(tǒng)監(jiān)控工具,讓系統(tǒng)能夠更加穩(wěn)定地完成相關(guān)的數(shù)據(jù)管理工作,提高數(shù)據(jù)的可靠性。與此同時,通過全面的監(jiān)控管理,分布式平臺能夠動態(tài)管理系統(tǒng)整體的運(yùn)行情況,監(jiān)控業(yè)務(wù)其他問題,以及在分布式系統(tǒng)中MapReduce任務(wù)的完成情況,從而讓用戶能夠更加及時地完成運(yùn)維管理工作,提高整個分布式平臺的數(shù)據(jù)處理可靠性,更加快速完成數(shù)據(jù)處理工作。
2.2.5 運(yùn)行調(diào)度工具
當(dāng)前分布式平臺在進(jìn)行運(yùn)行的時候,難免會隨著時間的推移出現(xiàn)問題。因此相關(guān)人員需要做好調(diào)度工作,確保在進(jìn)行任務(wù)規(guī)劃的時候,能夠充分地利用MapReduce等工具對其新房進(jìn)行合理地使用,不會因為沒有調(diào)度工具導(dǎo)致任務(wù)維護(hù)工作存在問題。與此同時,還應(yīng)該重視其不同任務(wù)之間的聯(lián)系,確保其存在足夠的依賴性和關(guān)聯(lián)性,進(jìn)而確保分布式平臺的執(zhí)行任務(wù)的時候能夠更加的準(zhǔn)確,提高任務(wù)完成的正確度。與此同時,還能夠讓平臺運(yùn)行更加的穩(wěn)定[7]。
2.2.6 并行ETL工具
并行ETL工具主要是在分布式平臺中實現(xiàn)抽取數(shù)據(jù),并進(jìn)行轉(zhuǎn)換和加載功能的工具。并行RTL工具的作用是,為關(guān)系型數(shù)據(jù)庫的建立提供有力的支持,讓分布式文件系統(tǒng)中的數(shù)據(jù)能夠更加有序地進(jìn)行儲存。與此同時,其也是支持?jǐn)?shù)據(jù)的導(dǎo)入和導(dǎo)出的關(guān)鍵部分。它能夠讓分布式平臺更加高效地完成數(shù)據(jù)管理工作,更加準(zhǔn)確的調(diào)度管理的作用,提高監(jiān)控管理的力度,使其能夠更加高效準(zhǔn)確的運(yùn)行平臺中的腳步,促進(jìn)每一個功能的穩(wěn)定性,提高平臺的性能。
2.2.7 業(yè)務(wù)應(yīng)用服務(wù)接口
分布式平臺最終的目的還是要給用戶提供服務(wù),業(yè)務(wù)應(yīng)用的服務(wù)接口是必不可少的。在分布式平臺之中,大多采用服務(wù)的形式給外部的其他系統(tǒng)提供服務(wù)接口,滿足其不同的要求。比如復(fù)雜化的數(shù)據(jù)查詢業(yè)務(wù),較大規(guī)模的數(shù)據(jù)計算業(yè)務(wù)等等。通過業(yè)務(wù)應(yīng)用接口的支持,讓整個平臺能夠更大地發(fā)揮出其功能,并且還能夠使每一個功能都得到了有效地利用,滿足用戶多樣化的需求,達(dá)到高效率、多樣化、全方位的服務(wù)目標(biāo)。
綜上所述,本文提出的使用分布式技術(shù)來優(yōu)化電力大數(shù)據(jù)高性能處理工作的方案十分有效。通過對電力大數(shù)據(jù)的概念的講述,對分布式技術(shù)的對比分析,以及將分布式技術(shù)運(yùn)用在電力大數(shù)據(jù)之中的具體情況的研究,全面地證明了分布式技術(shù)的可行性。