999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Hadoop的機群系統綜合實驗項目開發*

2023-03-21 02:21:58馬立平張海燕
計算機時代 2023年3期
關鍵詞:分配計算機實驗

馬立平,張海燕

(1.西南科技大學計算機科學與技術學院,四川 綿陽 621010;2.武漢三江航天遠方科技有限公司)

0 引言

計算機體系結構實驗課程是面向計算機科學與技術、電子信息類、自動化類專業的一門專業基礎課,學生通過實驗,能較好地理解并掌握目前先進的計算機體系結構,提升對軟硬件設計的系統認識,為進一步設計具有實用價值的計算機系統打下良好的基礎。實驗項目在提高學生分析、設計和開發計算機領域復雜工程問題的能力上發揮著重要作用[1]。傳統基于模擬仿真軟件和基于FPGA 的計算機體系結構課程實驗系統沒有涉及機群系統的實驗,并不能滿足實際工程中分析、設計和開發具有機群系統需求。近年來,隨著大數據技術的快速發展,尤其是海量復雜數據分析和應用,計算機體系結構正從“數據緊跟處理器”轉向“處理器圍著數據轉”,多處理機系統的設計從多核發展到了眾核,萬兆級的以太網絡逐漸成熟,新型存儲設備層出不窮,并伴有功能日益強大的大數據處理軟件(如Hadoop)和日益豐富的軟件開發語言,使這一問題可以得到基本解決。在大數據時代背景下,針對計算機體系結構課程教學也提出了挑戰,主要表現為:應完善現有課程教學內容,增加計算機系統結構和應用的最新成果,并加大開發課程相關內容的創新性、設計型和應用型實驗項目,這也是“新工科”背景下探索計算機體系結構實驗課程教學改革的必然趨勢[2]。

1 實驗項目開發目的

Hadoop 是一種采用分布式并行的大數據處理平臺,后臺通過Hadoop 分布式文件系統HDFS 將大型文件劃分成多個片段,并分布存儲于多臺計算節點中[3],并且具有可靠性高和部署成本低的優點,是可以運行在一般計算機機群上的開源系統,支持相對較高吞吐量的大數據訪問,因此常用作處理大數據集。

傳統的計算機體系結構課程實驗,例如流水線沖突與性能分析、指令調度、緩存性能分析、多Cache 一致性、處理器的FPGA 實現等較單一,也沒有涉及機群系統內容,對于學生設計、開發計算機系統能力的提升有限。因此,迫切需要開發一個綜合實驗項目,以培養學生解決計算機領域復雜工程問題的能力,符合實際工程的需要。有目共睹,現代社會離不開大數據,大數據處理技術也得到了研究發展,并助推經濟發展、提升政府服務、完善社會治理等各個領域[4]。本文以大數據處理為切入點,開發設計了一個基于Hadoop的機群系統綜合性實驗項目,為計算機體系結構課程實驗改革提供了新思路。

2 實驗開發總體思路

傳統的計算機體系結構驗證性實驗課程旨在使學生熟悉計算機體系結構的基本原理和處理器設計流程和方法,學生在指導老師的指引下完成輸入、調試、仿真,或者進行CPU 設計輸入、仿真、下載和硬件調試等過程。這種方式在教學內容和方法上雖然缺乏一定的創新型,但對于大部分專業學生來說是可以滿足他們需求的,這也是驗證性實驗的優勢所在。

本文在設計開發基于機群系統的大數據技術處理綜合性實驗項目時,將借鑒驗證性實驗課程的優勢,并充分考慮大數據處理技術模塊可移植的特點,設計為“驗證性實驗+創新性實驗”兩大部分,從而構建“計算機體系結構基礎→提高→創新”和“計算思維—工程思維—創新思維”的遞進式、多層次實踐教學體系[5]。

