摘 要:當今時代,計算技術(shù)已進入以網(wǎng)絡(luò)為中心的時代,很多企業(yè)或機構(gòu)的網(wǎng)絡(luò)都需要比較長時間的服務(wù),甚至有些業(yè)務(wù)不能宕機。因此為了避免任何服務(wù)中斷和關(guān)鍵性的數(shù)據(jù)丟失造成的商業(yè)損失,提高網(wǎng)絡(luò)不間斷服務(wù),提供高可用、可擴展的網(wǎng)絡(luò)集群服務(wù),我們需要設(shè)計與實現(xiàn)基于Linux的網(wǎng)絡(luò)集群服務(wù)。在本次研究中我們從需求分析,集群結(jié)構(gòu),設(shè)計原則等這幾個角度上出發(fā),闡述了使用Hadoop集群框架技術(shù)的網(wǎng)絡(luò)集群服務(wù)的設(shè)計方法和實現(xiàn)原理。
關(guān)鍵詞:Linux;Hadoop集群;高可用;可擴展
一、需求分析
在網(wǎng)絡(luò)業(yè)務(wù)量爆炸性增長的時代,網(wǎng)絡(luò)帶寬和服務(wù)器端都迎來了巨大的挑戰(zhàn)?;诰W(wǎng)絡(luò)的應(yīng)用正以驚人的速度增長,同時,越來越多的網(wǎng)絡(luò)客戶需要一周7天,一天24小時不間斷的網(wǎng)絡(luò)服務(wù)?;贚inux的網(wǎng)絡(luò)集群服務(wù)可以解決諸如此類的問題,保持服務(wù)的可持續(xù)性,構(gòu)建高可用性、可拓展性、負載均衡的集群技術(shù)。此外,平衡各計算機之間的負載提高整個系統(tǒng)的性能,選擇開放自由的Linux系統(tǒng),可以運行于極為普及的PC機上,不需要購買昂貴的專用硬件設(shè)備,節(jié)約非常大的成本,也方便于后期的維護和管理。
集群的高可用性,即是在硬件和軟件上都有冗余,通過檢測軟硬件的故障,將故障屏蔽,由存活結(jié)點提供服務(wù),可實現(xiàn)高可用性。即使部分硬件和軟件發(fā)生故障,但整個系統(tǒng)的服務(wù)必須是7*24小時運行的。當發(fā)現(xiàn)一個模塊失敗時,要這模塊上提供的服務(wù)遷移到其他模塊上。在理想狀況下,這種遷移是即時的、自動的。
集群的可擴展性能,集群系統(tǒng)中的結(jié)點數(shù)目可以增長到幾千個,乃至上萬個,其伸縮性遠超過單臺超級計算機。當服務(wù)器負載壓力增長的時候,系統(tǒng)能夠擴展來滿足需求,且不降低服務(wù)質(zhì)量。
集群的負載均衡為企業(yè)提供了更為實用,性價比更高的系統(tǒng)架構(gòu)解決方案。負載均衡集群把很多客戶集中訪問的請求負載壓力盡可能平均的分攤到計算機集群中處理??蛻粽埱筘撦d通常包括"應(yīng)用程度處理負載"和"網(wǎng)絡(luò)流量負載"。這樣的系統(tǒng)非常適合向使用同一組應(yīng)用程序為大量用戶提供服務(wù)。每個節(jié)點都可以承擔一定的訪問請求負載壓力,并且可以實現(xiàn)訪問請求在各節(jié)點之間動態(tài)分配,以實現(xiàn)負載均衡。
二、Linux網(wǎng)絡(luò)集群服務(wù)相關(guān)內(nèi)容
計算機集群簡稱“集群”,是一種計算機系統(tǒng),它通過一組松散集成的計算機軟件或硬件連接起來高度緊密地協(xié)作完成計算工作,它們作為一個整體向用戶提供一組網(wǎng)絡(luò)資源。這些單個的計算機系統(tǒng)就是集群的節(jié)點(Node),通常通過局域網(wǎng)連接,但也有其它的可能連接方式。一個理想的集群是,用戶從來不會意識到集群系統(tǒng)底層的節(jié)點,在他們看來,集群是一個系統(tǒng),而非多個計算機系統(tǒng)。并且集群系統(tǒng)的管理員可以隨意增加和刪改集群系統(tǒng)的節(jié)點。集群計算機通常用來改進單個計算機的計算速度以及可靠性。一般情況下集群計算機比單個計算機,工作站或超級計算機性能價格比要高得多。
集群系統(tǒng)若按功能和結(jié)構(gòu)的不同可以分成:高可用性集群、負載均衡集群以及高性能計算集群。其中高可用性集群一般是指當集群中有某個節(jié)點失效的情況下,其上的任務(wù)會自動轉(zhuǎn)移到其他正常的節(jié)點上。還指可以將集群中的某節(jié)點進行離線維護再上線,該過程并不影響整個集群的運行,系統(tǒng)中的數(shù)據(jù)也不會存在丟失的情況;負載均衡集群在運行時一般通過一個或者多個前端負載均衡器將工作負載分發(fā)到后端的一組服務(wù)器上,從而達到整個系統(tǒng)的高性能和高可用性;高性能計算集群采用將計算任務(wù)分配到集群的不同計算節(jié)點而提高計算能力,因而主要應(yīng)用在科學計算領(lǐng)域。
三、目前網(wǎng)絡(luò)集群建設(shè)情況分析
早在九十年代末,Linux操作系統(tǒng)開始不斷走向成熟,最重要的是它在普通PC機上提供了對高性能網(wǎng)絡(luò)的支持,這就大力推動了基于Linux的集群系統(tǒng)發(fā)展。在國內(nèi),包括中國科學院在內(nèi)的許多大學與研究機構(gòu)在二十世紀九十年代就開始了基于Linux集群研究,以及國內(nèi)許多知名企業(yè)如浪潮、聯(lián)想等也都有Linux集群產(chǎn)品和解決方案。如今,計算技術(shù)已進入以網(wǎng)絡(luò)為中心的時代,基于網(wǎng)絡(luò)的應(yīng)用正以驚人的速度增長,同時,越來越多的網(wǎng)絡(luò)客戶需要更多更強的計算系統(tǒng)來服務(wù),若單買高配置的電腦可能會面臨資源浪費、開銷大等問題。這就要求作為服務(wù)的系統(tǒng)能夠提供更高的性能、更強的處理能力、更好的伸縮性和更合適的價格,集群系統(tǒng)則是適合這種情況的一個很好的選擇,它能使有限的資源內(nèi)實現(xiàn)最大的利用。
以開源集群搭建管理工具Hadoop為基礎(chǔ),以實現(xiàn)集群系統(tǒng)的故障檢測與服務(wù)自切換為前提,以分布式系統(tǒng)管理為核心,研究并實現(xiàn)基于Linux的網(wǎng)絡(luò)集群服務(wù)系統(tǒng),極大地提高了數(shù)據(jù)中心的資源利用率,明顯減少了數(shù)據(jù)中心的管理和維護成本,全面提高了管理的效率和服務(wù)的高可用性,保證了面向用戶提供不間斷服務(wù)。在眾多常用的集群軟件中,如lvs、keepalived等,現(xiàn)在許多人都喜歡把Linux集群指為LVS,但我覺得嚴格意義上應(yīng)該區(qū)分開。Hadoop集群是目前在國內(nèi)企業(yè)里實現(xiàn)大型項目的最合適選擇,它的框架開源免費,且具備分布式存儲和計算的核心功能,框架的通用性強,極大的降低了大數(shù)據(jù)項目的研究實現(xiàn)對人的要求,在眾多企業(yè)中的到成功的應(yīng)用。如今Hadoop更是進入的2.0時代,核心配置由HDFS和MapReduce兩大基礎(chǔ)框架,到現(xiàn)在新增YARN框架,使集群更具可擴展性、高可用性、可持續(xù)性等。
四、Hadoop集群結(jié)構(gòu)分析
通過對基于Linux系統(tǒng)的網(wǎng)絡(luò)集群業(yè)務(wù)流程的調(diào)研,并充分考慮未來主機服務(wù)器增減、機器出現(xiàn)故障而宕機等可變需求因素,以開源集群搭建管理工具Hadoop為基礎(chǔ),以實現(xiàn)集群系統(tǒng)的故障檢測與服務(wù)自切換為前提,以分布式系統(tǒng)管理為核心,研究并實現(xiàn)基于Linux的網(wǎng)絡(luò)集群服務(wù)系統(tǒng)。所設(shè)計開發(fā)的集群系統(tǒng)共包含HDFS、MapReduce以及YARN這三 大模塊。本系統(tǒng)的突出之處在于HDFS模塊,該模塊是實現(xiàn)高可用的重要模塊,其中用到Zookeeper技術(shù)來實現(xiàn)故障排查及數(shù)據(jù)轉(zhuǎn)移。通過使用本文系統(tǒng)進行大數(shù)據(jù)的存儲和使用工作,可以使得業(yè)務(wù)的可擴展性、實用性、可持續(xù)性等大大增強,具有易管理、易維護的優(yōu)點,在很大程度上降低了運營成本,也避免資源浪費,提升了網(wǎng)絡(luò)系統(tǒng)穩(wěn)定性、市場競爭力及項目監(jiān)控能力等。
一般高可用性集群和負載均衡集群會使用類似的技術(shù),或同時具有高可用性與負載均衡的特點。高可用的實現(xiàn)原理主要體現(xiàn)在自動偵測故障、自動切換或故障轉(zhuǎn)移以及它的自動恢復功能。因而本次在實現(xiàn)集群系統(tǒng)的過程中使用的Hadoop集群框架,能很好的體現(xiàn)出集群高可用性以及負載均衡的功能特性。
Hadoop框架具備分布式存儲和計算的核心功能,分布式系統(tǒng)的核心理念是讓多臺服務(wù)器協(xié)同工作??蚣苡扇齻€重要的模塊組成,其中HDFS模塊實現(xiàn)了多臺機器上的數(shù)據(jù)存儲,MapReduce模塊實現(xiàn)了多臺機器上的數(shù)據(jù)計算,YARN模塊實現(xiàn)了資源調(diào)度與管理。
五、集群結(jié)構(gòu)設(shè)計
本項目使用Hadoop框架技術(shù)在CentOS系統(tǒng)中設(shè)計實現(xiàn)。集群搭建之前,需要確保有3臺以上基于Linux系統(tǒng)的機器已準備就緒,并且安裝JDK1.8.0、SSH、Hadoop 2.9.2以及Zookeeper 3.4.14,更改系統(tǒng)環(huán)境變量。為保集群各個節(jié)點能夠互相安全通信,設(shè)置hosts系統(tǒng)文件以及設(shè)置SSH免密碼登陸是必不可少的。Hosts系統(tǒng)文件中用別名取代IP地址,這樣可以避免很多不必要的麻煩。設(shè)置SSH免密登錄時,因為master和slave 節(jié)點是主要的部署控制節(jié)點,所以需要將master 和 slave 的公鑰復制到到其他所有服務(wù)器的 /root/.ssh/authorized_keys這延時將master 服務(wù)器的公鑰寫到slave 的操作。集群之前需要關(guān)防火墻,且機器的時區(qū)也有必要保持一致,如果不同步,可能會出現(xiàn)集群啟動異?;蛘咂渌惓?。本設(shè)計準備5臺裝有CentOS系統(tǒng)的主機,2臺主機充當NameNode角色,3臺主機充當DataNode角色,為之后的高可用性集群作準備。
為保集群各個節(jié)點能夠互相安全通信,設(shè)置hosts系統(tǒng)文件以及設(shè)置SSH免密碼登陸是必不可少的。Hosts系統(tǒng)文件中用別名取代IP地址,這樣可以避免很多不必要的麻煩。集群之前需要關(guān)防火墻,且機器的時區(qū)也有必要保持一致,如果不同步,可能會出現(xiàn)集群啟動異常或者其他異常。在部署Hadoop集群時,需要配置它的核心文件:core-site.xml、hdfs-site.xml、map-site.xml、yarn-site.xml、hadoop-env.sh、yarn-env.sh、slaves。core-site.xml配置service的URI地址、Hadoop集群臨時目錄等信息;hdfs-site.xml配置Hadoop集群的HDFS別名、通訊地址、端口等信息;mapred-site.xml配置計算框架資源名稱、歷史任務(wù)訪問地址等信息;yarn-site.xml:配置資源管理器的相關(guān)內(nèi)容。
小結(jié)
在本次設(shè)計與實現(xiàn)中,我們針對目前網(wǎng)絡(luò)服務(wù)在當下的現(xiàn)狀以及存在的問題進行研究分析,并結(jié)合實際情況設(shè)計實現(xiàn)出以開源集群搭建管理工具Hadoop為基礎(chǔ),以實現(xiàn)集群系統(tǒng)的故障檢測與服務(wù)自切換為前提,以分布式系統(tǒng)管理為核心,研究并實現(xiàn)基于Linux的網(wǎng)絡(luò)集群服務(wù)系統(tǒng)。提高網(wǎng)絡(luò)不間斷服務(wù),提供高可用、可擴展、負載均衡的網(wǎng)絡(luò)集群服務(wù),綜合各多種因素采用先進的軟件和技術(shù),確保集群的功能實現(xiàn)以滿足需要。
參考文獻:
[1]許禮捷. 基于CentOS的Hadoop分布式集群的構(gòu)建方法研究[J]. 沙洲職業(yè)工學院學報,2016,19(1).
[2]王宏志,李春靜. Hadoop集群程序設(shè)計與開發(fā)[M]. 人民郵電出版社,2018.8:1-319.
[3]楊云海,章芬芬. 使用虛擬機搭建Hadoop3.0集群安裝環(huán)境[J]. 現(xiàn)代信息科技,2018,2(10):99-101.
作者簡介:
阮文卿(1996-),女,漢 ,廣東省廣州市,本科,研究方向: 網(wǎng)絡(luò)。