陳 偉
(宿州職業(yè)技術(shù)學(xué)院 計算機系,安徽 宿州 234101)
基于hadoop的高校私有云平臺建設(shè)研究
陳 偉
(宿州職業(yè)技術(shù)學(xué)院 計算機系,安徽 宿州 234101)
隨著教育信息化的不斷推進,高校信息化建設(shè)在飛速發(fā)展的同時也面臨著業(yè)務(wù)系統(tǒng)混亂及海量數(shù)據(jù)存儲等問題,現(xiàn)有的校園網(wǎng)絡(luò)平臺已不能滿足日益增長的信息化需求.針對這些問題,本文在研究hadoop的基礎(chǔ)上結(jié)合云計算技術(shù),提出構(gòu)建高校私有云平臺,以實現(xiàn)海量數(shù)據(jù)存儲和高速處理,同時為高校各種業(yè)務(wù)系統(tǒng)提供統(tǒng)一的基礎(chǔ)設(shè)施平臺.
云計算;高校;Hadoop;私有云
1.1 云計算概述
云計算開創(chuàng)了信息技術(shù)的新模式,已經(jīng)不僅僅是一種技術(shù),更是一種商業(yè)計算模型.云計算將大量的計算任務(wù)分布在虛擬化的資源池上,使用戶可以像使用水電一樣的在資源池中獲得各種資源和服務(wù),隨時獲取,按需使用,按使用付費.這里的資源池即是“云”,是虛擬化的計算資源,由大量計算服務(wù)器、存儲服務(wù)器、寬帶資源等構(gòu)成.云計算將這些大量的計算資源集合起來通過軟件方式實現(xiàn)資源自動管理,無須人工干預(yù).用戶按需獲取的資源主要指信息服務(wù)、計算能力和存儲空間[1]57-59.
與傳統(tǒng)計算模式不同,云計算是基于互聯(lián)網(wǎng)的計算模式,數(shù)據(jù)和程序主要是保存在互聯(lián)網(wǎng)上即“云端”,與本地機器的存儲和計算能力等關(guān)系不大,云客戶端只要能接入互聯(lián)網(wǎng),就可以隨時隨地訪問云端提供的服務(wù).
1.2 公有云和私有云
公有云是將服務(wù)和基礎(chǔ)設(shè)施提供給組織和企業(yè),提供公共的云計算服務(wù)和存儲[2]34-39.公有云把數(shù)據(jù)和應(yīng)用程序存放在公有云的平臺上,用戶可即付即用,無須進行基礎(chǔ)設(shè)施的前期投資和建設(shè),公有云屬于開放的云平臺.
私有云屬于自己搭建的云平臺,可以在原有網(wǎng)絡(luò)設(shè)備基礎(chǔ)上進行整合部署,提高資源利用率,成本較低,無須支付額外費用,能夠根據(jù)實際需求進行安全策略定制,實現(xiàn)系統(tǒng)的安全和可靠性,對于高校云平臺而言,私有云是很好的選擇.本文選擇使用開源的云計算系統(tǒng)Hadoop立足于現(xiàn)有的校園網(wǎng)絡(luò)設(shè)備和資源自行搭建私有云平臺,既節(jié)省成本又提高了資源利用率.
1.3 教育云
云計算應(yīng)用于教育領(lǐng)域,可以在課堂教學(xué)、實驗教學(xué)和輔助教學(xué)等諸多方面提供高效服務(wù)[3]79-86.教育云是云計算與教學(xué)結(jié)合的產(chǎn)物,是新技術(shù)應(yīng)用于教育領(lǐng)域的體現(xiàn),利用云計算技術(shù),對多種資源進行整合優(yōu)化統(tǒng)一部署,實現(xiàn)高效率的資源共享.同時,教育云也為高校辦公提供了更為高效的平臺支撐,教務(wù)、財務(wù)、總務(wù)等業(yè)務(wù)應(yīng)用可以共享基礎(chǔ)平臺,實現(xiàn)資源優(yōu)化共享,通過云平臺的分布式計算機存儲,提高數(shù)據(jù)處理效率.
Hadoop 是Apache公司的一個分布式云計算平臺,作為一個開源項目,Hadoop為云計算研究提供了很好的平臺支撐,得到了學(xué)術(shù)界和商業(yè)界的廣泛關(guān)注,同時成為構(gòu)建私有云的主流平臺之一[4]24-29,[5]22-27.
Hadoop發(fā)展至今經(jīng)歷了第一代Hadoop1.x和第二代Hadoop2.x.Hadoop1.x主要以HDFS (Hadoop Distributed File System)分布式文檔系統(tǒng)和MapReduce (Google Map Reduce 的開源實現(xiàn))分布式平行計算框架為核心.由于Hadoop1.x在擴展性、穩(wěn)定性、資源管理等方面存在問題,對Hadoop1.x進行了改進,于2010年發(fā)布了第二代Hadoop2.x,新增加了核心組件Yarn框架.
2.1 HDFS分布式文件系統(tǒng)
HDFS是Hadoop分布式文件系統(tǒng),是Hadoop生態(tài)系統(tǒng)的核心組件.HDFS分布式文件系統(tǒng)能夠運行在廉價的硬件上,部署成本較低,能夠進行故障檢測與恢復(fù),具有高級容錯功能,采用流式數(shù)據(jù)訪問,注重數(shù)據(jù)訪問的高吞吐量,能夠處理大數(shù)據(jù)集.
在Hadoop2.x中HDFS與之前有很大的變化,Hadoop1.x中HDFS包含一個主節(jié)點NameNode和若干個子從節(jié)點DataNode,新版本中HDFS的管理節(jié)點NameNode可以以集群的方式同時部署多個,并且互相獨立,解決了單點故障問題,增強了NameNodes的水平擴展能力和高可用性.NameNode節(jié)點負責(zé)管理元數(shù)據(jù),存儲文件系統(tǒng)的名字空間及數(shù)據(jù)塊到具體DateNode的映射.節(jié)點DataNode作為集群的存儲節(jié)點需要在所有的NameNode中進行注冊,定時向NameNode反饋信息,并且處理NameNode下達的操作指令,負責(zé)實際數(shù)據(jù)的存儲.HDFS分布式文件系統(tǒng)架構(gòu)如圖1所示.
圖1 HDFS分布式文件系統(tǒng)
HDFS系統(tǒng)架構(gòu)主要包括兩部分:命名空間Namespace 和 塊存儲Block Storage.Block Pool為存儲塊池,是塊的集合,每個Block Pool與一個Namespace相對應(yīng),屬于同一Namespace的一組塊,Block Pool之間是獨立的互不影響,DataNode節(jié)點為所有的Block Pool存儲塊.對于hadoop來說,NameNode的作用至關(guān)重要,好比計算機的CPU,一旦停止工作整個集群系統(tǒng)就會癱瘓且不可恢復(fù).為了保證集群正常運轉(zhuǎn),在HDFS中通過同時啟動兩個NameNode來解決單點故障問題,這兩個NameNode并不是同時工作,而是把一個設(shè)為工作(Active)模式,另個設(shè)為待命的(Standby)模式.系統(tǒng)工作過程中,兩個NameNode要進行數(shù)據(jù)的同步,DataNode向兩個NameNode同時反饋塊的信息,并通過Zookeeper來進行心跳監(jiān)測監(jiān)控,當(dāng)處于工作模式的NameNode出現(xiàn)宕機失效時,可以快速切換到待命的NameNode,保證系統(tǒng)正常且數(shù)據(jù)不會丟失.
2.2 MapReduce分布式計算(MR2)
MapReduce是Hadoop中的并行計算框架,是一種編程模型,用于海量數(shù)據(jù)分布式計算.目前在Hadoop2.x中使用的是第二代MapReduce框架(MR2).MR2包括3部分內(nèi)容:編程模型、數(shù)據(jù)處理引擎和運行時環(huán)境.編程模型是把輸入數(shù)據(jù)解析為鍵值對,通過Map()函數(shù),映射成新的鍵值對,再通過Reduce()函數(shù)將key相同的value進行規(guī)約處理;數(shù)據(jù)處理引擎由MapTask和ReduceTask組成,負責(zé)Map階段和Reduce階段的數(shù)據(jù)處理;運行時環(huán)境由資源管理系統(tǒng)YARN和作業(yè)控制進程ApplicationMaster構(gòu)成,其中,YARN負責(zé)資源管理和調(diào)度,而ApplicationMaster僅負責(zé)一個作業(yè)的管理.
2.3 YARN框架
Yarn是分布式的資源管理系統(tǒng),用于資源管理和作業(yè)的調(diào)度,是為了彌補第一代MapReduce框架的不足而產(chǎn)生的新框架.Yarn具有通用性,不僅可以用于MapReduce計算框架還可以作為其他框架如Spark等的管理平臺.Yarn的架構(gòu)如圖2所示.
ResourceManager(RM)在整個集群中只有一個,作為全局資源管理器,負責(zé)系統(tǒng)全部資源的管理和調(diào)度,其中包括調(diào)度器(Scheduler)和應(yīng)用管理器(Applications Manager).Scheduler是RM的核心,主要負責(zé)給應(yīng)用程序調(diào)配資源,Applications Manager負責(zé)應(yīng)用程序監(jiān)控、狀態(tài)跟蹤、失敗任務(wù)重啟等工作.
NodeManager(NM)是每個節(jié)點上的管理器,負責(zé)監(jiān)控節(jié)點資源情況,并發(fā)送給RM,同時負責(zé)執(zhí)行來自AM的任務(wù)請求.
ApplicationMaster(AM)是框架特殊的庫,負責(zé)與RM的Scheduler協(xié)商進行資源的申請,并且與NM一塊監(jiān)控資源使用及任務(wù)執(zhí)行情況.
Containe是資源的分配容器,包括cpu,內(nèi)存,磁盤等屬性.
圖2中Yarn的工作流程可描述如下:
RM通過NM定時搜集Node的信息;Client向RM提交計算作業(yè);RM在一個Node上產(chǎn)生一個AM;AM向RM申請計算資源,RM根據(jù)資源狀況以及分配策略,分配合適的資源(container)給AM;AM得到資源后,管理這些資源,完成計算任務(wù).
3.1 高校私有云架構(gòu)模型
高校私有云架構(gòu)模型如圖3所示.
圖2 Yarn架構(gòu)圖
圖3 高校私有云平臺計算模型
用戶層是用戶與云平臺進行交互的接口,用戶通過Web瀏覽器向平臺發(fā)送請求,平臺通過用戶驗證后返回信息給用戶;業(yè)務(wù)邏輯層主要用于Web服務(wù)器程序和存儲系統(tǒng)之間的通訊,與底層集群建立連接,其功能主要包括用戶管理、任務(wù)管理、資源管理等;基礎(chǔ)設(shè)施層是整個云平臺應(yīng)用的基礎(chǔ)環(huán)境,由多臺廉價的計算機組成,屬于系統(tǒng)的底層部分,通過Hadoop集群構(gòu)建,為系統(tǒng)提供分布式存儲和海量資源數(shù)據(jù)計算.下面就通過部署基礎(chǔ)設(shè)施層來對基于Hadoop的高校私有云平臺進行研究.
3.2 hadoop基本平臺搭建
hadoop平臺有3種搭建方式,分別是單機模式安裝、偽分布式安裝、全分布式安裝.本文采用全分布式安裝方式,通過3臺普通機器進行模擬集群部署.下面介紹集群部署步驟.
3.2.1 集群安裝配置
集群安裝采用虛擬機的方式進行,虛擬機軟件采用VMware 9.0.2版本,虛擬機上安裝3個客戶機系統(tǒng)作為集群計算節(jié)點,操作系統(tǒng)安裝CentOS-6.8,集群節(jié)點主機名和IP分配如表1.
表1 集群節(jié)點主機名和IP分配表
為了保證集群中每臺機器能夠相互訪問,需要以下操作:
1) 關(guān)閉防火墻:在每臺主機上執(zhí)行service iptable stop和chkconfig iptables off兩條命令.
2) 關(guān)閉selinux:通過修改配置文件/etc/sysconfig/selinux/文件實現(xiàn),把文件中SELINUX值修改為disabled,重啟系統(tǒng)生效.
3) 修改每臺主機/etc/hosts文件,設(shè)置主機名和IP地址的對應(yīng)關(guān)系,文件內(nèi)容修改如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.128 hadoop01.cw
192.168.1.129 hadoop02.cw
192.168.1.130 hadoop03.cw
3.2.2 配置SSH實現(xiàn)節(jié)點無密碼登陸
1) 在hadoop01上生成密鑰
[root@hadoop01 ~]# ssh-keygen-t rsa
2) 拷貝密鑰到其他機器
[root@hadoop01 ~]# ssh-copy-id 192.168.1.129
[root@hadoop01 ~]# ssh-copy-id 192.168.1.130
同樣方法在hadoop02和hadoop03上生成密鑰并拷貝到其他機器,即可實現(xiàn)3臺機器無密碼登陸.
3.2.3 Jdk環(huán)境配置
由于Hadoop是采用Java開發(fā)的,需要在每臺主機安裝JDK的環(huán)境.
1)在oracle官網(wǎng)下載jkd安裝包jdk-8u121-linux-i586.gz,解壓至/home/softwares/目錄.
2)配置環(huán)境變量,在/etc/profile文件尾部添加以下語句.
export JAVA_HOME=/home/softwares/jdk1.8.0_121
export PATH=$PATH:$JAVA_HOME/bin
3)刷新配置,使環(huán)境變量生效,命令為source /etc/profile.
4)通過命令java -version驗證是否安裝成功,若顯示java version "1.8.0_121"等信息則說明安裝成功.
5)使用scp命令發(fā)送jdk文件至其他機器,同時在每臺機器配置環(huán)境變量.
3.3 hadoop安裝與配置
3.3.1 下載安裝
在hadoop01上下載hadoop-2.7.3.tar.gz,解壓縮至/home/softwares/目錄即可.
3.3.2 配置文件修改
Hadoop配置文件路徑為/home/softwares/hadoop-2.7.3/etc/hadoop,通過以下步驟進行配置文件的修改.
1)修改hadoop-env.sh文件,這是hadoop 的環(huán)境變量文件,需要設(shè)置JDK的安裝位置,該文件第25行配置為export JAVA_HOME=/home/softwares/jdk1.8.0_121.
2)修改文件 core-site.xml 配置如表2.
表2 core-site.xml配置信息
3)修改文件 hdfs-site.xml 配置如表3.
表3 hdfs-site.xml 配置信息
4)修改 mapred-site.xml 配置文件 配置如表4.
表4 mapred-site.xml 配置信息
5)修改Yarn-site.xml 配置文件 配置如表5.
表5 Yarn-site.xml配置信息
6)修改slaves如下
192.168.1.128
192.168.1.129
192.168.1.130
3.3.3 hadoop啟動
1)格式化hadoop,命令如下:
[root@hadoop01 hadoop-2.7.3]# bin/hadoop namenode -format
2)發(fā)送hadoop01主機上hadoop文件至其他兩臺機器,如下操作:
[root@hadoop01 softwares]# scp -r hadoop-2.7.3/ 192.168.1.129:/home/softwares/
[root@hadoop01 softwares]# scp -r hadoop-2.7.3/ 192.168.1.130:/home/softwares/
3)啟動相關(guān)服務(wù)
由上可知,namenode節(jié)點配置在192.168.1.128即hadoop01上,在此主機上運行sbin/start-dfs.sh命令啟動hadoop,運行sbin/mr-jobhistory-daemon.sh start historyserver啟動jobhistory.在hadoop02上運行sbin/start-yarn.sh啟動yarn,最后可通過jps命令查看每臺主機運行進程,結(jié)果如下:
4210 Jps
3938 NodeManager
此時通過瀏覽器也可進行web頁面查看,如在瀏覽器輸入地址http://192.168.1.128:50070查看hdfs的namenode運行情況,輸入http://192.168.1.129:8088查看yarn運行情況[6]60-72.
3.3.4 測試與分析
以WordCount詞頻統(tǒng)計為例,測試系統(tǒng)是否運行正常,包括HDFS存儲及MapReduce分布式計算.
1)在/home/datas下創(chuàng)建文本文件test.txt,內(nèi)容為“hello world this is a test this is a world a a is a world”.
2)上傳test.txt文件至HDFS,命令為bin/hdfs dfs -put /home/test.txt /chenwei-test.在瀏覽器輸入http://192.168.1.128:50070查看hdfs中上傳文件情況,如圖4所示.
圖4 HDFS文件系統(tǒng)目錄
3)執(zhí)行詞頻統(tǒng)計命令WordCount,把統(tǒng)計結(jié)果放入/chenwei-test-out中,命令為 bin/hadoop jar share/hadoop/MapReduce/hadoop-MapReduce-examples-2.7.3.jar wordcount / chenwei-test / chenwei-test-out.打開chenwei-test-out目錄可以看到part-r-00000文件,即為統(tǒng)計結(jié)果.
4)執(zhí)行bin/hdfs dfs -cat /chenwei-test-out/part-r-00000查看詞頻統(tǒng)計結(jié)果如圖5.
圖5 詞頻統(tǒng)計結(jié)果
從以上測試來看,HDFS分布式文件系統(tǒng)能夠正常上傳存儲文件,yarn框架能夠進行任務(wù)的調(diào)度和管理,在yarn框架上實現(xiàn)了MapReduce分布式計算,集群部署完全能夠正確運行.至此,基于hadoop私有云平臺搭建成功.
云計算技術(shù)在教育領(lǐng)域中的應(yīng)用,促進了教育信息化的發(fā)展.本文通過基于hadoop高校私有云平臺的構(gòu)建,為高校信息化建設(shè)提供了基礎(chǔ)平臺,可以把原有業(yè)務(wù)系統(tǒng)移植過來,實現(xiàn)統(tǒng)一管理和部署,還可以在此平臺基礎(chǔ)上開發(fā)相關(guān)應(yīng)用服務(wù)高校、服務(wù)師生,如教學(xué)平臺、資源管理平臺等,這將有待于進一步深入研究.
[1] 劉 鵬. 云計算(第二版)[M]. 北京:電子工業(yè)出版社,2011.
[2] 薛 嘉. 云計算下教學(xué)互動平臺的探究和設(shè)計[D].成都:西南交通大學(xué),2014.
[3] 虛擬化與云計算小組. 云計算實踐之道:戰(zhàn)略藍圖與技術(shù)架構(gòu)[M].北京:電子工業(yè)出版社,2011.
[4] 翟永東. Hadoop分布式文件系統(tǒng)(HDFS)可靠性的研究與優(yōu)化[D].武漢:華中科技大學(xué),2011.
[5] 饒丹鵑. 多媒體教學(xué)資源云共享平臺設(shè)計研究[D].南京:南京師范大學(xué),2013.
[6] 劉 鵬. 實戰(zhàn)Hadoop開啟通向云計算的捷徑[M].北京:電子工業(yè)出版社,2011.
ResearchontheConstructionofPrivateCloudPlatforminCollegesBasedonHadoop
CHEN Wei
(SuzhouVocationalTechnicalCollege,Suzhou234101,China)
With the advancement of educational informatization, the informatization construction in colleges has developed rapidly. Meanwhile, it is facing many problems such as chaos in business system and mass data storage issues, etc. Thus, the existing campus network platforms cannot meet the growing demands for informatization. To solve these problems, the author proposes to build a private cloud platform basing on researches on Hadoop which is combined with cloud computing technology to achieve mass data storage and high-speed processing as well as to provide a unified infrastructure platform for business systems in colleges.
cloud computing; Colleges; Hadoop; private cloud platform
G647.24;TP391.6
A
1671-8127(2017)05-0089-06
2017-08-02
安徽省高校自然科學(xué)研究重點項目“基于云平臺的職業(yè)教育資源管理研究”(KJ2016A778);安徽省高校優(yōu)秀青年人才支持計劃重點項目“云計算環(huán)境下高職教育教學(xué)平臺的構(gòu)建”(gxyqZD2016586);安徽省高校自然科學(xué)研究重點項目“智能算法在群體動畫制作中的應(yīng)用與創(chuàng)新研究”(KJ2016A781);安徽省質(zhì)量工程項目“基于Blackboard的高職程序設(shè)計類課程翻轉(zhuǎn)課堂教學(xué)模式研究——以ASP.NET課程為例”(2016jyxm1039)
陳 偉(1982- ),男,安徽阜陽人,宿州職業(yè)技術(shù)學(xué)院講師,碩士,主要從事計算機網(wǎng)絡(luò)研究。
[責(zé)任編輯冰竹]