具體而言,本文所開發設計的綜合性實驗項目,把基于Hadoop的機群環境搭建、MapReduce各個執行階段、Shuffle 過程的工作原理、HDFS 的分布式存儲和工作原理、以及編寫實現基于機群系統的MapReduce和HDFS 應用實例功能模塊等,作為本次所開發綜合性實驗項目的驗證性實驗內容;把對大數據的處理技術,例如實現具有局部迭代大數據處理算法、增量式分區負載均衡策略等功能模塊的編寫,作為本次所開發綜合性實驗項目的創新性(提高)實驗內容。通過這種具有工程應用、創新性及可展示實驗結果,增加學生學習的成就感,更進一步增強學生的學習興趣,提高學生動手能力,培養學生創新思維能力和工程思維能力,真正實現課程目標達成的目的。

3 綜合性實驗項目開發

基于Hadoop 的機群系統大數據處理綜合性實驗項目整體框架如圖1所示。

圖1 基于Hadoop的機群系統綜合性實驗項目整體框架圖

驗證性實驗內容分為三大模塊:機群系統部署模塊、HDFS 編程實踐模塊、MapReduce 分布式計算模塊。這部分的功能模塊實驗資源比較豐富,技術較成熟,但是后續創新性實驗內容的基礎,學生在進行實驗時可參考或移植已有的資源或技術進行編程實現,對機群系統的部署、HDFS 分布式存儲和MapReduce 分布式計算進行基本驗證。這種驗證過程旨在加深學生對設計機群系統的流程和技術方法的識記和深入理解。創新性實驗內容主要是指大數據處理模塊,可根據實驗或工程需要選擇不同的大數據處理技術以及軟件的體系結構,本文以實現具有局部迭代大數據處理算法和增量式分區負載均衡策略為例加以介紹,通過分析MapReduce 并行處理體系結構,并對其體系結構進行創新性優化調整以適應不同業務類型的大數據存儲以及處理要求。這種創新過程旨在提高學生的工程應用和創新能力,也能夠拓展學生計算機體系結構的知識面。

3.1 驗證性模塊設計

3.1.1 Hadoop機群部署模塊

本實驗采用六個節點的小規模Hadoop 機群。Hadoop 機群的節點類型主要有負責協調機群中數據存儲的NameNode 節點、存儲被拆分數據塊的DataNode節點、協調數據計算任務的JobTracker節點、負責執行由JobTracker 節點指派任務的TaskTracker節點、幫助NameNode 節點收集文件系統運行狀態信息的SecondaryNameNode 節點等共五類[6],每類節點采用普通個人計算機,有些節點可處于同一臺計算機,其計算機的配置均為8核CPU、2.1GHz主頻、16GB內存和1TB 硬盤容量,采用千兆以太網互聯。Hadoop機群部署模塊除了硬件配置之外,還需要安裝并運行Ubuntu、JDK 和Hadoop 軟件,在安裝和配置時可以直接參照Hadoop 的安裝應用指南,并對Hadoop 的體系結構、工作機制及簡單的操作命令等也需要了解[6]。怎么樣判斷一個Hadoop機群是否已經正確安裝,還需要運行基準測試程序。Hadoop 軟件有一些自帶的基準測試程序,其中用來測試HDFS 的IO 性能可用TestDFSIO 基準測試程序,用來測試MapReduce 性能的可用Wordcount測試程序,基準測試程序操作簡單,無需過多了解。測試程序運行正確,說明整個Hadoop機群部署正確,可以進行后續的實驗。

3.1.2 HDFS編程實踐模塊

本實驗需使用HDFS 分布式存儲模塊,這些模塊具有高可用性、高容錯性等優點,可以將源數據集分布式存儲在HDFS分布式文件系統中[6,7]。實驗主要通過HDFS 編程實踐模塊實現文件的過濾與合并,實驗除了上述在3.1.1節中安裝部署的軟硬件之外,還需要在Ubuntu 系統中安裝Eclipse 開發工具來完成實驗。實驗內容是假設在HDFS 文件系統中分布存放testfile1.txt、testfile2.txt、testfile3.txt、testfile4.txt、testfile5.xyz、testfile6.xyz等幾個文件,先過濾出所有的后綴名不為“.xyz”的文件,然后對過濾后的這些文件進行讀取并合,生成一個新文件,最后將新文件保存到HDFS文件系統。

