張麗華
(濱州市技術(shù)學(xué)院,山東 濱州 256601)
職業(yè)教育為新形的教育形式,它能夠有效地推進(jìn)大學(xué)教育的信息化和普遍化,是組建終生研習(xí)系統(tǒng)和大學(xué)教育的科學(xué)樣式。目前,職業(yè)教育的重要任務(wù)是主動(dòng)開(kāi)拓教育培訓(xùn)的新方式,加速職業(yè)教育的發(fā)展,創(chuàng)建覆蓋全國(guó)的教學(xué)培訓(xùn)網(wǎng)絡(luò),形成具有網(wǎng)絡(luò)性、公開(kāi)性與自主性的終生教學(xué)系統(tǒng)。當(dāng)前,職業(yè)教育的發(fā)展已步入平穩(wěn)的提升環(huán)節(jié),運(yùn)用一類(lèi)新的構(gòu)架組建職業(yè)教育平臺(tái),組建對(duì)策庫(kù),確保平臺(tái)可以實(shí)時(shí)適于方針的改變,已成為這個(gè)課題新的研究熱點(diǎn)。
云計(jì)算是一種通過(guò)互聯(lián)網(wǎng)來(lái)提供動(dòng)態(tài)的、互動(dòng)的、可伸縮的以及可擴(kuò)展的虛擬化資源計(jì)算模型,這種計(jì)算模型主要是通過(guò)把應(yīng)用程序部署在一個(gè)虛擬的環(huán)境下來(lái)執(zhí)行相關(guān)的任務(wù)。近幾年,隨著云計(jì)算在教育領(lǐng)域的應(yīng)用程度越來(lái)越廣泛,出現(xiàn)的應(yīng)用類(lèi)別也越來(lái)越多,特別是針對(duì)海量教學(xué)資源存儲(chǔ)方面,高校要解決當(dāng)前教學(xué)資源存儲(chǔ)方面的難題,就離不開(kāi)云計(jì)算技術(shù)。當(dāng)前高校教學(xué)資源云平臺(tái)建設(shè),主要有以下幾個(gè)特點(diǎn):1)設(shè)備利用率高,服務(wù)可靠性高;2)彈性的服務(wù),以滿(mǎn)足不同的用戶(hù)需求;3)運(yùn)營(yíng)成本低且可擴(kuò)展。
分布式文件系統(tǒng)主要有Google文件系統(tǒng)GFS、IBM的BlueCloud、亞馬遜云計(jì)算、HDFS分布式文件系統(tǒng)。
Google文件系統(tǒng)(Google File System,GFS)是一個(gè)大型的分布式文件系統(tǒng)。它為谷歌云計(jì)算提供了強(qiáng)大的海量數(shù)據(jù)存儲(chǔ)服務(wù)功能,并且緊密地結(jié)合了Chubby、MapReduce以及Bigtable等分布式計(jì)算技術(shù),是Google所有數(shù)據(jù)存儲(chǔ)服務(wù)的底層實(shí)現(xiàn)。IBM的“藍(lán)云(BlueCloud)”計(jì)劃為客戶(hù)帶來(lái)即可使用的云計(jì)算。它包括一系列的云計(jì)算產(chǎn)品,使計(jì)算不僅僅局限在本地計(jì)算機(jī)或遠(yuǎn)程服務(wù)器集群之上,它通過(guò)一個(gè)分布式的、可全球訪(fǎng)問(wèn)的資源結(jié)構(gòu),使得數(shù)據(jù)中心在類(lèi)似互聯(lián)網(wǎng)的環(huán)境下運(yùn)行計(jì)算。亞馬遜目前已經(jīng)為全球100多個(gè)國(guó)家或地區(qū)的企業(yè)或者個(gè)人提供了云計(jì)算服務(wù)的支持。AWS的迅速發(fā)展使它逐漸成為云計(jì)算領(lǐng)域的一個(gè)真正的領(lǐng)導(dǎo)者,一旦AmazonAWS官方在中國(guó)建立起云服務(wù)之后,很多國(guó)內(nèi)企業(yè)的云計(jì)算都將受到深刻的影響。
HDFS是Hadoop框架的分布式文件系統(tǒng),它是Hadoop框架的存儲(chǔ)系統(tǒng),這個(gè)文件系統(tǒng)主要是由一個(gè)分布式文件系統(tǒng)在虛擬化平臺(tái)上運(yùn)行,同時(shí)能夠與現(xiàn)有的分布式文件系統(tǒng)進(jìn)行通訊。HDFS具有很高的容錯(cuò)性,能夠輕松簡(jiǎn)便地部署在低成本的硬件設(shè)備之上。HDFS利用數(shù)據(jù)流媒體的方式來(lái)對(duì)文件進(jìn)行訪(fǎng)問(wèn),在訪(fǎng)問(wèn)分布式文件系統(tǒng)時(shí)通過(guò)主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)出任務(wù)請(qǐng)求,最終返回客戶(hù)端請(qǐng)求。
1.3.1BigTable算法
Bigtable是一種數(shù)據(jù)結(jié)構(gòu)化的分布式存儲(chǔ)系統(tǒng),這個(gè)是Google公司提出的一個(gè)分布式的存儲(chǔ)系統(tǒng),是為了處理大量的數(shù)據(jù)存儲(chǔ)而量身定做的,但是隨著云計(jì)算以及分布式文件的發(fā)展,這個(gè)分布式存儲(chǔ)系統(tǒng)的用處也在不斷地得到提升,它通常分布在成千上萬(wàn)的普通PC機(jī)上,各個(gè)節(jié)點(diǎn)的數(shù)據(jù)通過(guò)主節(jié)點(diǎn)上的服務(wù)器訪(fǎng)問(wèn)。
Bigtable是一個(gè)稀疏的、分布式的、持久化的、多維的排序映射,Bigtable的鍵有三維,分別是行鍵、列鍵和時(shí)間戳。每個(gè)數(shù)據(jù)值的映射是一個(gè)未解析的字節(jié)數(shù)組。在谷歌的Bigtable主要包含了3個(gè)重要的組件:一個(gè)鏈接的客戶(hù)端數(shù)據(jù)庫(kù),一個(gè)主服務(wù)器,最后一個(gè)就是平板電腦服務(wù)器。針對(duì)系統(tǒng)的工作負(fù)載問(wèn)題,BigTable能夠動(dòng)態(tài)地添加或者是刪除平板電腦的數(shù)據(jù),并將其更新到集群服務(wù)器當(dāng)中去。
1.3.2MapReduce
算法MapReduce的計(jì)算模型如圖1所示。
Map階段任務(wù)(job)是在輸入數(shù)據(jù)之后,對(duì)數(shù)據(jù)進(jìn)行分割,成為獨(dú)立的數(shù)據(jù)塊,通過(guò)Map任務(wù)完全并行處理的方法把數(shù)據(jù)進(jìn)行分割,輸入和輸出的數(shù)據(jù)都是用MapReduce存儲(chǔ)在文件系統(tǒng)中的。通常,MapReduce框架和分布式文件系統(tǒng)運(yùn)行在相同的一組節(jié)點(diǎn)之上,也就是說(shuō),任務(wù)調(diào)度節(jié)點(diǎn)和主節(jié)點(diǎn)通常在一起。該配置允許框架上那些有良好節(jié)點(diǎn)的數(shù)據(jù)有效地調(diào)度任務(wù),這可以使網(wǎng)絡(luò)帶寬非常有效地利用整個(gè)集群。
MapReduce框架由一個(gè)主JobTracker和每個(gè)集群節(jié)點(diǎn)的TaskTracker一起搭建,主要負(fù)責(zé)所有數(shù)據(jù)處理任務(wù)的調(diào)度,這些任務(wù)分布給不同的奴隸,主人監(jiān)控執(zhí)行,唯一負(fù)責(zé)執(zhí)行任務(wù)分配的只能是主人節(jié)點(diǎn)。
所搭建環(huán)境具體需求如下:
1)硬件環(huán)境:Master(主節(jié)點(diǎn))1臺(tái)、Slave(子節(jié)點(diǎn))3臺(tái);
2)軟件環(huán)境:操作系統(tǒng):CentOS6.5,集群的主要軟件:Hadoop1.2.1、JDK1.6.0_22、Vmwareworkstation和Eclipse3.2。
由于實(shí)驗(yàn)條件有限,本文采用4臺(tái)服務(wù)器來(lái)搭建Hadoop集群并部署存儲(chǔ)模型,進(jìn)行功能、性能等測(cè)試,主節(jié)點(diǎn)服務(wù)器(master)的IP地址為:192.168.1.185(下面簡(jiǎn)稱(chēng)master),子節(jié)點(diǎn)1:192.168.1.186(下面簡(jiǎn)稱(chēng)slave1),子節(jié)點(diǎn)2:192.168.1.187(下面簡(jiǎn)稱(chēng)slave2),子節(jié)點(diǎn)3:192.168.1.188(下面簡(jiǎn)稱(chēng)slave3),架構(gòu)規(guī)化如下:
master作為NameNode,SecondaryNameNode,JobTracker;
slave1、slave2以及slave3用來(lái)作為DataNode,TaskTracker。
2.2.1設(shè)備網(wǎng)絡(luò)設(shè)置
搭建集群網(wǎng)絡(luò)分配時(shí)以4臺(tái)小型機(jī)集群應(yīng)用程序來(lái)搭建部署主網(wǎng)。主網(wǎng)絡(luò)的服務(wù)器名稱(chēng)以TestHadoop為基礎(chǔ),后跟編號(hào)185~188。IP地址前3項(xiàng)不變,后面的項(xiàng)按照從1~4的編碼方式進(jìn)行編號(hào),如218.196.248.1。然而test1用來(lái)作為Namenode,即master(主節(jié)點(diǎn)),其他都用來(lái)作為數(shù)據(jù)節(jié)點(diǎn)Datenode,即slave(子節(jié)點(diǎn))。部署前4臺(tái)機(jī)器之前都要能夠相互ping通,如果失敗了就得修改/etc/hosts文件,把其IP地址與機(jī)器的名稱(chēng)進(jìn)行對(duì)應(yīng),例如218.196.248.2與TestHadoop2要相互ping通。還有子結(jié)點(diǎn),統(tǒng)一采用CentOS6.5操作系統(tǒng)。這4臺(tái)小型機(jī)搭建和部署的Hadoop的軟件版本以及安裝目錄結(jié)構(gòu)都得保持一致,并且用戶(hù)名也要一樣,所以,每臺(tái)機(jī)器的用戶(hù)名都統(tǒng)一設(shè)置為相同的用戶(hù)名稱(chēng)。在默認(rèn)路徑/home/hadoop/下設(shè)置用戶(hù)名為hadoop,密碼為:hadoop。
2.2.2免密碼SSH設(shè)置
SSH免密碼設(shè)置這個(gè)步驟是很重要的,因?yàn)槿绻@一步成功,以后的步驟就會(huì)順利多了。Linux通常只有Telnet。但Telnet缺點(diǎn)是溝通不能進(jìn)行加密,這種方式只能在網(wǎng)絡(luò)訪(fǎng)問(wèn)存在不安全因素的情況下可以采用。對(duì)于Hadoop集群來(lái)說(shuō),為了能夠解決這個(gè)問(wèn)題,就特別引入了一個(gè)加密的通信協(xié)議,即SSH(SecureShell)協(xié)議。這個(gè)協(xié)議通過(guò)使用非對(duì)稱(chēng)加密,使用rsa和dsa加密傳輸?shù)膬?nèi)容,可以避免網(wǎng)絡(luò)竊聽(tīng)。Hadoop過(guò)程與字母之間使用SSH,每次都需要輸入一個(gè)密碼。為了實(shí)現(xiàn)自動(dòng)化,需要進(jìn)行配置SSH免密碼設(shè)置。
2.2.3Hadoop軟件安裝
通過(guò)Hadoop用戶(hù)來(lái)登錄系統(tǒng),將安裝軟件解壓到集群內(nèi)的所有機(jī)器上,安裝完成之后再來(lái)編輯conf/hadoop-env.sh文件,首先需將Java_HOME設(shè)置為Java安裝根路徑。用Hadoop_HOME指定安裝的根路徑。修改masters以及slaves配置這一步,主要就是通過(guò)對(duì)文件/usr/local/hadoop/conf/slaves以及/usr/local/hadoop/conf/masters文件進(jìn)行修改,把數(shù)據(jù)節(jié)點(diǎn)的主機(jī)名添加到slaves的配置文件當(dāng)中,同時(shí)也把名稱(chēng)節(jié)點(diǎn)主機(jī)名添加到masters的配置文件當(dāng)中。添加的時(shí)候可以加多個(gè),每行1個(gè),機(jī)器的主機(jī)名必須已經(jīng)在每個(gè)服務(wù)器的/etc/hosts中配置好。
2.3.1初始化集群環(huán)境
在對(duì)Hadoop集群進(jìn)行安裝部署完成后,在啟動(dòng)Hadoop集群之前對(duì)Hdaoop進(jìn)行初始化操作,初始化namenode,為HDFS的第一次運(yùn)行做好準(zhǔn)備。
在Linux命令行執(zhí)行hadoop namenode-format命令來(lái)初始化namenode節(jié)點(diǎn)。不必把這個(gè)format就和磁盤(pán)格式化聯(lián)想到一起,它只是對(duì)hdfs來(lái)說(shuō)的,不會(huì)格式化文件系統(tǒng),namenode format只是初始化一些目錄和文件而已。
2.3.2啟動(dòng)Hadoop集群
在對(duì)主節(jié)點(diǎn)master結(jié)點(diǎn)配置用戶(hù)環(huán)境變量之后,通過(guò)在master主結(jié)點(diǎn)192.168.1.85上來(lái)執(zhí)行命令,啟動(dòng)hadoop集群程序,具體在Linux命令行中來(lái)執(zhí)行相關(guān)的命令啟動(dòng)Hadoop集群。執(zhí)行bin目錄下的start-all.sh,通過(guò)執(zhí)行JPS命令來(lái)查看后臺(tái)啟動(dòng)的進(jìn)程,具體執(zhí)行命令jps,如果執(zhí)行命令之后出現(xiàn)如圖2所示內(nèi)容,則說(shuō)明Hadoop啟動(dòng)成功。
圖2 正常顯示截圖
由于學(xué)?;A(chǔ)實(shí)驗(yàn)條件的限制,在搭建Hadoop分布式集群的時(shí)候,選用一臺(tái)PC機(jī)用來(lái)作為NameNode主服務(wù)器,剩余3臺(tái)PC機(jī)用來(lái)作為子節(jié)點(diǎn)服務(wù)器,通過(guò)對(duì)Linux集群環(huán)境進(jìn)行相關(guān)驗(yàn)證。本次實(shí)驗(yàn)測(cè)試的數(shù)據(jù)源來(lái)自學(xué)校的一些教學(xué)資源,以及在CSDN網(wǎng)站和網(wǎng)易公開(kāi)課等教學(xué)資源平臺(tái)上收集而來(lái)的數(shù)據(jù),本次測(cè)試所用數(shù)據(jù)為50 G的教學(xué)資源。
把所要測(cè)試文件分割成不同大小的Block進(jìn)行存儲(chǔ),然后測(cè)試對(duì)于不同節(jié)點(diǎn)處理速度有什么影響,結(jié)果見(jiàn)表1。
表1 不同數(shù)據(jù)塊大小處理速度測(cè)試結(jié)果
從測(cè)試結(jié)果可以看出,blocksize(數(shù)據(jù)塊大小)對(duì)于性能具有比較大的影響,如果將block設(shè)置得太小,就會(huì)增加job任務(wù)的個(gè)數(shù),這樣就同時(shí)也加大了任務(wù)之間協(xié)作的通訊代價(jià),從而降低整體的性能,如果把數(shù)據(jù)庫(kù)block設(shè)置得過(guò)大同樣也會(huì)阻礙job任務(wù)的并行處理機(jī)制。因此,這個(gè)數(shù)據(jù)值的大小需要根據(jù)數(shù)據(jù)大小以及數(shù)據(jù)量來(lái)綜合考慮。
為了測(cè)試集群中節(jié)點(diǎn)數(shù)對(duì)處理速度的影響,本測(cè)試采用了不同大小的文件分別在1個(gè)節(jié)點(diǎn)和3個(gè)節(jié)點(diǎn)之上進(jìn)行了測(cè)試,具體的測(cè)試結(jié)果見(jiàn)表2。
表2 兩節(jié)點(diǎn)和四節(jié)點(diǎn)進(jìn)行測(cè)試結(jié)果
從表2的測(cè)試結(jié)果可以看出,3個(gè)節(jié)點(diǎn)的明顯比1個(gè)節(jié)點(diǎn)的處理速度更快,隨著文件的增大,測(cè)試效果更加明顯。從這個(gè)測(cè)試結(jié)果可以得出,在進(jìn)行集群建設(shè)的時(shí)候,應(yīng)該考慮集群節(jié)點(diǎn)的數(shù)量,同時(shí),節(jié)點(diǎn)數(shù)的集群中處理數(shù)據(jù)的設(shè)置對(duì)于數(shù)據(jù)資源的存儲(chǔ)和處理性能有明顯影響。在設(shè)置過(guò)程中應(yīng)綜合考慮節(jié)點(diǎn)數(shù)和文件大小之間的關(guān)系。
在做這個(gè)測(cè)試之前,首先,要對(duì)原始測(cè)試數(shù)據(jù)文件進(jìn)行設(shè)置,設(shè)置好相應(yīng)的文件權(quán)值,同時(shí)還要設(shè)置集群中的NameNode主節(jié)點(diǎn)數(shù)為1個(gè),DataNode數(shù)據(jù)節(jié)點(diǎn)為3個(gè),Job子任務(wù)數(shù)為10個(gè),然后運(yùn)行,并通過(guò)測(cè)試對(duì)應(yīng)用MapReduce算法改進(jìn)前后的執(zhí)行速度進(jìn)行比較并記錄,然后通過(guò)分析得出測(cè)試結(jié)果比較改進(jìn)前后的優(yōu)勢(shì)和劣勢(shì),具體的結(jié)果見(jiàn)表3。
表3 應(yīng)用改進(jìn)型MapReduce算法的性能測(cè)試結(jié)果
表3的測(cè)試結(jié)果可以說(shuō)明,在Hadoop集群中,應(yīng)用基于改進(jìn)型的MapReduce算法模型可以明顯提升數(shù)據(jù)訪(fǎng)問(wèn)的速度以及處理性能。通過(guò)這個(gè)測(cè)試可以說(shuō)明,基于改進(jìn)型的MapReduce算法在基于云計(jì)算環(huán)境下的高校海量數(shù)據(jù)存儲(chǔ)模型中的應(yīng)用是成功的,使用這種改進(jìn)型的算法可以提升存儲(chǔ)模型的訪(fǎng)問(wèn)速度以及數(shù)據(jù)處理性能。
本文詳細(xì)介紹了云計(jì)算環(huán)境下Hadoop平臺(tái)的搭建過(guò)程以及集群的配置方法。還介紹了集群的初始化以及啟動(dòng)關(guān)閉集群的步驟,最后通過(guò)對(duì)不同數(shù)據(jù)塊、不同節(jié)點(diǎn)數(shù)以及應(yīng)用改進(jìn)型MapReduce算法模型前后的數(shù)據(jù)訪(fǎng)問(wèn)處理速度和性能進(jìn)行了詳細(xì)的分析。在部署和搭建Hadoop集群中,根據(jù)學(xué)?,F(xiàn)有的實(shí)驗(yàn)條件,搭建和部署了Hadoop完全分布式集群,并進(jìn)行存儲(chǔ)模型的測(cè)試。實(shí)驗(yàn)結(jié)果表明,基于云計(jì)算的海量教學(xué)資源數(shù)據(jù)存儲(chǔ)模型是高效且可行的。
[1] 李小龍,張宸瑞,耿斌,等.高職院校混合式教學(xué)模式改革:“MOOCs時(shí)代”的探索與啟示[J].電化教育研究,2015,36(12):52-58.
[2] 閆廣芬,張棟科.“互聯(lián)網(wǎng)+職業(yè)教育”體系架構(gòu)與創(chuàng)新應(yīng)用[J].中國(guó)電化教育,2016(8):7-13.
[3] 龔健.高職數(shù)字化教學(xué)資源體系的建設(shè)與應(yīng)用[J].計(jì)算機(jī)與網(wǎng)絡(luò),2015,41(7):42-44.
[4] 徐國(guó)慶.職業(yè)教育教學(xué)資源庫(kù)開(kāi)發(fā):?jiǎn)栴}、原理與方法[J].泰州職業(yè)技術(shù)學(xué)院學(xué)報(bào),2015,15(2):1-7.
[5] 王偉,鐘紹春,尚建新.中職示范校數(shù)字化資源體系建設(shè)及推進(jìn)策略研究[J].中國(guó)電化教育,2014(5):113-120.
[6] 周惠,曾紅,陳劍利,等.基于云計(jì)算的職業(yè)教育教學(xué)資源的研究——以“世界大學(xué)城”中湖南職教教學(xué)資源建設(shè)為例[J].職教通訊,2014(17):1-3.
[7] 魏民.提高職業(yè)教育信息化水平加快推進(jìn)現(xiàn)代職業(yè)教育體系建設(shè)[J].中國(guó)職業(yè)技術(shù)教育,2014(21):221-226.
[8] 申劍飛.基于云平臺(tái)的職業(yè)教育資源庫(kù)構(gòu)建研究[J].湖南大眾傳媒職業(yè)技術(shù)學(xué)院學(xué)報(bào),2013,13(6):53-55.
[9] 尹導(dǎo).職業(yè)教育數(shù)字化教育教學(xué)資源平臺(tái)淺析[J].中國(guó)職業(yè)技術(shù)教育,2012(17):70-75.
[10] 尹導(dǎo).關(guān)于職教數(shù)字化教育教學(xué)資源平臺(tái)的調(diào)查[J].職教論壇,2012(30):82-87.