完成實驗過程為:在Eclipse 中創建項目→為項目添加需要用到的JAR 包→編寫一個Java 應用程序用來實現過濾和合并任務→在確保Hadoop已經啟動,并且上面提到的六個文件已經編輯完成并存入HDFS 系統后,開始編譯運行程序→在Eclipse 中實現應用程序的部署→實驗完成。實驗完成后,可以通過“可視化”模塊提供的功能查看實驗結果,其中“可視化”模塊功能的完成可以是HDFS 命令、瀏覽器和專用的可視化工具。

3.1.3 MapReduce分布式計算模塊

MapReduce分布式計算模塊主要讓學生理解分布式并行編程,怎么樣讓分布式程序運行在機群系統并完成大規模并行處理任務。模塊使用一種并行編程模型MapReduce 來實現并行運算,MapReduce 模型使分布式編程工作得到極大地方便,它將運行于大規模機群上的復雜的并行計算過程高度抽象為兩個函數:Map 和Reduce,它將一個存儲在分布式文件系統中的數據集切分成獨立的分片(split)交予多個Map任務并行處理,編程人員在不熟悉分布式并行編程情景下也能將自己編寫的程序運行在分布式系統上[6,8]。

本實驗的內容是統計給定兩個用英文撰寫的文本文件中各個英語單詞的個數。實驗按照上述3.1.2節中安裝部署的軟硬件及編程工具。假設在HDFS 文件系統中分布存放testfile1.txt、testfile2.txt 兩個文件,實驗前先編寫Map 函數處理邏輯和Reduce 函數處理邏輯,其兩個函數的處理邏輯可參考可得成就資源[6]。

完成實驗過程為:在Eclipse 中創建項目→為項目添加需要用到的JAR 包→利用已準備好的Map 處理邏輯和Reduce 處理邏輯編寫一個Java 應用程序用來統計兩個文件中各個英語單詞的個數→在確保Hadoop已經啟動,并且上面提到的兩個文件已經編輯完成并存入HDFS 系統后,開始編譯運行程序→在Eclipse 中編譯并打包代碼→實驗完成。實驗完成后,可以通過“可視化”模塊提供的功能查看實驗結果,其中“可視化”模塊功能和3.1.2節中相同。由于MapReduce分布式計算比較復雜,熟練運用它并不一時之事,在實驗教學過程中,此模塊可以參考可得的成熟資源,要求學生通過利用現有資源能夠熟練應用較為合理。

3.2 創新性模塊設計

3.2.1 具有局部迭代性的大數據處理算法

MapReduce分布式計算模型在處理具有數據局部性特征的高維數據和圖數據時,需要進行多次迭代計算,這會導致MapReduce 分布式計算模型中大量數據遷移,從而增加數據節點之間的網絡通信使系統性能下降。為了使得MapReduce 分布式計算模型能夠更好地支持這類數據的數據挖掘功能,本實驗通過合理的方式利用數據內部本身所具有的緊密連續性,將原數據合理劃分成相關聯的不同子圖,之后將其作為Map 映射函數的計算處理單位,使得本地Map 函數能完成大部分本地各個子圖的計算,再由Reduce歸約函數協調和各個子圖之間的全局計算[9]。

完成實驗過程為:按照上述3.1.2節中安裝部署的軟硬件、編程工具和HBase 數據庫→在Eclipse 中創建項目→為項目添加需要用到的JAR 包→將PageRank算法應用于具有局部迭代性的MapReduce 分布式計算模型,使所有內部節點在Map 函數內完成迭代計算,剩余的外部節點在Reduce 函數內完成計算,編寫相應的Map 處理邏輯和Reduce 處理邏輯,并編寫Java應用程序用于完成對給定圖數據集或高維數據集進行計算→在確保Hadoop已經啟動,并且HBase數據庫已啟動,開始編譯運行程序→實驗完成。實驗完成后,可以再將PageRank 算法應用于傳統的Hadoop 平臺,并利用相同的數據集和硬件平臺進行實驗,對比兩次實驗的結果,分析其性能優劣。由于MapReduce 分布式計算比較復雜,在實驗教學過程中,此模塊可參考一些成熟資源,要求學生利用現有資源實現一個新的基于并行處理框架的大數據處理系統。

3.2.2 基于增量式分區負載均衡策略

MapReduce分布式計算模型在對數據進行劃分時采用的是一次分區機制,就是僅對每個元組進行一次并統一時間的劃分方式,同時,還要嚴格按照Reducer與分區1 對1 的方式進行元組分配,當處理密集數據時,導致Reduce端常會出現數據傾斜的問題。要解決這種數據劃分的不均衡,有多種方法[10,11],本實驗采用基于增量式分區負載均衡策略[10]。

首先,在Map 段產生比Reducer 個數多的細粒度分區,并在Mapper運行時,由Counter功能模塊統計各細粒度分區的數據量,將統計結果匯總并寫入本地Buffer 中,通過Hadoop 的心跳機制,將各Mapper 統計匯總信息發送給Master 節點,Master 節點就能獲取全局的分區分布信息。其次,Master 節點再根據獲取到的全局的分區分布信息,由JobTracker 篩選出一部分還未分配的細粒度分區分配到Reducer端。當“第一次分配”時,要先篩選出最合適的分區分配到Reducer端,“第一次分配”完成后,經過一定的時間間隔,第二次分區分配被觸發,由于第一次分配后可能已經出現了數據傾斜現象,因此第二次分區分配應考慮被“第一次分配”已分配分區的情況,此時,利用已準備好的代價評估模型分析當前系統的數據均衡程度并進行調整,對本次篩選出的細粒度分區分配到各Reducer上并,使本次分配后實現整體數據的均衡性。按此方法,每經過一定時間間隔后,再按照這種先篩選、再分配的方式進行多個輪回。最后,所有細粒度分區在執行Reduce 函數前都被分配到了Reduce 端,從而使各個Reducer 接收數據總量達到均衡。模型實現過程如圖2所示。

圖2 增量式分區負載均衡MapReduce分布式計算模型

本實驗的內容是在原生Hadoop 系統實現增量式分區負載均衡策略,具體實現的技術細節如下。①在原架構基礎上增加三個功能模塊,即負責統計結果收集的Counter 模塊、分配微分區的Decisions Model 模塊、負責多微分區合并為細粒度分區的Add NewPartition 模塊,并且Counter 模塊在原系統的MapTask 類中實現、Decisions Model 模塊在原系統的JobTracker 類中實現、Add NewPartition 模塊在原系統的Reduce Task 類中實現。同時增加Assign Plan 和Counter Table 兩類結構體,用于分區分配向量和分區統計向量的實現。②將Counter 模塊添加至各Mapper的運行線程中,將微分區的統計結果以一維數組的形式放到Local Counter Table 中并駐留內存,同時通過將Local Counter Table 加入至Heartbeat 中來減少JobTracker 和Task 之間的通信開銷。③在JobTracker類中添加了負責微分區篩選和分配的Decisions Model模塊,用于實現增量式分區分配過程,所有Task的Local Counter Table 的匯總由Global Counter Table 負責,并將分配計劃添加至Global Assign Plan,在每次決策完成后將更新的Global Assign Plan 增加至下次的Heartbeat通信。④Reduce Task解析Heartbeat,獲得屬于自身的分區信息,Reduce Task 類中的Add NewPartition 模塊漸進地將分區信息增加至Local Partition,然后將分區信息再轉換成分區的存儲路徑并存放至MapOutput Location。Add NewPartition 模塊能夠完成Reducer 初始化時的多分區分配,也能夠實現在Reducer 讀數據時的增量式分配,從而實現漸進式分配過程。⑤在整個作業輸入完成后,Reduce()函數開始執行,將執行結果寫入HDFS。

為驗證在原生Hadoop 系統實現增量式分區負載均衡策略的有效性,可通過經典的WordCount 算法應用于原生Hadoop 系統和此系統,完成實驗過程與3.2.1類似。

4 結束語

本文充分利用Hadoop 分布式系統能夠進行分布式高速處理大數據這一優勢,設計了機群系統教學綜合性實驗項目。該實驗項目由驗證性實驗和創新性實驗兩部分組成,兼顧學生對于計算機體系結構的基礎掌握和能力提升。該實驗項目可以更好地讓學生從理論和實踐上掌握機群系統設計及實現過程,可以讓學生在實驗中獲得完整的工程應用性項目設計的理念、流程及方法,增強學生的學習興趣和創新思維能力,既符合計算機體系結構實驗課程培養目標,也符合“新工科”工程教育理念。

具有并行處理和分布式計算體系結構的大數據系統(Hadoop、MapReduce 等)是進行教學研究和工程訓練較為理想平臺[6],將其應用于《計算機體系結構》課程的并行和分布式處理系統實驗教學,從而科學合理的設計、組建實驗項目,通過編程影響實驗結果,學生可以發揮自己的想象,實現實驗的創新性目標,使其達到最佳效果。同時,激發學生學習興趣,鍛煉其解決實際工程問題的能力,這也是“新工科”背景下高校教學改革的一個重要方面。

猜你喜歡
分配計算機實驗
記一次有趣的實驗
計算機操作系統
應答器THR和TFFR分配及SIL等級探討
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
做個怪怪長實驗
遺產的分配
一種分配十分不均的財富
績效考核分配的實踐與思考
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
NO與NO2相互轉化實驗的改進
主站蜘蛛池模板: 一级在线毛片| 亚洲AⅤ波多系列中文字幕| 毛片免费视频| 国产美女久久久久不卡| 欧美在线视频不卡第一页| 亚洲国产日韩欧美在线| 国产最新无码专区在线| 亚洲成人网在线观看| 欧美激情网址| 亚洲天堂成人| 欧美日韩成人在线观看| 成人年鲁鲁在线观看视频| 人人澡人人爽欧美一区| 视频一本大道香蕉久在线播放| 狠狠做深爱婷婷综合一区| 波多野结衣第一页| 国产噜噜在线视频观看| 毛片网站免费在线观看| 成年片色大黄全免费网站久久| Jizz国产色系免费| 久久综合伊人 六十路| 亚洲熟妇AV日韩熟妇在线| 国产成人一区二区| 无码视频国产精品一区二区| 爽爽影院十八禁在线观看| 日本人妻丰满熟妇区| 国产亚洲精品97AA片在线播放| 午夜福利视频一区| 欧美一区二区三区不卡免费| 日本久久久久久免费网络| 亚洲欧美日本国产综合在线| 久久这里只有精品免费| 亚洲精品卡2卡3卡4卡5卡区| 久久人妻系列无码一区| 蜜桃视频一区二区| 久久精品娱乐亚洲领先| 九色视频线上播放| 日本一区二区三区精品视频| 欧美一级黄色影院| 国产哺乳奶水91在线播放| 久久精品无码专区免费| 欧美一区二区三区国产精品| 熟女日韩精品2区| 中文字幕av无码不卡免费| 成人在线亚洲| 日韩成人在线视频| 四虎精品国产AV二区| 欧美精品亚洲二区| 成人夜夜嗨| 99re精彩视频| 亚洲高清日韩heyzo| 日本道综合一本久久久88| 国产一区二区三区在线无码| 国产亚洲精品97AA片在线播放| 人妻无码中文字幕一区二区三区| 91系列在线观看| 国产高清毛片| 福利国产在线| 91色综合综合热五月激情| 男女性午夜福利网站| 九九视频免费在线观看| 婷婷色狠狠干| 亚洲成人动漫在线| 91国内视频在线观看| 久久久久无码精品| 国内毛片视频| 亚洲精品在线影院| 爱爱影院18禁免费| 国产一级在线观看www色| 免费中文字幕一级毛片| 丁香六月综合网| 很黄的网站在线观看| lhav亚洲精品| 一区二区三区四区精品视频| 国产成人亚洲综合a∨婷婷| 久久中文字幕av不卡一区二区| aaa国产一级毛片| 激情六月丁香婷婷四房播| 国产在线自乱拍播放| 人人91人人澡人人妻人人爽 | 国产91精选在线观看| 欧美成人手机在线视频|